diff --git a/.git-scripts/syntax.sh b/.git-scripts/syntax.sh new file mode 100644 index 0000000000000000000000000000000000000000..d66022c7c3b004b711e5e22a1b7c86aadd0ab204 --- /dev/null +++ b/.git-scripts/syntax.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +IFS=$'\n' +EX=0 +ERRS="" ; +WARNS="" ; +ERRCNT=0 ; +WARNCNT=0 ; + +OUTCNT=0 ; +FILECNT=0 ; +DONECNT=0 ; + +CMD="find . -type f \( -name \"*.php\" -o -name \"*.lng\" \) -print" ; + +if [[ "$1" == "commit" ]] ; then + CMD="git diff-tree --no-commit-id --name-only -r ${CI_COMMIT_SHA} | grep -E '\.(php|lng)$'" ; +fi + +FILECNT=$(eval "${CMD} | wc -l") ; + +for F in $(eval "$CMD") ; do + if [[ ! -e "${F}" || ! -f "${F}" ]] ; then + continue ; + fi + R=$(php -d error_reporting=E_ALL -d display_errors=On -l "$F" 2>/dev/null) ; + RET=$? ; + R=$(echo "${R}" | sed "/^$/d") + if [ $RET -gt 0 ] ; then + EX=1 ; + echo -n "E" ; + ERRS="${ERRS}${F}:"$'\n'"${R}"$'\n\n' ; + ERRCNT=$((ERRCNT + 1)) ; + else + if [[ "$R" == "Deprecated: "* ]] ; then + echo -n "W" ; + WARNS="${WARNS}${F}:"$'\n'"${R}"$'\n\n' ; + WARNCNT=$((WARNCNT + 1)) ; + else + echo -n "." ; + fi + fi + OUTCNT=$((OUTCNT + 1)) ; + DONECNT=$((DONECNT + 1)) ; + if [ $OUTCNT -ge 40 ] ; then + OUTCNT=0 ; + echo "[${DONECNT}/${FILECNT}]" ; + fi +done + +echo "" +echo "--------------------------"; +echo "${DONECNT} Files done" +echo "${ERRCNT} Errors" +if [ $ERRCNT -gt 0 ] ; then + echo "${ERRS}" + echo "" +fi + +echo "${WARNCNT} Warnings" +if [ $WARNCNT -gt 0 ] ; then + echo "" + echo "${WARNS}" + echo "" +fi + +exit $EX diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a81b3b5aa6502ce075f89642dc997707a9fc7d7d..91d23fac07edbd029ed9761555f1e5b319c39a2e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ # Defines stages which are to be executed stages: - syntax + - syntax_diff - test # @@ -9,7 +10,7 @@ stages: syntax:lint: stage: syntax - image: bobey/docker-gitlab-ci-runner-php7 + image: edbizarro/gitlab-ci-pipeline-php:7.2 allow_failure: false only: - schedules @@ -17,10 +18,37 @@ syntax:lint: - merge_requests script: - - composer require overtrue/phplint - echo "Syntax checking PHP files" - - echo "For more information http://www.icosaedro.it/phplint/" - - vendor/bin/phplint + - bash ./.git-scripts/syntax.sh + + +syntax_diff:lint: + stage: syntax + image: edbizarro/gitlab-ci-pipeline-php:7.2 + allow_failure: false + only: + - web + - pushes + - branches + + script: + - echo "Syntax checking PHP files" + - bash ./.git-scripts/syntax.sh commit + +#syntax:lint: +# stage: syntax +# image: edbizarro/gitlab-ci-pipeline-php:7.2 +# allow_failure: false +# only: +# - schedules +# - web +# - merge_requests +# +# script: +# - composer require overtrue/phplint +# - echo "Syntax checking PHP files" +# - echo "For more information http://www.icosaedro.it/phplint/" +# - vendor/bin/phplint test:install: diff --git a/.phplint.yml b/.phplint.yml index 10fd2a25afd2045c793bba0fd59d188fbbb6edf6..438e3c238d86c5a049fc957e357400ef02cc67bb 100644 --- a/.phplint.yml +++ b/.phplint.yml @@ -1,5 +1,5 @@ path: ./ -jobs: 10 +jobs: 5 cache: .phplint-cache extensions: - php diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6c528479a75f9dc20e4d7ea070b15d4e02c4be5..b515c5348d24a4c042076a9ae5e4c764a522950f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ The master branch is used for code (mostly new features) that shall go into the * Magic quotes is gone, get used to it now. config = magic_quotes_gpc() Everything must be quoted * Don't use ereg, split and other old function -> gone in PHP 5.4 * Don't use features that are not supported in PHP 5.3, for compatibility with LTS OS releases, ISPConfig must support PHP 5.3+ -* Don't use shorttags. A Shorttag is <? and that is confusing with <?xml -> always usw <?php +* Don't use shorttags. A Shorttag is <? and that is confusing with <?xml -> always use <?php * Don't use namespaces * Column names in database tables and database table names are in lowercase * Classes for the interface are located in interface/lib/classes/ and loaded with $app->uses() or $app->load() functions. @@ -123,4 +123,4 @@ $web_config = $app->getconf->get_server_config($server_id,'web'); # Learn about the form validators There are form validators in interface/lib/classes/tform.inc.php to make validating forms easier. -Read about: REGEX,UNIQUE,NOTEMPTY,ISEMAIL,ISINT,ISPOSITIVE,ISIPV4,CUSTOM +Read about: REGEX,UNIQUE,NOTEMPTY,ISEMAIL,ISINT,ISPOSITIVE,ISIPV4,ISIPV6,ISIP,CUSTOM diff --git a/install/dist/conf/centos70.conf.php b/install/dist/conf/centos70.conf.php index a40e88ed70e50d7d0bdffaa6a4235b1b96d0fe48..0465e5618a0a33e6e4dc27813b237356c275d090 100644 --- a/install/dist/conf/centos70.conf.php +++ b/install/dist/conf/centos70.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavisd'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd@amavisd'; diff --git a/install/dist/conf/centos72.conf.php b/install/dist/conf/centos72.conf.php index e7ab6030b7210051697de71425724ceaac4a1119..221cc5d7c40cbaf72a014f61bdb2bb2947f646e8 100644 --- a/install/dist/conf/centos72.conf.php +++ b/install/dist/conf/centos72.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavisd'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd@amavisd'; diff --git a/install/dist/conf/centos80.conf.php b/install/dist/conf/centos80.conf.php new file mode 100644 index 0000000000000000000000000000000000000000..04257d4dfece9aab36e1b2506431a7f5a934df7c --- /dev/null +++ b/install/dist/conf/centos80.conf.php @@ -0,0 +1,224 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +//*** Fedora 9 default settings + +//* Main +$conf['language'] = 'en'; +$conf['distname'] = 'centos80'; +$conf['hostname'] = 'server1.domain.tld'; // Full hostname +$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error +$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; +$conf['server_id'] = 1; +$conf['init_scripts'] = '/etc/init.d'; +$conf['runlevel'] = '/etc'; +$conf['shells'] = '/etc/shells'; +$conf['pam'] = '/etc/pam.d'; + +//* Services provided by this server, this selection will be overridden by the expert mode +$conf['services']['mail'] = true; +$conf['services']['web'] = true; +$conf['services']['dns'] = true; +$conf['services']['file'] = true; +$conf['services']['db'] = true; +$conf['services']['vserver'] = true; + +//* MySQL +$conf['mysql']['installed'] = false; // will be detected automatically during installation +$conf['mysql']['init_script'] = 'mariadb'; +$conf['mysql']['host'] = 'localhost'; +$conf['mysql']['ip'] = '127.0.0.1'; +$conf['mysql']['port'] = '3306'; +$conf['mysql']['database'] = 'dbispconfig'; +$conf['mysql']['admin_user'] = 'root'; +$conf['mysql']['admin_password'] = ''; +$conf['mysql']['charset'] = 'utf8'; +$conf['mysql']['ispconfig_user'] = 'ispconfig'; +$conf['mysql']['ispconfig_password'] = md5(uniqid(rand())); +$conf['mysql']['master_slave_setup'] = 'n'; +$conf['mysql']['master_host'] = ''; +$conf['mysql']['master_database'] = 'dbispconfig'; +$conf['mysql']['master_admin_user'] = 'root'; +$conf['mysql']['master_admin_password'] = ''; +$conf['mysql']['master_ispconfig_user'] = ''; +$conf['mysql']['master_ispconfig_password'] = md5(uniqid(rand())); + +//* Apache +$conf['apache']['installed'] = false; // will be detected automatically during installation +$conf['apache']['user'] = 'apache'; +$conf['apache']['group'] = 'apache'; +$conf['apache']['init_script'] = 'httpd'; +$conf['apache']['version'] = '2.2'; +$conf['apache']['vhost_conf_dir'] = '/etc/httpd/conf/sites-available'; +$conf['apache']['vhost_conf_enabled_dir'] = '/etc/httpd/conf/sites-enabled'; +$conf['apache']['vhost_port'] = '8080'; +$conf['apache']['php_ini_path_apache'] = '/etc/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php.ini'; + +//* Website base settings +$conf['web']['website_basedir'] = '/var/www'; +$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; +$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; + +//* Apps base settings +$conf['web']['apps_vhost_ip'] = '_default_'; +$conf['web']['apps_vhost_port'] = '8081'; +$conf['web']['apps_vhost_servername'] = ''; +$conf['web']['apps_vhost_user'] = 'ispapps'; +$conf['web']['apps_vhost_group'] = 'ispapps'; + +//* Fastcgi +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/'; +$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; +$conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; + +//* Postfix +$conf['postfix']['installed'] = false; // will be detected automatically during installation +$conf['postfix']['config_dir'] = '/etc/postfix'; +$conf['postfix']['init_script'] = 'postfix'; +$conf['postfix']['user'] = 'postfix'; +$conf['postfix']['group'] = 'postfix'; +$conf['postfix']['vmail_userid'] = '5000'; +$conf['postfix']['vmail_username'] = 'vmail'; +$conf['postfix']['vmail_groupid'] = '5000'; +$conf['postfix']['vmail_groupname'] = 'vmail'; +$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; + +//* Mailman +$conf['mailman']['installed'] = false; // will be detected automatically during installation +$conf['mailman']['config_dir'] = '/etc/mailman'; +$conf['mailman']['init_script'] = 'mailman'; + +//* Getmail +$conf['getmail']['installed'] = false; // will be detected automatically during installation +$conf['getmail']['config_dir'] = '/etc/getmail'; +$conf['getmail']['program'] = '/usr/bin/getmail'; + +//* Courier +$conf['courier']['installed'] = false; // will be detected automatically during installation +$conf['courier']['config_dir'] = '/etc/authlib'; +$conf['courier']['courier-authdaemon'] = 'courier-authlib'; +$conf['courier']['courier-imap'] = 'courier-imap'; +$conf['courier']['courier-imap-ssl'] = ''; +$conf['courier']['courier-pop'] = ''; +$conf['courier']['courier-pop-ssl'] = ''; + +//* Dovecot +$conf['dovecot']['installed'] = false; // will be detected automatically during installation +$conf['dovecot']['config_dir'] = '/etc/dovecot'; +$conf['dovecot']['init_script'] = 'dovecot'; + +//* SASL +$conf['saslauthd']['installed'] = false; // will be detected automatically during installation +$conf['saslauthd']['config'] = '/etc/sysconfig/saslauthd'; +$conf['saslauthd']['init_script'] = 'saslauthd'; + +//* Amavisd +$conf['amavis']['installed'] = false; // will be detected automatically during installation +$conf['amavis']['config_dir'] = '/etc/amavisd'; +$conf['amavis']['init_script'] = 'amavisd'; + +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + +//* ClamAV +$conf['clamav']['installed'] = false; // will be detected automatically during installation +$conf['clamav']['init_script'] = 'clamd@amavisd'; + +//* Pureftpd +$conf['pureftpd']['installed'] = false; // will be detected automatically during installation +$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; +$conf['pureftpd']['init_script'] = 'pure-ftpd'; + +//* MyDNS +$conf['mydns']['installed'] = false; // will be detected automatically during installation +$conf['mydns']['config_dir'] = '/etc'; +$conf['mydns']['init_script'] = 'mydns'; + +//* PowerDNS +$conf['powerdns']['installed'] = false; // will be detected automatically during installation +$conf['powerdns']['database'] = 'powerdns'; +$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; +$conf['powerdns']['init_script'] = 'pdns'; + +//* BIND DNS Server +$conf['bind']['installed'] = false; // will be detected automatically during installation +$conf['bind']['bind_user'] = 'named'; +$conf['bind']['bind_group'] = 'named'; +$conf['bind']['bind_zonefiles_dir'] = '/var/named'; +$conf['bind']['named_conf_path'] = '/etc/named.conf'; +$conf['bind']['named_conf_local_path'] = '/etc/named.conf.local'; +$conf['bind']['init_script'] = 'named'; + +//* Jailkit +$conf['jailkit']['installed'] = false; // will be detected automatically during installation +$conf['jailkit']['config_dir'] = '/etc/jailkit'; +$conf['jailkit']['jk_init'] = 'jk_init.ini'; +$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; +$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano'; +$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; + +//* Squid +$conf['squid']['installed'] = false; // will be detected automatically during installation +$conf['squid']['config_dir'] = '/etc/squid'; +$conf['squid']['init_script'] = 'squid'; + +//* Nginx +$conf['nginx']['installed'] = false; // will be detected automatically during installation +$conf['nginx']['user'] = 'nginx'; +$conf['nginx']['group'] = 'nginx'; +$conf['nginx']['config_dir'] = '/etc/nginx'; +$conf['nginx']['vhost_conf_dir'] = '/etc/nginx/sites-available'; +$conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; +$conf['nginx']['init_script'] = 'nginx'; +$conf['nginx']['vhost_port'] = '8080'; +$conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; +$conf['nginx']['php_fpm_init_script'] = 'php-fpm'; +$conf['nginx']['php_fpm_ini_path'] = '/etc/php.ini'; +$conf['nginx']['php_fpm_pool_dir'] = '/etc/php-fpm.d'; +$conf['nginx']['php_fpm_start_port'] = 9010; +$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php5-fpm'; + +//* vlogger +$conf['vlogger']['config_dir'] = '/etc'; + +//* cron +$conf['cron']['init_script'] = 'crond'; +$conf['cron']['crontab_dir'] = '/etc/cron.d'; +$conf['cron']['wget'] = '/usr/bin/wget'; + +//* OpenVZ +$conf['openvz']['installed'] = false; + +?> diff --git a/install/dist/conf/debian100.conf.php b/install/dist/conf/debian100.conf.php new file mode 100644 index 0000000000000000000000000000000000000000..28d82b80794fad567dec6720a890596bd4838bcb --- /dev/null +++ b/install/dist/conf/debian100.conf.php @@ -0,0 +1,234 @@ +<?php + +/* +Copyright (c) 2016, Till Brehm, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +//*** Debian 10 default settings + +//* Main +$conf['language'] = 'en'; +$conf['distname'] = 'debian100'; +$conf['hostname'] = 'server1.domain.tld'; // Full hostname +$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error +$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; +$conf['server_id'] = 1; +$conf['init_scripts'] = '/etc/init.d'; +$conf['runlevel'] = '/etc'; +$conf['shells'] = '/etc/shells'; +$conf['pam'] = '/etc/pam.d'; + +//* Services provided by this server, this selection will be overridden by the expert mode +$conf['services']['mail'] = true; +$conf['services']['web'] = true; +$conf['services']['dns'] = true; +$conf['services']['file'] = true; +$conf['services']['db'] = true; +$conf['services']['vserver'] = true; +$conf['services']['proxy'] = false; +$conf['services']['firewall'] = false; + +//* MySQL +$conf['mysql']['installed'] = false; // will be detected automatically during installation +$conf['mysql']['init_script'] = 'mysql'; +$conf['mysql']['host'] = 'localhost'; +$conf['mysql']['ip'] = '127.0.0.1'; +$conf['mysql']['port'] = '3306'; +$conf['mysql']['database'] = 'dbispconfig'; +$conf['mysql']['admin_user'] = 'root'; +$conf['mysql']['admin_password'] = ''; +$conf['mysql']['charset'] = 'utf8'; +$conf['mysql']['ispconfig_user'] = 'ispconfig'; +$conf['mysql']['ispconfig_password'] = md5(uniqid(rand())); +$conf['mysql']['master_slave_setup'] = 'n'; +$conf['mysql']['master_host'] = ''; +$conf['mysql']['master_database'] = 'dbispconfig'; +$conf['mysql']['master_admin_user'] = 'root'; +$conf['mysql']['master_admin_password'] = ''; +$conf['mysql']['master_ispconfig_user'] = ''; +$conf['mysql']['master_ispconfig_password'] = md5(uniqid(rand())); + +//* Apache +$conf['apache']['installed'] = false; // will be detected automatically during installation +$conf['apache']['user'] = 'www-data'; +$conf['apache']['group'] = 'www-data'; +$conf['apache']['init_script'] = 'apache2'; +$conf['apache']['version'] = '2.4'; +$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; +$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; +$conf['apache']['vhost_port'] = '8080'; +$conf['apache']['php_ini_path_apache'] = '/etc/php/7.3/apache2/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php/7.3/cgi/php.ini'; + +//* Website base settings +$conf['web']['website_basedir'] = '/var/www'; +$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; +$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; + +//* Apps base settings +$conf['web']['apps_vhost_ip'] = '_default_'; +$conf['web']['apps_vhost_port'] = '8081'; +$conf['web']['apps_vhost_servername'] = ''; +$conf['web']['apps_vhost_user'] = 'ispapps'; +$conf['web']['apps_vhost_group'] = 'ispapps'; + +//* Fastcgi +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php/7.3/cgi/'; +$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; +$conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; + +//* Postfix +$conf['postfix']['installed'] = false; // will be detected automatically during installation +$conf['postfix']['config_dir'] = '/etc/postfix'; +$conf['postfix']['init_script'] = 'postfix'; +$conf['postfix']['user'] = 'postfix'; +$conf['postfix']['group'] = 'postfix'; +$conf['postfix']['vmail_userid'] = '5000'; +$conf['postfix']['vmail_username'] = 'vmail'; +$conf['postfix']['vmail_groupid'] = '5000'; +$conf['postfix']['vmail_groupname'] = 'vmail'; +$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; + +//* Mailman +$conf['mailman']['installed'] = false; // will be detected automatically during installation +$conf['mailman']['config_dir'] = '/etc/mailman'; +$conf['mailman']['init_script'] = 'mailman'; + +//* mlmmj +$conf['mlmmj']['installed'] = false; // will be detected automatically during installation +$conf['mlmmj']['config_dir'] = '/etc/mlmmj'; + +//* Getmail +$conf['getmail']['installed'] = false; // will be detected automatically during installation +$conf['getmail']['config_dir'] = '/etc/getmail'; +$conf['getmail']['program'] = '/usr/bin/getmail'; + +//* Courier +$conf['courier']['installed'] = false; // will be detected automatically during installation +$conf['courier']['config_dir'] = '/etc/courier'; +$conf['courier']['courier-authdaemon'] = 'courier-authdaemon'; +$conf['courier']['courier-imap'] = 'courier-imap'; +$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl'; +$conf['courier']['courier-pop'] = 'courier-pop'; +$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl'; + +//* Dovecot +$conf['dovecot']['installed'] = false; // will be detected automatically during installation +$conf['dovecot']['config_dir'] = '/etc/dovecot'; +$conf['dovecot']['init_script'] = 'dovecot'; + +//* SASL +$conf['saslauthd']['installed'] = false; // will be detected automatically during installation +$conf['saslauthd']['config'] = '/etc/default/saslauthd'; +$conf['saslauthd']['init_script'] = 'saslauthd'; + +//* Amavisd +$conf['amavis']['installed'] = false; // will be detected automatically during installation +$conf['amavis']['config_dir'] = '/etc/amavis'; +$conf['amavis']['init_script'] = 'amavis'; + +//* ClamAV +$conf['clamav']['installed'] = false; // will be detected automatically during installation +$conf['clamav']['init_script'] = 'clamav-daemon'; + +//* Pureftpd +$conf['pureftpd']['installed'] = false; // will be detected automatically during installation +$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; +$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql'; + +//* MyDNS +$conf['mydns']['installed'] = false; // will be detected automatically during installation +$conf['mydns']['config_dir'] = '/etc'; +$conf['mydns']['init_script'] = 'mydns'; + +//* PowerDNS +$conf['powerdns']['installed'] = false; // will be detected automatically during installation +$conf['powerdns']['database'] = 'powerdns'; +$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; +$conf['powerdns']['init_script'] = 'pdns'; + +//* BIND DNS Server +$conf['bind']['installed'] = false; // will be detected automatically during installation +$conf['bind']['bind_user'] = 'root'; +$conf['bind']['bind_group'] = 'bind'; +$conf['bind']['bind_zonefiles_dir'] = '/etc/bind'; +$conf['bind']['named_conf_path'] = '/etc/bind/named.conf'; +$conf['bind']['named_conf_local_path'] = '/etc/bind/named.conf.local'; +$conf['bind']['init_script'] = 'bind9'; + +//* Jailkit +$conf['jailkit']['installed'] = false; // will be detected automatically during installation +$conf['jailkit']['config_dir'] = '/etc/jailkit'; +$conf['jailkit']['jk_init'] = 'jk_init.ini'; +$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; +$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico /usr/bin/mysql /usr/bin/mysqldump /usr/bin/git /usr/bin/git-receive-pack /usr/bin/git-upload-pack /usr/bin/unzip /usr/bin/zip /bin/tar /bin/rm /usr/bin/patch'; +$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; + +//* Squid +$conf['squid']['installed'] = false; // will be detected automatically during installation +$conf['squid']['config_dir'] = '/etc/squid'; +$conf['squid']['init_script'] = 'squid'; + +//* Nginx +$conf['nginx']['installed'] = false; // will be detected automatically during installation +$conf['nginx']['user'] = 'www-data'; +$conf['nginx']['group'] = 'www-data'; +$conf['nginx']['config_dir'] = '/etc/nginx'; +$conf['nginx']['vhost_conf_dir'] = '/etc/nginx/sites-available'; +$conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; +$conf['nginx']['init_script'] = 'nginx'; +$conf['nginx']['vhost_port'] = '8080'; +$conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; +$conf['nginx']['php_fpm_init_script'] = 'php7.3-fpm'; +$conf['nginx']['php_fpm_ini_path'] = '/etc/php/7.3/fpm/php.ini'; +$conf['nginx']['php_fpm_pool_dir'] = '/etc/php/7.3/fpm/pool.d'; +$conf['nginx']['php_fpm_start_port'] = 9010; +$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php7.3-fpm'; + +//* OpenVZ +$conf['openvz']['installed'] = false; + +//*Bastille-Firwall +$conf['bastille']['installed'] = false; +$conf['bastille']['config_dir'] = '/etc/Bastille'; + +//* vlogger +$conf['vlogger']['config_dir'] = '/etc'; + +//* cron +$conf['cron']['init_script'] = 'cron'; +$conf['cron']['crontab_dir'] = '/etc/cron.d'; +$conf['cron']['wget'] = '/usr/bin/wget'; + +//* Metronome XMPP +$conf['xmpp']['installed'] = false; +$conf['xmpp']['init_script'] = 'metronome'; + + +?> diff --git a/install/dist/conf/debian40.conf.php b/install/dist/conf/debian40.conf.php index 613c828d14906474fbda3a3b475508e5b8b2f997..c04a54e998e5224e6d061937527184e18b27cc34 100644 --- a/install/dist/conf/debian40.conf.php +++ b/install/dist/conf/debian40.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debian60.conf.php b/install/dist/conf/debian60.conf.php index 2c26dcb9cbb26ae89f1126ce15440471485b028a..e7c8f59845f5cf4b957c5c5fc791f61990ce493f 100644 --- a/install/dist/conf/debian60.conf.php +++ b/install/dist/conf/debian60.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debian90.conf.php b/install/dist/conf/debian90.conf.php index cdaf7aa9a0f1bba39ea7d0ec367e0c0f36d9a4f0..13fd2306543450d27d88f72319388f3ffe07abd8 100644 --- a/install/dist/conf/debian90.conf.php +++ b/install/dist/conf/debian90.conf.php @@ -153,6 +153,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debiantesting.conf.php b/install/dist/conf/debiantesting.conf.php index 92787bf428c441fdfae359ce967b6a813e42cd53..6ea9112dff854e87e39fac2c521d48cecf5fe840 100644 --- a/install/dist/conf/debiantesting.conf.php +++ b/install/dist/conf/debiantesting.conf.php @@ -28,11 +28,11 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -//*** Ubuntu 16.04 default settings +//*** Debian Testing default settings //* Main $conf['language'] = 'en'; -$conf['distname'] = 'ubuntu1604'; +$conf['distname'] = 'debian100'; $conf['hostname'] = 'server1.domain.tld'; // Full hostname $conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; $conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; @@ -83,8 +83,8 @@ $conf['apache']['version'] = '2.4'; $conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; $conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; $conf['apache']['vhost_port'] = '8080'; -$conf['apache']['php_ini_path_apache'] = '/etc/php/7.0/apache2/php.ini'; -$conf['apache']['php_ini_path_cgi'] = '/etc/php/7.0/cgi/php.ini'; +$conf['apache']['php_ini_path_apache'] = '/etc/php/7.3/apache2/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php/7.3/cgi/php.ini'; //* Website base settings $conf['web']['website_basedir'] = '/var/www'; @@ -99,7 +99,7 @@ $conf['web']['apps_vhost_user'] = 'ispapps'; $conf['web']['apps_vhost_group'] = 'ispapps'; //* Fastcgi -$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php/7.0/cgi/'; +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php/7.3/cgi/'; $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; $conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; @@ -120,6 +120,10 @@ $conf['mailman']['installed'] = false; // will be detected automatically during $conf['mailman']['config_dir'] = '/etc/mailman'; $conf['mailman']['init_script'] = 'mailman'; +//* mlmmj +$conf['mlmmj']['installed'] = false; // will be detected automatically during installation +$conf['mlmmj']['config_dir'] = '/etc/mlmmj'; + //* Getmail $conf['getmail']['installed'] = false; // will be detected automatically during installation $conf['getmail']['config_dir'] = '/etc/getmail'; @@ -149,6 +153,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; @@ -201,11 +210,11 @@ $conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; $conf['nginx']['init_script'] = 'nginx'; $conf['nginx']['vhost_port'] = '8080'; $conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; -$conf['nginx']['php_fpm_init_script'] = 'php7.0-fpm'; -$conf['nginx']['php_fpm_ini_path'] = '/etc/php/7.0/fpm/php.ini'; -$conf['nginx']['php_fpm_pool_dir'] = '/etc/php/7.0/fpm/pool.d'; +$conf['nginx']['php_fpm_init_script'] = 'php7.3-fpm'; +$conf['nginx']['php_fpm_ini_path'] = '/etc/php/7.3/fpm/php.ini'; +$conf['nginx']['php_fpm_pool_dir'] = '/etc/php/7.3/fpm/pool.d'; $conf['nginx']['php_fpm_start_port'] = 9010; -$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php7.0-fpm'; +$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php7.3-fpm'; //* OpenVZ $conf['openvz']['installed'] = false; diff --git a/install/dist/conf/fedora9.conf.php b/install/dist/conf/fedora9.conf.php index 80539a78593827e76bb7828ee684833f557b9dd7..19c9a4f6259600499d493c66718cf64bb7ff0a13 100644 --- a/install/dist/conf/fedora9.conf.php +++ b/install/dist/conf/fedora9.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavisd'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd.amavisd'; diff --git a/install/dist/conf/gentoo.conf.php b/install/dist/conf/gentoo.conf.php index 2955cfa71dd391743f705449ea6849428005a367..24c7d0633e0b5b62db4004f329e83d503fb66aad 100644 --- a/install/dist/conf/gentoo.conf.php +++ b/install/dist/conf/gentoo.conf.php @@ -162,6 +162,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_file'] = '/etc/amavisd.conf'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd'; diff --git a/install/dist/conf/opensuse112.conf.php b/install/dist/conf/opensuse112.conf.php index fa0504652e9e75d908186507a6c69c67c271f4b9..378320a144eb645262d39e645a1e994d7d2823d7 100644 --- a/install/dist/conf/opensuse112.conf.php +++ b/install/dist/conf/opensuse112.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd'; diff --git a/install/dist/conf/ubuntu1604.conf.php b/install/dist/conf/ubuntu1604.conf.php index 9ac56de3f871479033df0a742554ed6e905a3d39..0d3fe23bada198df3c9aae42b6cb42784973a6c1 100644 --- a/install/dist/conf/ubuntu1604.conf.php +++ b/install/dist/conf/ubuntu1604.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/ubuntu1710.conf.php b/install/dist/conf/ubuntu1710.conf.php index 0c87005910a61f8625735be1a6a130eaaee0cd54..0730f8f2d533c712ee78173ebb28b3fed477c514 100644 --- a/install/dist/conf/ubuntu1710.conf.php +++ b/install/dist/conf/ubuntu1710.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/ubuntu1804.conf.php b/install/dist/conf/ubuntu1804.conf.php index 15cdb1c5ebbb74c45ab1f1df2f1c5caf8a008464..2a09f787db46f5abf8fc7d2e15e4804dfe9d3222 100644 --- a/install/dist/conf/ubuntu1804.conf.php +++ b/install/dist/conf/ubuntu1804.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; @@ -227,4 +232,4 @@ $conf['xmpp']['installed'] = false; $conf['xmpp']['init_script'] = 'metronome'; -?> \ No newline at end of file +?> diff --git a/install/dist/conf/ubuntu2004.conf.php b/install/dist/conf/ubuntu2004.conf.php new file mode 100644 index 0000000000000000000000000000000000000000..fe5a9b083b84db4cd400ef655e9cf5a84170f546 --- /dev/null +++ b/install/dist/conf/ubuntu2004.conf.php @@ -0,0 +1,235 @@ +<?php + +/* +Copyright (c) 2020, Till Brehm, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +//*** Ubuntu 18.04 default settings + +//* Main +$conf['language'] = 'en'; +$conf['distname'] = 'ubuntu2004'; +$conf['hostname'] = 'server1.domain.tld'; // Full hostname +$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error +$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; +$conf['server_id'] = 1; +$conf['init_scripts'] = '/etc/init.d'; +$conf['runlevel'] = '/etc'; +$conf['shells'] = '/etc/shells'; +$conf['pam'] = '/etc/pam.d'; + +//* Services provided by this server, this selection will be overridden by the expert mode +$conf['services']['mail'] = true; +$conf['services']['web'] = true; +$conf['services']['dns'] = true; +$conf['services']['file'] = true; +$conf['services']['db'] = true; +$conf['services']['vserver'] = true; +$conf['services']['proxy'] = false; +$conf['services']['firewall'] = false; + +//* MySQL +$conf['mysql']['installed'] = false; // will be detected automatically during installation +$conf['mysql']['init_script'] = 'mysql'; +$conf['mysql']['host'] = 'localhost'; +$conf['mysql']['ip'] = '127.0.0.1'; +$conf['mysql']['port'] = '3306'; +$conf['mysql']['database'] = 'dbispconfig'; +$conf['mysql']['admin_user'] = 'root'; +$conf['mysql']['admin_password'] = ''; +$conf['mysql']['charset'] = 'utf8'; +$conf['mysql']['ispconfig_user'] = 'ispconfig'; +$conf['mysql']['ispconfig_password'] = md5(uniqid(rand())); +$conf['mysql']['master_slave_setup'] = 'n'; +$conf['mysql']['master_host'] = ''; +$conf['mysql']['master_database'] = 'dbispconfig'; +$conf['mysql']['master_admin_user'] = 'root'; +$conf['mysql']['master_admin_password'] = ''; +$conf['mysql']['master_ispconfig_user'] = ''; +$conf['mysql']['master_ispconfig_password'] = md5(uniqid(rand())); + +//* Apache +$conf['apache']['installed'] = false; // will be detected automatically during installation +$conf['apache']['user'] = 'www-data'; +$conf['apache']['group'] = 'www-data'; +$conf['apache']['init_script'] = 'apache2'; +$conf['apache']['version'] = '2.4'; +$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; +$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; +$conf['apache']['vhost_port'] = '8080'; +$conf['apache']['php_ini_path_apache'] = '/etc/php/7.4/apache2/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php/7.4/cgi/php.ini'; + +//* Website base settings +$conf['web']['website_basedir'] = '/var/www'; +$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; +$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; + +//* Apps base settings +$conf['web']['apps_vhost_ip'] = '_default_'; +$conf['web']['apps_vhost_port'] = '8081'; +$conf['web']['apps_vhost_servername'] = ''; +$conf['web']['apps_vhost_user'] = 'ispapps'; +$conf['web']['apps_vhost_group'] = 'ispapps'; + +//* Fastcgi +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php/7.4/cgi/'; +$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; +$conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; + +//* Postfix +$conf['postfix']['installed'] = false; // will be detected automatically during installation +$conf['postfix']['config_dir'] = '/etc/postfix'; +$conf['postfix']['init_script'] = 'postfix'; +$conf['postfix']['user'] = 'postfix'; +$conf['postfix']['group'] = 'postfix'; +$conf['postfix']['vmail_userid'] = '5000'; +$conf['postfix']['vmail_username'] = 'vmail'; +$conf['postfix']['vmail_groupid'] = '5000'; +$conf['postfix']['vmail_groupname'] = 'vmail'; +$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; + +//* Mailman +$conf['mailman']['installed'] = false; // will be detected automatically during installation +$conf['mailman']['config_dir'] = '/etc/mailman'; +$conf['mailman']['init_script'] = 'mailman'; + +//* Getmail +$conf['getmail']['installed'] = false; // will be detected automatically during installation +$conf['getmail']['config_dir'] = '/etc/getmail'; +$conf['getmail']['program'] = '/usr/bin/getmail'; + +//* Courier +$conf['courier']['installed'] = false; // will be detected automatically during installation +$conf['courier']['config_dir'] = '/etc/courier'; +$conf['courier']['courier-authdaemon'] = 'courier-authdaemon'; +$conf['courier']['courier-imap'] = 'courier-imap'; +$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl'; +$conf['courier']['courier-pop'] = 'courier-pop'; +$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl'; + +//* Dovecot +$conf['dovecot']['installed'] = false; // will be detected automatically during installation +$conf['dovecot']['config_dir'] = '/etc/dovecot'; +$conf['dovecot']['init_script'] = 'dovecot'; + +//* SASL +$conf['saslauthd']['installed'] = false; // will be detected automatically during installation +$conf['saslauthd']['config'] = '/etc/default/saslauthd'; +$conf['saslauthd']['init_script'] = 'saslauthd'; + +//* Amavisd +$conf['amavis']['installed'] = false; // will be detected automatically during installation +$conf['amavis']['config_dir'] = '/etc/amavis'; +$conf['amavis']['init_script'] = 'amavis'; + +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + +//* ClamAV +$conf['clamav']['installed'] = false; // will be detected automatically during installation +$conf['clamav']['init_script'] = 'clamav-daemon'; + +//* Pureftpd +$conf['pureftpd']['installed'] = false; // will be detected automatically during installation +$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; +$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql'; + +//* MyDNS +$conf['mydns']['installed'] = false; // will be detected automatically during installation +$conf['mydns']['config_dir'] = '/etc'; +$conf['mydns']['init_script'] = 'mydns'; + +//* PowerDNS +$conf['powerdns']['installed'] = false; // will be detected automatically during installation +$conf['powerdns']['database'] = 'powerdns'; +$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; +$conf['powerdns']['init_script'] = 'pdns'; + +//* BIND DNS Server +$conf['bind']['installed'] = false; // will be detected automatically during installation +$conf['bind']['bind_user'] = 'root'; +$conf['bind']['bind_group'] = 'bind'; +$conf['bind']['bind_zonefiles_dir'] = '/etc/bind'; +$conf['bind']['named_conf_path'] = '/etc/bind/named.conf'; +$conf['bind']['named_conf_local_path'] = '/etc/bind/named.conf.local'; +$conf['bind']['init_script'] = 'bind9'; + +//* Jailkit +$conf['jailkit']['installed'] = false; // will be detected automatically during installation +$conf['jailkit']['config_dir'] = '/etc/jailkit'; +$conf['jailkit']['jk_init'] = 'jk_init.ini'; +$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; +$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico /usr/bin/mysql /usr/bin/mysqldump /usr/bin/git /usr/bin/git-receive-pack /usr/bin/git-upload-pack /usr/bin/unzip /usr/bin/zip /bin/tar /bin/rm /usr/bin/patch /etc/localtime'; +$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; + +//* Squid +$conf['squid']['installed'] = false; // will be detected automatically during installation +$conf['squid']['config_dir'] = '/etc/squid'; +$conf['squid']['init_script'] = 'squid'; + +//* Nginx +$conf['nginx']['installed'] = false; // will be detected automatically during installation +$conf['nginx']['user'] = 'www-data'; +$conf['nginx']['group'] = 'www-data'; +$conf['nginx']['config_dir'] = '/etc/nginx'; +$conf['nginx']['vhost_conf_dir'] = '/etc/nginx/sites-available'; +$conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; +$conf['nginx']['init_script'] = 'nginx'; +$conf['nginx']['vhost_port'] = '8080'; +$conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; +$conf['nginx']['php_fpm_init_script'] = 'php7.4-fpm'; +$conf['nginx']['php_fpm_ini_path'] = '/etc/php/7.4/fpm/php.ini'; +$conf['nginx']['php_fpm_pool_dir'] = '/etc/php/7.4/fpm/pool.d'; +$conf['nginx']['php_fpm_start_port'] = 9010; +$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php7.4-fpm'; + +//* OpenVZ +$conf['openvz']['installed'] = false; + +//*Bastille-Firwall +$conf['bastille']['installed'] = false; +$conf['bastille']['config_dir'] = '/etc/Bastille'; + +//* vlogger +$conf['vlogger']['config_dir'] = '/etc'; + +//* cron +$conf['cron']['init_script'] = 'cron'; +$conf['cron']['crontab_dir'] = '/etc/cron.d'; +$conf['cron']['wget'] = '/usr/bin/wget'; + +//* Metronome XMPP +$conf['xmpp']['installed'] = false; +$conf['xmpp']['init_script'] = 'metronome'; + + +?> diff --git a/install/dist/lib/centos80.lib.php b/install/dist/lib/centos80.lib.php new file mode 100644 index 0000000000000000000000000000000000000000..3dcd7494d3326bd3618d229c950518e8c200f3e4 --- /dev/null +++ b/install/dist/lib/centos80.lib.php @@ -0,0 +1,40 @@ +<?php + +/* +Copyright (c) 2014, Till Brehm, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php'; + +class installer extends installer_centos { + + protected $clamav_socket = '/var/run/clamd.amavisd/clamd.sock'; + + // everything else is inherited from installer_centos class +} + +?> diff --git a/install/dist/lib/centos_base.lib.php b/install/dist/lib/centos_base.lib.php index 8e6741fd693ec22c06fa1e1a38a54b1af1c5e4cf..0fe988439d8098c255bf216489ab6e0053d99e2e 100644 --- a/install/dist/lib/centos_base.lib.php +++ b/install/dist/lib/centos_base.lib.php @@ -111,6 +111,25 @@ class installer_centos extends installer_dist { removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn # REMOVE ME', 1); replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1); + + // get shell-group for amavis + $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group'); + if(!empty($amavis_group)) { + $amavis_group=rtrim($amavis_group, ":"); + } + // get shell-user for amavis + $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd'); + if(!empty($amavis_user)) { + $amavis_user=rtrim($amavis_user, ":"); + } + + // Create the director for DKIM-Keys + if(!is_dir('/var/lib/amavis')) mkdir('/var/lib/amavis', 0750, true); + if(!empty($amavis_user)) exec('chown '.$amavis_user.' /var/lib/amavis'); + if(!empty($amavis_group)) exec('chgrp '.$amavis_group.' /var/lib/amavis'); + if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750); + if(!empty($amavis_user)) exec('chown -R '.$amavis_user.' /var/lib/amavis/dkim'); + if(!empty($amavis_group)) exec('chgrp -R '.$amavis_group.' /var/lib/amavis/dkim'); } diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 0cd71165684f7baf9a6cf4db29c74eab8938f47a..a8e90f189b47e43a25cfa02e40ace9c67c984733 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -33,11 +33,16 @@ class installer extends installer_base { public function configure_dovecot() { global $conf; - + $virtual_transport = 'dovecot'; $configure_lmtp = false; - + + // use lmtp if installed + if($configure_lmtp = is_file('/usr/lib/dovecot/lmtp')) { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + // check if virtual_transport must be changed if ($this->is_update) { $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . ".server", $conf['server_id']); @@ -68,7 +73,6 @@ class installer extends installer_base { } //* Reconfigure postfix to use dovecot authentication - // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', 'virtual_transport = '.$virtual_transport, @@ -116,6 +120,38 @@ class installer extends installer_base { file_put_contents($config_dir.'/'.$configfile,$content); unset($content); } + if(version_compare($dovecot_version,2.3) >= 0) { + // Remove deprecated setting(s) + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + + // Check if we have a dhparams file and if not, create it + if(!file_exists('/etc/dovecot/dh.pem')) { + swriteln('Creating new DHParams file, this takes several minutes. Do not interrupt the script.'); + if(file_exists('/var/lib/dovecot/ssl-parameters.dat')) { + // convert existing ssl parameters file + $command = 'dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } else { + /* + Create a new dhparams file. We use 2048 bit only as it simply takes too long + on smaller systems to generate a 4096 bit dh file (> 30 minutes). If you need + a 4096 bit file, create it manually before you install ISPConfig + */ + $command = 'openssl dhparam -out /etc/dovecot/dh.pem 2048'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + //remove #2.3+ comment + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('#2.3+ ','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + + } else { + // remove settings which are not supported in Dovecot < 2.3 + removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); + removeLine($config_dir.'/'.$configfile, 'ssl_dh ='); + } } else { if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot.conf.master')) { copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot.conf.master', $config_dir.'/'.$configfile); @@ -124,11 +160,20 @@ class installer extends installer_base { } } + $dovecot_protocols = 'imap pop3'; + //* dovecot-lmtpd if($configure_lmtp) { - replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + $dovecot_protocols .= ' lmtp'; } + //* dovecot-managesieved + if(is_file('/usr/lib/dovecot/managesieve')) { + $dovecot_protocols .= ' sieve'; + } + + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', "protocols = $dovecot_protocols", 1, 0); + //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; if(is_file($config_dir.'/'.$configfile)){ diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 889bd4288dd7119e719de99505c829a77610148d..c188ac93a5b32727d28b26e8709621e10193b77e 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -30,7 +30,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class installer_dist extends installer_base { protected $mailman_group = 'mailman'; - + public function __construct() { //** check apache modules */ $mods = getapachemodules(); @@ -42,7 +42,7 @@ class installer_dist extends installer_base { swriteln($inst->lng(' AllowOverride None')); swriteln($inst->lng(' Require all denied')); swriteln($inst->lng(' </Directory>'."\n")); - + swriteln($inst->lng(' If it uses the old syntax (deny from all) ISPConfig would fail to work.')); } } @@ -63,6 +63,12 @@ class installer_dist extends installer_base { //* mysql-virtual_forwardings.cf $this->process_postfix_config('mysql-virtual_forwardings.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-virtual_alias_domains.cf'); + + //* mysql-virtual_alias_maps.cf + $this->process_postfix_config('mysql-virtual_alias_maps.cf'); + //* mysql-virtual_mailboxes.cf $this->process_postfix_config('mysql-virtual_mailboxes.cf'); @@ -80,7 +86,7 @@ class installer_dist extends installer_base { //* mysql-virtual_sender_login_maps.cf $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); - + //* mysql-virtual_client.cf $this->process_postfix_config('mysql-virtual_client.cf'); @@ -89,7 +95,7 @@ class installer_dist extends installer_base { //* mysql-virtual_relayrecipientmaps.cf $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - + //* mysql-virtual_outgoing_bcc.cf $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf'); @@ -102,6 +108,9 @@ class installer_dist extends installer_base { //* mysql-virtual_uids.cf $this->process_postfix_config('mysql-virtual_uids.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + //* postfix-dkim $filename='tag_as_originating.re'; $full_file_name=$config_dir.'/'.$filename; @@ -115,12 +124,6 @@ class installer_dist extends installer_base { $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); wf($full_file_name, $content); - //* Changing mode and group of the new created config files. - caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - //* Creating virtual mail user and group $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -142,19 +145,19 @@ class installer_dist extends installer_base { } } unset($rbl_hosts); - + //* If Postgrey is installed, configure it $greylisting = ''; if($conf['postgrey']['installed'] == true) { $greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'; } - + $reject_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; } unset($server_ini_array); - + $postconf_placeholders = array('{config_dir}' => $config_dir, '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], '{vmail_userid}' => $cf['vmail_userid'], @@ -163,7 +166,7 @@ class installer_dist extends installer_base { '{greylisting}' => $greylisting, '{reject_slm}' => $reject_sender_login_mismatch, ); - + $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_postfix.conf.master', 'tpl/fedora_postfix.conf.master'); $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders); $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines @@ -368,13 +371,13 @@ class installer_dist extends installer_base { $virtual_transport = 'dovecot'; $configure_lmtp = false; - + // check if virtual_transport must be changed if ($this->is_update) { $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . ".server", $conf['server_id']); $ini_array = ini_to_array(stripslashes($tmp['config'])); // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() - + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; $configure_lmtp = true; @@ -401,7 +404,6 @@ class installer_dist extends installer_base { } //* Reconfigure postfix to use dovecot authentication - // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', 'virtual_transport = '.$virtual_transport, @@ -450,6 +452,38 @@ class installer_dist extends installer_base { file_put_contents($config_dir.'/'.$configfile,$content); unset($content); } + if(version_compare($dovecot_version,2.3) >= 0) { + // Remove deprecated setting(s) + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + + // Check if we have a dhparams file and if not, create it + if(!file_exists('/etc/dovecot/dh.pem')) { + swriteln('Creating new DHParams file, this takes several minutes. Do not interrupt the script.'); + if(file_exists('/var/lib/dovecot/ssl-parameters.dat')) { + // convert existing ssl parameters file + $command = 'dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } else { + /* + Create a new dhparams file. We use 2048 bit only as it simply takes too long + on smaller systems to generate a 4096 bit dh file (> 30 minutes). If you need + a 4096 bit file, create it manually before you install ISPConfig + */ + $command = 'openssl dhparam -out /etc/dovecot/dh.pem 2048'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + //remove #2.3+ comment + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('#2.3+','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + + } else { + // remove settings which are not supported in Dovecot < 2.3 + removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); + removeLine($config_dir.'/'.$configfile, 'ssl_dh ='); + } replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); replaceLine($config_dir.'/'.$configfile, 'postmaster_address = webmaster@localhost', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); } else { @@ -471,7 +505,7 @@ class installer_dist extends installer_base { copy("$config_dir/$configfile", "$config_dir/$configfile~"); exec("chmod 400 $config_dir/$configfile~"); } - + if(!@file_exists('/etc/dovecot-sql.conf')) exec('ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf'); $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_dovecot-sql.conf.master', "tpl/fedora_dovecot-sql.conf.master"); @@ -489,7 +523,7 @@ class installer_dist extends installer_base { exec("chmod 600 $config_dir/$configfile"); exec("chown root:root $config_dir/$configfile"); - + // Dovecot shall ignore mounts in website directory if(is_installed('doveadm')) exec("doveadm mount add '/var/www/*' ignore > /dev/null 2> /dev/null"); @@ -512,12 +546,12 @@ class installer_dist extends installer_base { $content = str_replace('{amavis_config_dir}', $conf['amavis']['config_dir'], $content); wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content); chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); - + if(!is_file($conf['amavis']['config_dir'].'/60-dkim')) { touch($conf['amavis']['config_dir'].'/60-dkim'); chmod($conf['amavis']['config_dir'].'/60-dkim', 0640); } - + // for CentOS 7.2 only if($dist['confid'] == 'centos72') { chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0750); @@ -721,16 +755,16 @@ class installer_dist extends installer_base { $tpl = new tpl('apache_ispconfig.conf.master'); $tpl->setVar('apache_version',getapacheversion()); - + if($this->is_update == true) { $tpl->setVar('logging',get_logging_state()); } else { $tpl->setVar('logging','yes'); } - + $records = $this->db->queryAllRecords("SELECT * FROM ?? WHERE server_id = ? AND virtualhost = 'y'", $conf['mysql']['master_database'] . '.server_ip', $conf['server_id']); $ip_addresses = array(); - + if(is_array($records) && count($records) > 0) { foreach($records as $rec) { if($rec['ip_type'] == 'IPv6') { @@ -749,7 +783,7 @@ class installer_dist extends installer_base { } } } - + if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab()); @@ -812,7 +846,7 @@ class installer_dist extends installer_base { //* add a sshusers group $command = 'groupadd sshusers'; if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + // add anonymized log option to nginxx.conf file $nginx_conf_file = $conf['nginx']['config_dir'].'/nginx.conf'; if(is_file($nginx_conf_file)) { @@ -822,7 +856,7 @@ class installer_dist extends installer_base { replaceLine($nginx_conf_file, 'http {', "http {\n\n".file_get_contents('tpl/nginx_anonlog.master'), 0, 0); } } - + } public function configure_bastille_firewall() @@ -915,31 +949,20 @@ class installer_dist extends installer_base { //* copy the ISPConfig server part $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make a backup of the security settings if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); - + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Apply changed security_settings.ini values to new security_settings.ini file - if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { - $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); - $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); - if(is_array($security_settings_new) && is_array($security_settings_old)) { - foreach($security_settings_new as $section => $sval) { - if(is_array($sval)) { - foreach($sval as $key => $val) { - if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { - $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; - } - } - } - } - file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); - } + + $configfile = 'security_settings.ini'; + if(is_file($install_dir.'/security/'.$configfile)) { + copy($install_dir.'/security/'.$configfile, $install_dir.'/security/'.$configfile.'~'); } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + wf($install_dir.'/security/'.$configfile, $content); //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 @@ -1080,15 +1103,15 @@ class installer_dist extends installer_base { //* chown the interface files to the ispconfig user and group $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security files to the root user and group $command = 'chown -R root:root '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security directory and security_settings.ini to root:ispconfig $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1143,12 +1166,12 @@ class installer_dist extends installer_base { exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf"); exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf"); } - + if(is_dir($install_dir.'/interface/invoices')) { exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); } - + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing @@ -1179,7 +1202,7 @@ class installer_dist extends installer_base { $sql = "UPDATE sys_user SET passwort = md5(?) WHERE username = 'admin';"; $this->db->query($sql, $conf['interface_password']); } - + if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){ //* Copy the ISPConfig vhost for the controlpanel // TODO: These are missing! should they be "vhost_dist_*_dir" ? @@ -1208,7 +1231,7 @@ class installer_dist extends installer_base { } else { $tpl->setVar('ssl_bundle_comment','#'); } - + $tpl->setVar('apache_version',getapacheversion()); wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab()); @@ -1221,24 +1244,16 @@ class installer_dist extends installer_base { exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/000-ispconfig.vhost"); } - /* - exec('mkdir -p /var/www/php-fcgi-scripts/ispconfig'); - exec('cp tpl/apache_ispconfig_fcgi_starter.master /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); - exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); - exec('ln -s /usr/local/ispconfig/interface/web /var/www/ispconfig'); - exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); - - replaceLine('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter','PHPRC=','PHPRC=/etc/',0,0); - */ - //if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) { $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig_fcgi_starter.master', 'tpl/apache_ispconfig_fcgi_starter.master'); $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); if(!is_dir('/var/www/php-fcgi-scripts/ispconfig')) exec('mkdir -p /var/www/php-fcgi-scripts/ispconfig'); + $this->set_immutable('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', false); wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content); exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); if(!is_link('/var/www/ispconfig')) exec('ln -s /usr/local/ispconfig/interface/web /var/www/ispconfig'); exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); + $this->set_immutable('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', true); //} //} } @@ -1353,10 +1368,10 @@ class installer_dist extends installer_base { //* Remove Domain module as its functions are available in the client module now if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); - + // Add symlink for patch tool if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - + // Change mode of a few files from amavisd if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 5bb0d9df1966347d54e9dd1b39d62dc462977560..324fe06e9adb2183cc7621216f6fe1ddfa93dd7a 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -100,13 +100,13 @@ class installer extends installer_base if($conf['postgrey']['installed'] == true) { $greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'; } - + $reject_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; } unset($server_ini_array); - + $postconf_placeholders = array('{config_dir}' => $config_dir, '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], '{vmail_userid}' => $cf['vmail_userid'], @@ -277,13 +277,13 @@ class installer extends installer_base $virtual_transport = 'dovecot'; $configure_lmtp = false; - + // check if virtual_transport must be changed if ($this->is_update) { $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"].".server", $conf['server_id']); $ini_array = ini_to_array(stripslashes($tmp['config'])); // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() - + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; $configure_lmtp = true; @@ -338,6 +338,11 @@ class installer extends installer_base replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); } + //* Get the dovecot version + exec('dovecot --version', $tmp); + $dovecot_version = $tmp[0]; + unset($tmp); + //* dovecot-sql.conf $configfile = $config_dir.'/dovecot-sql.conf'; $content = $this->get_template_file('debian_dovecot-sql.conf', true, true); @@ -602,16 +607,16 @@ class installer extends installer_base //* Copy the ISPConfig configuration include $tpl = new tpl('apache_ispconfig.conf.master'); $tpl->setVar('apache_version',getapacheversion()); - + if($this->is_update == true) { $tpl->setVar('logging',get_logging_state()); } else { $tpl->setVar('logging','yes'); } - + $records = $this->db->queryAllRecords("SELECT * FROM ?? WHERE server_id = ? AND virtualhost = 'y'", $conf['mysql']['master_database'] . '.server_ip', $conf['server_id']); $ip_addresses = array(); - + if(is_array($records) && count($records) > 0) { foreach($records as $rec) { if($rec['ip_type'] == 'IPv6') { @@ -630,7 +635,7 @@ class installer extends installer_base } } } - + if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); wf($conf['apache']['vhost_conf_dir'].'/000-ispconfig.conf', $tpl->grab()); @@ -727,10 +732,11 @@ class installer extends installer_base $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true); //copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); + $this->set_immutable($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', false); wf($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', $content); exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps'); - + $this->set_immutable($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', true); //} } if($conf['nginx']['installed'] == true){ @@ -783,11 +789,11 @@ class installer extends installer_base //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content); $content = str_replace('{fpm_socket}', $fpm_socket, $content); $content = str_replace('{cgi_socket}', $cgi_socket, $content); - + // SSL in apps vhost is off by default. Might change later. $content = str_replace('{ssl_on}', 'ssl', $content); $content = str_replace('{ssl_comment}', '#', $content); - + wf($vhost_conf_dir.'/apps.vhost', $content); // PHP-FPM @@ -843,14 +849,14 @@ class installer extends installer_base //* copy the ISPConfig server part $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make a backup of the security settings if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); - + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Apply changed security_settings.ini values to new security_settings.ini file if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); @@ -983,15 +989,15 @@ class installer extends installer_base //* chown the interface files to the ispconfig user and group $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security files to the root user and group $command = 'chown -R root:root '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security directory and security_settings.ini to root:ispconfig $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1005,7 +1011,7 @@ class installer extends installer_base caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security/nginx_directives.blacklist'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); @@ -1058,7 +1064,7 @@ class installer extends installer_base exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); } - + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing @@ -1089,7 +1095,7 @@ class installer extends installer_base $sql = "UPDATE sys_user SET passwort = md5(?) WHERE username = 'admin';"; $this->db->query($sql, $conf['interface_password']); } - + if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){ //* Copy the ISPConfig vhost for the controlpanel $content = $this->get_template_file("apache_ispconfig.vhost", true); @@ -1121,11 +1127,13 @@ class installer extends installer_base $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true); + $this->set_immutable('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', false); wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content); exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); chmod('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', 0755); @symlink($install_dir.'/interface/web', '/var/www/ispconfig'); exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); + $this->set_immutable('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', true); } } @@ -1238,16 +1246,16 @@ class installer extends installer_base //* Remove Domain module as its functions are available in the client module now if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); - + // Add symlink for patch tool if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - + // Change mode of a few files from amavisd if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400); - + } } diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 21cfd9f2bad9d929e280f9abd5d091444131bff7..da31ad6b571d204836e6b9c5ea878c70ab2ecbb5 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -30,7 +30,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class installer_dist extends installer_base { protected $mailman_group = 'mailman'; - + public function __construct() { //** check apache modules */ $mods = getapachemodules(); @@ -42,7 +42,7 @@ class installer_dist extends installer_base { swriteln($inst->lng(' AllowOverride None')); swriteln($inst->lng(' Require all denied')); swriteln($inst->lng(' </Directory>'."\n")); - + swriteln($inst->lng(' If it uses the old syntax (deny from all) ISPConfig would fail to work.')); } } @@ -63,6 +63,12 @@ class installer_dist extends installer_base { //* mysql-virtual_forwardings.cf $this->process_postfix_config('mysql-virtual_forwardings.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-virtual_alias_domains.cf'); + + //* mysql-virtual_alias_maps.cf + $this->process_postfix_config('mysql-virtual_alias_maps.cf'); + //* mysql-virtual_mailboxes.cf $this->process_postfix_config('mysql-virtual_mailboxes.cf'); @@ -80,7 +86,7 @@ class installer_dist extends installer_base { //* mysql-virtual_sender_login_maps.cf $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); - + //* mysql-virtual_client.cf $this->process_postfix_config('mysql-virtual_client.cf'); @@ -99,6 +105,9 @@ class installer_dist extends installer_base { //* mysql-virtual_uids.cf $this->process_postfix_config('mysql-virtual_uids.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + //* postfix-dkim $filename='tag_as_originating.re'; $full_file_name=$config_dir.'/'.$filename; @@ -112,12 +121,6 @@ class installer_dist extends installer_base { $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); wf($full_file_name, $content); - //* Changing mode and group of the new created config files. - caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - if(!is_dir($cf['vmail_mailbox_base'])) mkdir($cf['vmail_mailbox_base']); //* Creating virtual mail user and group @@ -159,13 +162,13 @@ class installer_dist extends installer_base { if($conf['postgrey']['installed'] == true) { $greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'; } - + $reject_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; } unset($server_ini_array); - + $postconf_placeholders = array('{config_dir}' => $config_dir, '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], '{vmail_userid}' => $cf['vmail_userid'], @@ -174,7 +177,7 @@ class installer_dist extends installer_base { '{greylisting}' => $greylisting, '{reject_slm}' => $reject_sender_login_mismatch, ); - + $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_postfix.conf.master', 'tpl/opensuse_postfix.conf.master'); $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders); $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines @@ -378,13 +381,13 @@ class installer_dist extends installer_base { $virtual_transport = 'dovecot'; $configure_lmtp = false; - + // check if virtual_transport must be changed if ($this->is_update) { $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . ".server", $conf['server_id']); $ini_array = ini_to_array(stripslashes($tmp['config'])); // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() - + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; $configure_lmtp = true; @@ -487,7 +490,7 @@ class installer_dist extends installer_base { exec("chmod 600 $config_dir/$configfile"); exec("chown root:root $config_dir/$configfile"); - + // Dovecot shall ignore mounts in website directory if(is_installed('doveadm')) exec("doveadm mount add '/srv/www/*' ignore > /dev/null 2> /dev/null"); @@ -659,7 +662,7 @@ class installer_dist extends installer_base { if($conf['apache']['installed'] == false) return; //* Create the logging directory for the vhost logfiles exec('mkdir -p /var/log/ispconfig/httpd'); - + //* enable apache logio module exec('a2enmod logio'); @@ -690,16 +693,16 @@ class installer_dist extends installer_base { $tpl = new tpl('apache_ispconfig.conf.master'); $tpl->setVar('apache_version',getapacheversion()); - + if($this->is_update == true) { $tpl->setVar('logging',get_logging_state()); } else { $tpl->setVar('logging','yes'); } - + $records = $this->db->queryAllRecords("SELECT * FROM ?? WHERE server_id = ? AND virtualhost = 'y'", $conf['mysql']['master_database'] . '.server_ip', $conf['server_id']); $ip_addresses = array(); - + if(is_array($records) && count($records) > 0) { foreach($records as $rec) { if($rec['ip_type'] == 'IPv6') { @@ -718,7 +721,7 @@ class installer_dist extends installer_base { } } } - + if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab()); @@ -823,7 +826,7 @@ class installer_dist extends installer_base { //* add a sshusers group $command = 'groupadd sshusers'; if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + // add anonymized log option to nginxx.conf file $nginx_conf_file = $conf['nginx']['config_dir'].'/nginx.conf'; if(is_file($nginx_conf_file)) { @@ -925,14 +928,14 @@ class installer_dist extends installer_base { //* copy the ISPConfig server part $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make a backup of the security settings if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); - + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Apply changed security_settings.ini values to new security_settings.ini file if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); @@ -1090,15 +1093,15 @@ class installer_dist extends installer_base { //* chown the interface files to the ispconfig user and group $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security files to the root user and group $command = 'chown -R root:root '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security directory and security_settings.ini to root:ispconfig $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1112,7 +1115,7 @@ class installer_dist extends installer_base { caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security/nginx_directives.blacklist'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); @@ -1153,12 +1156,12 @@ class installer_dist extends installer_base { exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf"); exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf"); } - + if(is_dir($install_dir.'/interface/invoices')) { exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); } - + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing @@ -1192,7 +1195,7 @@ class installer_dist extends installer_base { $sql = "UPDATE sys_user SET passwort = md5(?) WHERE username = 'admin';"; $this->db->query($sql, $conf['interface_password']); } - + if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){ //* Copy the ISPConfig vhost for the controlpanel // TODO: These are missing! should they be "vhost_dist_*_dir" ? @@ -1221,7 +1224,7 @@ class installer_dist extends installer_base { } else { $tpl->setVar('ssl_bundle_comment','#'); } - + $tpl->setVar('apache_version',getapacheversion()); $content = $tpl->grab(); @@ -1233,10 +1236,12 @@ class installer_dist extends installer_base { $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); exec('mkdir -p /srv/www/php-fcgi-scripts/ispconfig'); + $this->set_immutable('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', false); wf('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content); exec('chmod +x /srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); exec('ln -s /usr/local/ispconfig/interface/web /srv/www/ispconfig'); exec('chown -R ispconfig:ispconfig /srv/www/php-fcgi-scripts/ispconfig'); + $this->set_immutable('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', true); //} @@ -1362,10 +1367,10 @@ class installer_dist extends installer_base { //* Remove Domain module as its functions are available in the client module now if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); - + // Add symlink for patch tool if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - + // Change mode of a few files from amavisd if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); diff --git a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master index 5e1c8ebba6fe2616b76196ffa8a5155dd374c014..7e42c8a362b86f9255fbd46aa16c3a546b727a34 100644 --- a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master +++ b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master @@ -67,7 +67,7 @@ $final_spam_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; -# Default settings, we st this very high to not filter aut emails accidently +# Default settings, we set this very high to not filter out emails accidentally $sa_spam_subject_tag = '***SPAM*** '; $sa_tag_level_deflt = 20.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 60.0; # add 'spam detected' headers at that level diff --git a/install/dist/tpl/gentoo/jk_init.ini.master b/install/dist/tpl/gentoo/jk_init.ini.master index a2ff3a19517d46019a7843c6189be49698d4684f..6e11d05fd5414b5d3904bc3b188efd8b52e8f816 100644 --- a/install/dist/tpl/gentoo/jk_init.ini.master +++ b/install/dist/tpl/gentoo/jk_init.ini.master @@ -99,6 +99,8 @@ directories = /etc/joe, /etc/terminfo, /usr/share/vim, /usr/share/terminfo, /usr comment = several internet utilities like wget, ftp, rsync, scp, ssh executables = /usr/bin/wget, /usr/bin/lynx, /usr/bin/ftp, /usr/bin/host, /usr/bin/rsync, /usr/bin/smbclient includesections = netbasics, ssh, sftp, scp +directories = /etc/ssl/certs/ +regularfiles = /usr/lib/ssl/certs [apacheutils] comment = htpasswd utility diff --git a/install/install.php b/install/install.php index a324669867fc1a06bbf8c5acb76f76bc3ed87ef3..9dff3facf2e71a085e1cbc0994eb7cc8e967957b 100644 --- a/install/install.php +++ b/install/install.php @@ -385,7 +385,14 @@ if($install_mode == 'standard' || strtolower($inst->simple_query('Configure Mail $inst->configure_amavis(); } - //* Configure Getmail + //* Configure Rspamd + $force = @($conf['rspamd']['installed']) ? true : $inst->force_configure_app('Rspamd', ($install_mode == 'expert')); + if($force) { + swriteln('Configuring Rspamd'); + $inst->configure_rspamd(); + } + +//* Configure Getmail $force = @($conf['getmail']['installed']) ? true : $inst->force_configure_app('Getmail', ($install_mode == 'expert')); if($force) { swriteln('Configuring Getmail'); @@ -538,20 +545,6 @@ $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == if($install_mode == 'standard' || strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') { swriteln('Installing ISPConfig'); - //** We want to check if the server is a module or cgi based php enabled server - //** TODO: Don't always ask for this somehow ? - /* - $fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no'); - - if($fast_cgi == 'yes') { - $alias = $inst->free_query('Script Alias', '/php/'); - $path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin'); - $conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path); - } else { - $conf['apache']['vhost_cgi_alias'] = ""; - } - */ - //** Customise the port ISPConfig runs on $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port'); $temp_admin_password = str_shuffle(bin2hex(openssl_random_pseudo_bytes(4))); @@ -602,6 +595,7 @@ if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') s if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); +if($conf['rspamd']['installed'] == true && $conf['rspamd']['init_script'] != '') system($inst->getinitcommand($conf['rspamd']['init_script'], 'restart')); if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); if($conf['courier']['installed'] == true){ if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); diff --git a/install/lib/classes/tpl.inc.php b/install/lib/classes/tpl.inc.php index 73ff19230b6b95f83e8e32d26b86f1e8f243fec8..5bd8ded1f8818f2e1bb8b6d473d479facc1a0db0 100644 --- a/install/lib/classes/tpl.inc.php +++ b/install/lib/classes/tpl.inc.php @@ -357,147 +357,6 @@ if (!defined('vlibTemplateClassLoaded')) { return true; } - /** - * [** EXPERIMENTAL **] - * Function to create a loop from a Db result resource link. - * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop() - * @param string $result link to a Db result resource - * @param string $db_type, type of db that the result resource belongs to. - * @return boolean true/false - * @access public - */ - public function setDbLoop($loopname, $result, $db_type = 'MYSQL') - { - /* - $db_type = strtoupper($db_type); - if (!in_array($db_type, $this->allowed_loop_dbs)) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB', WARNING, $db_type); - return false; - } - - $loop_arr = array(); - // TODO: Are all these necessary as were onyl using mysql and possible postgres ? - pedro - switch ($db_type) { - - case 'MYSQL': - if (get_resource_type($result) != 'mysql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = mysql_fetch_assoc($result)) { - $loop_arr[] = $r; - } - break; - - case 'POSTGRESQL': - if (get_resource_type($result) != 'pgsql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - - $nr = (function_exists('pg_num_rows')) ? pg_num_rows($result) : pg_numrows($result); - - for ($i=0; $i < $nr; $i++) { - $loop_arr[] = pg_fetch_array($result, $i, PGSQL_ASSOC); - } - break; - - case 'INFORMIX': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = ifx_fetch_row($result, 'NEXT')) { - $loop_arr[] = $r; - } - break; - - case 'INTERBASE': - if (get_resource_type($result) != 'interbase result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = ibase_fetch_row($result)) { - $loop_arr[] = $r; - } - break; - - case 'INGRES': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = ingres_fetch_array(INGRES_ASSOC, $result)) { - $loop_arr[] = $r; - } - break; - - case 'MSSQL': - if (get_resource_type($result) != 'mssql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = mssql_fetch_array($result)) { - $loop_arr[] = $r; - } - break; - - case 'MSQL': - if (get_resource_type($result) != 'msql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = msql_fetch_array($result, MSQL_ASSOC)) { - $loop_arr[] = $r; - } - break; - - case 'OCI8': - if (get_resource_type($result) != 'oci8 statement') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while(OCIFetchInto($result, &$r, OCI_ASSOC+OCI_RETURN_LOBS)) { - $loop_arr[] = $r; - } - break; - - case 'ORACLE': - if (get_resource_type($result) != 'oracle Cursor') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while(ora_fetch_into($result, &$r, ORA_FETCHINTO_ASSOC)) { - $loop_arr[] = $r; - } - break; - - case 'OVRIMOS': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while(ovrimos_fetch_into($result, &$r, 'NEXT')) { - $loop_arr[] = $r; - } - break; - - case 'SYBASE': - if (get_resource_type($result) != 'sybase-db result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - - while($r = sybase_fetch_array($result)) { - $loop_arr[] = $r; - } - break; - } - $this->setLoop($loopname, $loop_arr); - return true; - */ - } - /** * Sets the name for the curent loop in the 3 step loop process. * @param string $name string to define loop name diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 933c30fe38461f497165e0a4496fac18e90ece4b..2ed873d9baf4799e80d5c556232a8cb4f50d51bc 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -95,6 +95,10 @@ function get_distname() { $mainver = current($mainver).'.'.next($mainver); } switch ($mainver){ + case "20.04": + $relname = "(Focal Fossa)"; + $distconfid = 'ubuntu2004'; + break; case "18.04": $relname = "(Bionic Beaver)"; $distconfid = 'ubuntu1804'; @@ -186,7 +190,7 @@ function get_distname() { break; default: $relname = "UNKNOWN"; - $distconfid = 'ubuntu1604'; + $distconfid = 'ubuntu2004'; } $distver = $ver.$lts." ".$relname; swriteln("Operating System: ".$distname.' '.$distver."\n"); @@ -227,6 +231,13 @@ function get_distname() { $distid = 'debian60'; $distbaseid = 'debian'; swriteln("Operating System: Debian 9.0 (Stretch) or compatible\n"); + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,2) == '10') { + $distname = 'Debian'; + $distver = 'Buster'; + $distconfid = 'debian100'; + $distid = 'debian60'; + $distbaseid = 'debian'; + swriteln("Operating System: Debian 10.0 (Buster) or compatible\n"); } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '/sid')) { $distname = 'Debian'; $distver = 'Testing'; @@ -238,7 +249,7 @@ function get_distname() { $distname = 'Debian'; $distver = 'Unknown'; $distid = 'debian60'; - $distconfid = 'debian90'; + $distconfid = 'debian100'; $distbaseid = 'debian'; swriteln("Operating System: Debian or compatible, unknown version.\n"); } @@ -334,6 +345,15 @@ function get_distname() { $distid = 'centos72'; } swriteln("Operating System: CentOS $var\n"); + } elseif(stristr($content, 'CentOS Linux release 8')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distbaseid = 'fedora'; + $distid = 'centos80'; + $var=explode(" ", $content); + $var=explode(".", $var[3]); + $var=$var[0].".".$var[1]; + swriteln("Operating System: CentOS $var\n"); } else { $distname = 'Redhat'; $distver = 'Unknown'; @@ -455,29 +475,38 @@ function rf($file){ } function wf($file, $content){ - mkdirs(dirname($file)); + if(!$ret_val = mkdirs(dirname($file))) return false; if(!$fp = fopen($file, 'wb')){ ilog('WARNING: could not open file '.$file); + // implicitly returned false because the following fwrite and fclose both fail, + // but to be explicit: + $ret_val = false; } - fwrite($fp, $content); - fclose($fp); + fwrite($fp, $content) or $ret_val = false; + fclose($fp) or $ret_val = false; + return $ret_val; } function af($file, $content){ - mkdirs(dirname($file)); + if(!$ret_val = mkdirs(dirname($file))) return false; if(!$fp = fopen($file, 'ab')){ ilog('WARNING: could not open file '.$file); + $ret_val = false; } - fwrite($fp, $content); - fclose($fp); + fwrite($fp, $content) or $ret_val = false; + fclose($fp) or $ret_val = false; + return $ret_val; } function aftsl($file, $content){ + $ret_val = true; if(!$fp = fopen($file, 'ab')){ ilog('WARNING: could not open file '.$file); + $ret_val = false; } - fwrite($fp, $content); - fclose($fp); + fwrite($fp, $content) or $ret_val = false; + fclose($fp) or $ret_val = false; + return $ret_val; } function unix_nl($input){ @@ -662,8 +691,7 @@ function ini_to_array($ini) { //* Converts a config array to a string -function array_to_ini($config_array = '') { - if($config_array == '') $config_array = $this->config; +function array_to_ini($config_array) { $content = ''; foreach($config_array as $section => $data) { $content .= "[$section]\n"; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 2c99f1bd0b3b9c2e72019685a22c8fa75d594e34..6a4d771e16b184ac23af5d3335d436c98176856a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -143,6 +143,16 @@ class installer_base { } */ + public function set_immutable($path, $enable = true) { + if($path != '' && $path != '/' && strlen($path) > 6 && strpos($path, '..') === false && (is_file($path) || is_dir($path))) { + if($enable) { + exec('chattr +i ' . escapeshellarg($path)); + } else { + exec('chattr -i ' . escapeshellarg($path)); + } + } + } + //** Detect PHP-Version public function get_php_version() { if(version_compare(PHP_VERSION, $this->min_php, '<')) return false; @@ -163,6 +173,7 @@ class installer_base { if(is_installed('dovecot')) $conf['dovecot']['installed'] = true; if(is_installed('saslauthd')) $conf['saslauthd']['installed'] = true; if(is_installed('amavisd-new') || is_installed('amavisd')) $conf['amavis']['installed'] = true; + if(is_installed('rspamd')) $conf['rspamd']['installed'] = true; if(is_installed('clamdscan')) $conf['clamav']['installed'] = true; if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true; if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true; @@ -234,7 +245,7 @@ class installer_base { die(); }*/ - $unwanted_sql_plugins = array('validate_password'); + $unwanted_sql_plugins = array('validate_password'); $sql_plugins = $this->db->queryAllRecords("SELECT plugin_name FROM information_schema.plugins WHERE plugin_status='ACTIVE' AND plugin_name IN ?", $unwanted_sql_plugins); if(is_array($sql_plugins) && !empty($sql_plugins)) { foreach ($sql_plugins as $plugin) echo "Login in to MySQL and disable $plugin[plugin_name] with:\n\n UNINSTALL PLUGIN $plugin[plugin_name];"; @@ -288,11 +299,15 @@ class installer_base { $this->db->query("DROP USER ?@?", $conf['mysql']['ispconfig_user'], $from_host); $this->db->query("DROP DATABASE IF EXISTS ?", $conf['mysql']['database']); - //* Create the ISPConfig database user in the local database - $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON ?? TO ?@? IDENTIFIED BY ?'; - if(!$this->db->query($query, $conf['mysql']['database'] . ".*", $conf['mysql']['ispconfig_user'], $from_host, $conf['mysql']['ispconfig_password'])) { + //* Create the ISPConfig database user and grant permissions in the local database + $query = 'CREATE USER ?@? IDENTIFIED BY ?'; + if(!$this->db->query($query, $conf['mysql']['ispconfig_user'], $from_host, $conf['mysql']['ispconfig_password'])) { $this->error('Unable to create database user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); } + $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON ?? TO ?@?'; + if(!$this->db->query($query, $conf['mysql']['database'] . ".*", $conf['mysql']['ispconfig_user'], $from_host)) { + $this->error('Unable to grant databse permissions to user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); + } //* Set the database name in the DB library $this->db->setDBName($conf['mysql']['database']); @@ -321,6 +336,8 @@ class installer_base { $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; + $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavisd'; + $tpl_ini_array['mail']['rspamd_available'] = @($conf['rspamd']['installed']) ? 'y' : 'n'; $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; @@ -350,7 +367,7 @@ class installer_base { } $server_ini_content = array_to_ini($tpl_ini_array); - + $mail_server_enabled = ($conf['services']['mail'])?1:0; $web_server_enabled = ($conf['services']['web'])?1:0; $dns_server_enabled = ($conf['services']['dns'])?1:0; @@ -402,80 +419,92 @@ class installer_base { } - + + public function get_host_ips() { + $out = array(); + exec('hostname --all-ip-addresses', $ret, $val); + if($val == 0) { + if(is_array($ret) && !empty($ret)){ + $temp = (explode(' ', $ret[0])); + foreach($temp as $ip) { + $out[] = $ip; + } + } + } + + return $out; + } + public function detect_ips(){ global $conf; - exec("ip addr show | awk '/global/ { print $2 }' | cut -d '/' -f 1", $output, $retval); - - if($retval == 0){ - if(is_array($output) && !empty($output)){ - foreach($output as $line){ - $line = trim($line); - $ip_type = ''; - if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { - $ip_type = 'IPv4'; - } - if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { - $ip_type = 'IPv6'; - } - if($ip_type == '') continue; - if($this->db->dbHost != $this->dbmaster->dbHost){ - $this->dbmaster->query('INSERT INTO server_ip ( - sys_userid, sys_groupid, sys_perm_user, sys_perm_group, - sys_perm_other, server_id, client_id, ip_type, ip_address, - virtualhost, virtualhost_port - ) VALUES ( - 1, - 1, - "riud", - "riud", - "", - ?, - 0, - ?, - ?, - "y", - "80,443" - )', $conf['server_id'], $ip_type, $line); - $server_ip_id = $this->dbmaster->insertID(); - $this->db->query('INSERT INTO server_ip ( - server_php_id, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, - sys_perm_other, server_id, client_id, ip_type, ip_address, - virtualhost, virtualhost_port - ) VALUES ( - ?, - 1, - 1, - "riud", - "riud", - "", - ?, - 0, - ?, - ?, - "y", - "80,443" - )', $server_ip_id, $conf['server_id'], $ip_type, $line); - } else { - $this->db->query('INSERT INTO server_ip ( - sys_userid, sys_groupid, sys_perm_user, sys_perm_group, - sys_perm_other, server_id, client_id, ip_type, ip_address, - virtualhost, virtualhost_port - ) VALUES ( - 1, - 1, - "riud", - "riud", - "", - ?, - 0, - ?, - ?, - "y", - "80,443" - )', $conf['server_id'], $ip_type, $line); - } + $output = $this->get_host_ips(); + + if(is_array($output) && !empty($output)){ + foreach($output as $line){ + $ip_type = ''; + if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { + $ip_type = 'IPv4'; + } + if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + $ip_type = 'IPv6'; + } + if($ip_type == '') continue; + if($this->db->dbHost != $this->dbmaster->dbHost){ + $this->dbmaster->query('INSERT INTO server_ip ( + sys_userid, sys_groupid, sys_perm_user, sys_perm_group, + sys_perm_other, server_id, client_id, ip_type, ip_address, + virtualhost, virtualhost_port + ) VALUES ( + 1, + 1, + "riud", + "riud", + "", + ?, + 0, + ?, + ?, + "y", + "80,443" + )', $conf['server_id'], $ip_type, $line); + $server_ip_id = $this->dbmaster->insertID(); + $this->db->query('INSERT INTO server_ip ( + server_php_id, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, + sys_perm_other, server_id, client_id, ip_type, ip_address, + virtualhost, virtualhost_port + ) VALUES ( + ?, + 1, + 1, + "riud", + "riud", + "", + ?, + 0, + ?, + ?, + "y", + "80,443" + )', $server_ip_id, $conf['server_id'], $ip_type, $line); + } else { + $this->db->query('INSERT INTO server_ip ( + sys_userid, sys_groupid, sys_perm_user, sys_perm_group, + sys_perm_other, server_id, client_id, ip_type, ip_address, + virtualhost, virtualhost_port + ) VALUES ( + 1, + 1, + "riud", + "riud", + "", + ?, + 0, + ?, + ?, + "y", + "80,443" + )', $conf['server_id'], $ip_type, $line); } } } @@ -502,15 +531,23 @@ class installer_base { //* insert the ispconfig user in the remote server $from_host = $conf['hostname']; - $from_ip = gethostbyname($conf['hostname']); - $hosts[$from_host]['user'] = $conf['mysql']['master_ispconfig_user']; $hosts[$from_host]['db'] = $conf['mysql']['master_database']; $hosts[$from_host]['pwd'] = $conf['mysql']['master_ispconfig_password']; - $hosts[$from_ip]['user'] = $conf['mysql']['master_ispconfig_user']; - $hosts[$from_ip]['db'] = $conf['mysql']['master_database']; - $hosts[$from_ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; + $host_ips = $this->get_host_ips(); + if(is_array($host_ips) && !empty($host_ips)) { + foreach($host_ips as $ip) { + $hosts[$ip]['user'] = $conf['mysql']['master_ispconfig_user']; + $hosts[$ip]['db'] = $conf['mysql']['master_database']; + $hosts[$ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; + } + } else { + $from_ip = gethostbyname($conf['hostname']); + $hosts[$from_ip]['user'] = $conf['mysql']['master_ispconfig_user']; + $hosts[$from_ip]['db'] = $conf['mysql']['master_database']; + $hosts[$from_ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; + } } else{ /* * it is NOT a master-slave - Setup so we have to find out all clients and their @@ -648,7 +685,7 @@ class installer_base { if(!$this->dbmaster->query($query, $value['db'] . '.aps_instances', $value['user'], $host)) { $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); } - + $query = "GRANT SELECT, DELETE ON ?? TO ?@?"; if ($verbose){ echo $query ."\n"; @@ -672,7 +709,7 @@ class installer_base { if(!$this->dbmaster->query($query, $value['db'] . '.mail_backup', $value['user'], $host)) { $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); } - + $query = "GRANT SELECT, UPDATE(`dnssec_initialized`, `dnssec_info`, `dnssec_last_signed`) ON ?? TO ?@?"; if ($verbose){ echo $query ."\n"; @@ -680,7 +717,7 @@ class installer_base { if(!$this->dbmaster->query($query, $value['db'] . '.dns_soa', $value['user'], $host)) { $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); } - + $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; if ($verbose){ echo $query ."\n"; @@ -700,11 +737,16 @@ class installer_base { global $conf; $config_dir = $conf['postfix']['config_dir'].'/'; + $postfix_group = $conf['postfix']['group']; $full_file_name = $config_dir.$configfile; + //* Backup exiting file if(is_file($full_file_name)) { copy($full_file_name, $config_dir.$configfile.'~'); + chmod($config_dir.$configfile.'~',0600); } + + //* Replace variables in config file template $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); @@ -712,6 +754,13 @@ class installer_base { $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); $content = str_replace('{server_id}', $conf['server_id'], $content); wf($full_file_name, $content); + + //* Changing mode and group of the new created config file + caselog('chmod u=rw,g=r,o= '.escapeshellarg($full_file_name).' &> /dev/null', + __FILE__, __LINE__, 'chmod on '.$full_file_name, 'chmod on '.$full_file_name.' failed'); + caselog('chgrp '.escapeshellarg($postfix_group).' '.escapeshellarg($full_file_name).' &> /dev/null', + __FILE__, __LINE__, 'chgrp on '.$full_file_name, 'chgrp on '.$full_file_name.' failed'); + } public function configure_jailkit() { @@ -837,15 +886,78 @@ class installer_base { exec ("postconf -M $service.$type 2> /dev/null", $out, $ret); } $postfix_service = @($out[0]=='')?false:true; - } else { //* fallback - Postfix < 2.9 + } else { //* fallback - Postfix < 2.9 $content = rf($conf['postfix']['config_dir'].'/master.cf'); - $regex = "/^((?!#)".$service.".*".$type.".*)$/m"; - $postfix_service = @(preg_match($regex, $content))?true:false; + $quoted_regex = "^((?!#)".preg_quote($service, '/').".*".preg_quote($type, '/').".*)$"; + $postfix_service = @(preg_match("/$quoted_regex/m", $content))?true:false; } return $postfix_service; } + public function remove_postfix_service( $service, $type ) { + global $conf; + + // nothing to do if the service isn't even defined. + if (! $this->get_postfix_service( $service, $type ) ) { + return true; + } + + $postfix_version = `postconf -d mail_version 2>/dev/null`; + $postfix_version = preg_replace( '/mail_version\s*=\s*(.*)\s*/', '$1', $postfix_version ); + + if ( version_compare( $postfix_version, '2.11', '>=' ) ) { + + exec("postconf -X -M $service/$type 2> /dev/null", $out, $ret); + + # reduce 3 or more newlines to 2 + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + $content = preg_replace( '/(\r?\n){3,}/', '$1$1', $content ); + wf( $conf['postfix']['config_dir'].'/master.cf', $content ); + + } else { //* fallback - Postfix < 2.11 + + if ( ! $cf = fopen( $conf['postfix']['config_dir'].'/master.cf', 'r' ) ) { + return false; + } + + $out = ""; + $reading_service = false; + + while ( !feof( $cf ) ) { + $line = fgets( $cf ); + + $quoted_regex = '^'.preg_quote($service, '/').'\s+'.preg_quote($type, '/'); + if ( $reading_service ) { + # regex matches a new service or "empty" (whitespace) line + if ( preg_match( '/^([^\s#]+.*|\s*)$/', $line ) && + ! preg_match( "/$quoted_regex/", $line ) ) { + $out .= $line; + $reading_service = false; + } + + # $skipped_lines .= $line; + + # regex matches definition matching service to be removed + } else if ( preg_match( "/$quoted_regex/", $line ) ) { + + $reading_service = true; + # $skipped_lines .= $line; + + } else { + $out .= $line; + } + } + fclose( $cf ); + + $out = preg_replace( '/(\r?\n){3,}/', '$1$1', $out ); # reduce 3 or more newlines to 2 + + return wf( $conf['postfix']['config_dir'].'/master.cf', $out ); + } + + return true; + } + public function configure_postfix($options = '') { global $conf,$autoinstall; $cf = $conf['postfix']; @@ -861,6 +973,12 @@ class installer_base { //* mysql-virtual_forwardings.cf $this->process_postfix_config('mysql-virtual_forwardings.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-virtual_alias_domains.cf'); + + //* mysql-virtual_alias_maps.cf + $this->process_postfix_config('mysql-virtual_alias_maps.cf'); + //* mysql-virtual_mailboxes.cf $this->process_postfix_config('mysql-virtual_mailboxes.cf'); @@ -887,7 +1005,7 @@ class installer_base { //* mysql-virtual_relayrecipientmaps.cf $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - + //* mysql-virtual_outgoing_bcc.cf $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf'); @@ -900,25 +1018,31 @@ class installer_base { //* mysql-virtual_uids.cf $this->process_postfix_config('mysql-virtual_uids.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + + // test if lmtp if available + $configure_lmtp = $this->get_postfix_service('lmtp','unix'); + //* postfix-dkim $filename='tag_as_originating.re'; $full_file_name=$config_dir.'/'.$filename; if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); + if($configure_lmtp) { + $content = preg_replace('/amavis:/', 'lmtp:', $content); + } wf($full_file_name, $content); $filename='tag_as_foreign.re'; $full_file_name=$config_dir.'/'.$filename; if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); + if($configure_lmtp) { + $content = preg_replace('/amavis:/', 'lmtp:', $content); + } wf($full_file_name, $content); - //* Changing mode and group of the new created config files. - caselog('chmod u=rw,g=r,o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - //* Creating virtual mail user and group $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -946,13 +1070,13 @@ class installer_base { if($conf['postgrey']['installed'] == true) { $greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'; } - + $reject_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; } unset($server_ini_array); - + $tmp = str_replace('.','\.',$conf['hostname']); $postconf_placeholders = array('{config_dir}' => $config_dir, @@ -1043,13 +1167,13 @@ class installer_base { if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); //* Check maildrop service in posfix master.cf - $regex = "/^maildrop unix.*pipe flags=DRhu user=vmail argv=\\/usr\\/bin\\/maildrop -d ".$cf['vmail_username']." \\$\{extension} \\$\{recipient} \\$\{user} \\$\{nexthop} \\$\{sender}/"; + $quoted_regex = '^maildrop unix.*pipe flags=DRhu user=vmail '.preg_quote('argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', '/'); $configfile = $config_dir.'/master.cf'; if($this->get_postfix_service('maildrop', 'unix')) { - exec ("postconf -M maildrop.unix &> /dev/null", $out, $ret); - $change_maildrop_flags = @(preg_match($regex, $out[0]) && $out[0] !='')?false:true; + exec ("postconf -M maildrop.unix 2> /dev/null", $out, $ret); + $change_maildrop_flags = @(preg_match("/$quoted_regex/", $out[0]) && $out[0] !='')?false:true; } else { - $change_maildrop_flags = @(preg_match($regex, $configfile))?false:true; + $change_maildrop_flags = @(preg_match("/$quoted_regex/", $configfile))?false:true; } if ($change_maildrop_flags) { //* Change maildrop service in posfix master.cf @@ -1090,7 +1214,7 @@ class installer_base { caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } - + public function configure_saslauthd() { global $conf; @@ -1206,17 +1330,22 @@ class installer_base { public function configure_dovecot() { global $conf; - + $virtual_transport = 'dovecot'; $configure_lmtp = false; - + + // use lmtp if installed + if($configure_lmtp = is_file('/usr/lib/dovecot/lmtp')) { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + // check if virtual_transport must be changed if ($this->is_update) { $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . ".server", $conf['server_id']); $ini_array = ini_to_array(stripslashes($tmp['config'])); // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() - + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; $configure_lmtp = true; @@ -1224,6 +1353,9 @@ class installer_base { } $config_dir = $conf['postfix']['config_dir']; + $quoted_config_dir = preg_quote($config_dir, '/'); + $postfix_version = `postconf -d mail_version 2>/dev/null`; + $postfix_version = preg_replace( '/mail_version\s*=\s*(.*)\s*/', '$1', $postfix_version ); //* Configure master.cf and add a line for deliver if(!$this->get_postfix_service('dovecot', 'unix')) { @@ -1235,7 +1367,7 @@ class installer_base { chmod($config_dir.'/master.cf~2', 0400); } //* Configure master.cf and add a line for deliver - $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + $content = rf($config_dir.'/master.cf'); $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n"; af($config_dir.'/master.cf', $deliver_content); unset($content); @@ -1252,7 +1384,32 @@ class installer_base { ); // Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~3'); + copy($config_dir.'/main.cf', $config_dir.'/main.cf~3'); + + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + $new_options = array(); + foreach ($options as $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match("|check_recipient_access\s+proxy:mysql:${quoted_config_dir}/mysql-verify_recipients.cf|", $value)) { + continue; + } + $new_options[] = $value; + } + if ($configure_lmtp) { + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'reject_unlisted_recipient') { + array_splice($new_options, $i+1, 0, array("check_recipient_access proxy:mysql:${config_dir}/mysql-verify_recipients.cf")); + break; + } + } + # postfix < 3.3 needs this when using reject_unverified_recipient: + if(version_compare($postfix_version, 3.3, '<')) { + $postconf_commands[] = "enable_original_recipient = yes"; + } + } + #exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + $postconf_commands[] = "smtpd_recipient_restrictions = ".implode(", ", $new_options); // Executing the postconf commands foreach($postconf_commands as $cmd) { @@ -1297,13 +1454,54 @@ class installer_base { file_put_contents($config_dir.'/'.$configfile,$content); unset($content); } + if(version_compare($dovecot_version,2.3) >= 0) { + // Remove deprecated setting(s) + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + + // Check if we have a dhparams file and if not, create it + if(!file_exists('/etc/dovecot/dh.pem')) { + swriteln('Creating new DHParams file, this takes several minutes. Do not interrupt the script.'); + if(file_exists('/var/lib/dovecot/ssl-parameters.dat')) { + // convert existing ssl parameters file + $command = 'dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } else { + /* + Create a new dhparams file. We use 2048 bit only as it simply takes too long + on smaller systems to generate a 4096 bit dh file (> 30 minutes). If you need + a 4096 bit file, create it manually before you install ISPConfig + */ + $command = 'openssl dhparam -out /etc/dovecot/dh.pem 2048'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + //remove #2.3+ comment + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('#2.3+ ','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + + } else { + // remove settings which are not supported in Dovecot < 2.3 + removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); + removeLine($config_dir.'/'.$configfile, 'ssl_dh ='); + } } + $dovecot_protocols = 'imap pop3'; + //* dovecot-lmtpd if($configure_lmtp) { - replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + $dovecot_protocols .= ' lmtp'; } + //* dovecot-managesieved + if(is_file('/usr/lib/dovecot/managesieve')) { + $dovecot_protocols .= ' sieve'; + } + + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', "protocols = $dovecot_protocols", 1, 0); + //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; if(is_file($config_dir.'/'.$configfile)) { @@ -1326,7 +1524,7 @@ class installer_base { chmod($config_dir.'/'.$configfile, 0600); chown($config_dir.'/'.$configfile, 'root'); chgrp($config_dir.'/'.$configfile, 'root'); - + // Dovecot shall ignore mounts in website directory if(is_installed('doveadm')) exec("doveadm mount add '/var/www/*' ignore > /dev/null 2> /dev/null"); @@ -1350,6 +1548,8 @@ class installer_base { // TODO: chmod and chown on the config file + // test if lmtp if available + $configure_lmtp = $this->get_postfix_service('lmtp','unix'); // Adding the amavisd commands to the postfix configuration // Add array for no error in foreach and maybe future options @@ -1357,7 +1557,8 @@ class installer_base { // Check for amavisd -> pure webserver with postfix for mailing without antispam if ($conf['amavis']['installed']) { - $postconf_commands[] = 'content_filter = amavis:[127.0.0.1]:10024'; + $content_filter_service = ($configure_lmtp) ? 'lmtp' : 'amavis'; + $postconf_commands[] = "content_filter = ${content_filter_service}:[127.0.0.1]:10024"; $postconf_commands[] = 'receive_override_options = no_address_mappings'; } @@ -1373,11 +1574,16 @@ class installer_base { $config_dir = $conf['postfix']['config_dir']; // Adding amavis-services to the master.cf file if the service does not already exists - $add_amavis = !$this->get_postfix_service('amavis','unix'); - $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet'); - $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet'); +// $add_amavis = !$this->get_postfix_service('amavis','unix'); +// $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet'); +// $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet'); //*TODO: check templates against existing postfix-services to make sure we use the template + // Or just remove the old service definitions and add them again? + $add_amavis = $this->remove_postfix_service('amavis','unix'); + $add_amavis_10025 = $this->remove_postfix_service('127.0.0.1:10025','inet'); + $add_amavis_10027 = $this->remove_postfix_service('127.0.0.1:10027','inet'); + if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) { //* backup master.cf if(is_file($config_dir.'/master.cf')) copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); @@ -1422,6 +1628,202 @@ class installer_base { } + public function configure_rspamd() { + global $conf; + + //* These postconf commands will be executed on installation and update + $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . '.server', $conf['server_id']); + $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); + unset($server_ini_rec); + + $mail_config = $server_ini_array['mail']; + if($mail_config['content_filter'] === 'rspamd') { + exec("postconf -X 'receive_override_options'"); + exec("postconf -X 'content_filter'"); + + exec("postconf -e 'smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'non_smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'milter_protocol = 6'"); + exec("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}'"); + exec("postconf -e 'milter_default_action = accept'"); + + exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, permit_mynetworks, permit_sasl_authenticated'"); + + + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + $new_options = array(); + foreach ($options as $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { + continue; + } + $new_options[] = $value; + } + exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + + } + + if(is_user('_rspamd') && is_group('amavis')) { + exec("usermod -G amavis _rspamd"); + } elseif(is_user('rspamd') && is_group('amavis')) { + exec("usermod -G amavis rspamd"); + } + + if(!is_dir('/etc/rspamd/local.d/')){ + mkdir('/etc/rspamd/local.d/', 0755, true); + } + + if(!is_dir('/etc/rspamd/override.d/')){ + mkdir('/etc/rspamd/override.d/', 0755, true); + } + + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { + $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } + $dkim_domains = $this->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM ?? WHERE `dkim` = ? ORDER BY `domain` ASC', $conf['mysql']['database'] . '.mail_domain', 'y'); + $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); + $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); + foreach($dkim_domains as $dkim_domain) { + fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); + fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector'] . "\n"); + } + fclose($fpp); + fclose($fps); + unset($dkim_domains); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.conf.master'); + + $whitelist_ips = array(); + $ips = $this->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ?", $conf['server_id']); + if(is_array($ips) && !empty($ips)){ + foreach($ips as $ip){ + $whitelist_ips[] = array('ip' => $ip['ip_address']); + } + } + $tpl->setLoop('whitelist_ips', $whitelist_ips); + wf('/etc/rspamd/local.d/users.conf', $tpl->grab()); + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_groups.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_groups.conf.master /etc/rspamd/local.d/groups.conf'); + } else { + exec('cp tpl/rspamd_groups.conf.master /etc/rspamd/local.d/groups.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_antivirus.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_antivirus.conf.master /etc/rspamd/local.d/antivirus.conf'); + } else { + exec('cp tpl/rspamd_antivirus.conf.master /etc/rspamd/local.d/antivirus.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_classifier-bayes.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_classifier-bayes.conf.master /etc/rspamd/local.d/classifier-bayes.conf'); + } else { + exec('cp tpl/rspamd_classifier-bayes.conf.master /etc/rspamd/local.d/classifier-bayes.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_greylist.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_greylist.conf.master /etc/rspamd/local.d/greylist.conf'); + } else { + exec('cp tpl/rspamd_greylist.conf.master /etc/rspamd/local.d/greylist.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_symbols_antivirus.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_symbols_antivirus.conf.master /etc/rspamd/local.d/antivirus_group.conf'); + } else { + exec('cp tpl/rspamd_symbols_antivirus.conf.master /etc/rspamd/local.d/antivirus_group.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_rbl.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_rbl.conf.master /etc/rspamd/override.d/rbl_group.conf'); + } else { + exec('cp tpl/rspamd_override_rbl.conf.master /etc/rspamd/override.d/rbl_group.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_surbl.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_surbl.conf.master /etc/rspamd/override.d/surbl_group.conf'); + } else { + exec('cp tpl/rspamd_override_surbl.conf.master /etc/rspamd/override.d/surbl_group.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_mx_check.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_mx_check.conf.master /etc/rspamd/local.d/mx_check.conf'); + } else { + exec('cp tpl/rspamd_mx_check.conf.master /etc/rspamd/local.d/mx_check.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_redis.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_redis.conf.master /etc/rspamd/local.d/redis.conf'); + } else { + exec('cp tpl/rspamd_redis.conf.master /etc/rspamd/local.d/redis.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_milter_headers.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_milter_headers.conf.master /etc/rspamd/local.d/milter_headers.conf'); + } else { + exec('cp tpl/rspamd_milter_headers.conf.master /etc/rspamd/local.d/milter_headers.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_options.inc.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_options.inc.master /etc/rspamd/local.d/options.inc'); + } else { + exec('cp tpl/rspamd_options.inc.master /etc/rspamd/local.d/options.inc'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural.conf.master /etc/rspamd/local.d/neural.conf'); + } else { + exec('cp tpl/rspamd_neural.conf.master /etc/rspamd/local.d/neural.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural_group.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural_group.conf.master /etc/rspamd/local.d/neural_group.conf'); + } else { + exec('cp tpl/rspamd_neural_group.conf.master /etc/rspamd/local.d/neural_group.conf'); + } + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_dkim_signing.conf.master'); + $tpl->setVar('dkim_path', $mail_config['dkim_path']); + wf('/etc/rspamd/local.d/dkim_signing.conf', $tpl->grab()); + + exec('chmod a+r /etc/rspamd/local.d/* /etc/rspamd/override.d/*'); + + $command = 'usermod -a -G amavis _rspamd'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + if(strpos(rf('/etc/rspamd/rspamd.conf'), '.include "$LOCAL_CONFDIR/local.d/users.conf"') === false){ + af('/etc/rspamd/rspamd.conf', '.include "$LOCAL_CONFDIR/local.d/users.conf"'); + } + + if(!isset($mail_config['rspamd_password']) || !$mail_config['rspamd_password']) { + $mail_config['rspamd_password'] = str_shuffle(bin2hex(openssl_random_pseudo_bytes(12))); + + $server_ini_array['mail']['rspamd_password'] = $mail_config['rspamd_password']; + } + + $server_ini_array['mail']['rspamd_available'] = 'y'; + $server_ini_string = array_to_ini($server_ini_array); + if($this->dbmaster != $this->db) { + $this->dbmaster->query('UPDATE `server` SET `config` = ? WHERE `server_id` = ?', $server_ini_string, $conf['server_id']); + } + $this->db->query('UPDATE `server` SET `config` = ? WHERE `server_id` = ?', $server_ini_string, $conf['server_id']); + unset($server_ini_array); + unset($server_ini_string); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_worker-controller.inc.master'); + $rspamd_password = $mail_config['rspamd_password']; + $crypted_password = trim(exec('rspamadm pw -p ' . escapeshellarg($rspamd_password))); + if($crypted_password) { + $rspamd_password = $crypted_password; + } + $tpl->setVar('rspamd_password', $rspamd_password); + wf('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); + chmod('/etc/rspamd/local.d/worker-controller.inc', 0644); + } + public function configure_spamassassin() { global $conf; @@ -1557,14 +1959,14 @@ class installer_base { } - + //** writes bind configuration files public function process_bind_file($configfile, $target='/', $absolute=false) { global $conf; if ($absolute) $full_file_name = $target.$configfile; else $full_file_name = $conf['ispconfig_install_dir'].$target.$configfile; - + //* Backup exiting file if(is_file($full_file_name)) { copy($full_file_name, $config_dir.$configfile.'~'); @@ -1596,7 +1998,7 @@ class installer_base { chown($content, $conf['bind']['bind_user']); chgrp($content, $conf['bind']['bind_group']); chmod($content, 02770); - + //* Install scripts for dnssec implementation $this->process_bind_file('named.conf.options', '/etc/bind/', true); //TODO replace hardcoded path } @@ -1716,12 +2118,12 @@ class installer_base { if(is_file('/etc/apache2/ports.conf')) { // add a line "Listen 443" to ports conf if line does not exist replaceLine('/etc/apache2/ports.conf', 'Listen 443', 'Listen 443', 1); - + // Comment out the namevirtualhost lines, as they were added by ispconfig in ispconfig.conf file again replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:80', '# NameVirtualHost *:80', 1); replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:443', '# NameVirtualHost *:443', 1); } - + if(is_file('/etc/apache2/mods-available/fcgid.conf')) { // add or modify the parameters for fcgid.conf replaceLine('/etc/apache2/mods-available/fcgid.conf','MaxRequestLen','MaxRequestLen 15728640',1); @@ -1736,7 +2138,7 @@ class installer_base { } } } - + if(is_file('/etc/apache2/apache2.conf')) { if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/', 1) == false && hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/', 1) == false) { if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 1) == true) { @@ -1753,16 +2155,16 @@ class installer_base { $tpl = new tpl('apache_ispconfig.conf.master'); $tpl->setVar('apache_version',getapacheversion()); - + if($this->is_update == true) { $tpl->setVar('logging',get_logging_state()); } else { $tpl->setVar('logging','yes'); } - + $records = $this->db->queryAllRecords("SELECT * FROM ?? WHERE server_id = ? AND virtualhost = 'y'", $conf['mysql']['master_database'] . '.server_ip', $conf['server_id']); $ip_addresses = array(); - + if(is_array($records) && count($records) > 0) { foreach($records as $rec) { if($rec['ip_type'] == 'IPv6') { @@ -1781,9 +2183,9 @@ class installer_base { } } } - + if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); - + wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab()); unset($tpl); @@ -1843,7 +2245,7 @@ class installer_base { //* add a sshusers group $command = 'groupadd sshusers'; if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + // add anonymized log option to nginxx.conf file $nginx_conf_file = $conf['nginx']['config_dir'].'/nginx.conf'; if(is_file($nginx_conf_file)) { @@ -1853,7 +2255,7 @@ class installer_base { replaceLine($nginx_conf_file, 'http {', "http {\n\n".file_get_contents('tpl/nginx_anonlog.master'), 0, 0); } } - + } public function configure_fail2ban() { @@ -2013,7 +2415,7 @@ class installer_base { $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'':'ServerName '.$conf['web']['apps_vhost_servername']; - + //* Get the apps vhost port if($this->is_update == true) { $conf['web']['apps_vhost_port'] = get_apps_vhost_port_number(); @@ -2033,6 +2435,9 @@ class installer_base { $tpl->setVar('logging','yes'); } + if($conf['rspamd']['installed'] == true) { + $tpl->setVar('use_rspamd', 'yes'); + } // comment out the listen directive if port is 80 or 443 if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { @@ -2056,11 +2461,12 @@ class installer_base { $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true); + $this->set_immutable($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', false); //copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); wf($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', $content); exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps'); - + $this->set_immutable($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', true); } } if($conf['nginx']['installed'] == true){ @@ -2101,6 +2507,12 @@ class installer_base { $apps_vhost_ip = $conf['web']['apps_vhost_ip'].':'; } + if($conf['rspamd']['installed'] == true) { + $content = str_replace('{use_rspamd}', '', $content); + } else { + $content = str_replace('{use_rspamd}', '# ', $content); + } + $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); @@ -2120,6 +2532,7 @@ class installer_base { || file_exists('/var/run/php/php7.1-fpm.sock') || file_exists('/var/run/php/php7.2-fpm.sock') || file_exists('/var/run/php/php7.3-fpm.sock') + || file_exists('/var/run/php/php7.4-fpm.sock') ){ $use_tcp = '#'; $use_socket = ''; @@ -2129,15 +2542,17 @@ class installer_base { } $content = str_replace('{use_tcp}', $use_tcp, $content); $content = str_replace('{use_socket}', $use_socket, $content); - + // SSL in apps vhost is off by default. Might change later. $content = str_replace('{ssl_on}', '', $content); $content = str_replace('{ssl_comment}', '#', $content); - + // Fix socket path on PHP 7 systems if(file_exists('/var/run/php/php7.0-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.0-fpm.sock', $content); if(file_exists('/var/run/php/php7.1-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.1-fpm.sock', $content); if(file_exists('/var/run/php/php7.2-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.2-fpm.sock', $content); + if(file_exists('/var/run/php/php7.3-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.3-fpm.sock', $content); + if(file_exists('/var/run/php/php7.4-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.4-fpm.sock', $content); wf($vhost_conf_dir.'/apps.vhost', $content); @@ -2183,7 +2598,7 @@ class installer_base { exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); rename($ssl_key_file, $ssl_key_file.'.secure'); rename($ssl_key_file.'.insecure', $ssl_key_file); - + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); } @@ -2213,31 +2628,20 @@ class installer_base { //* copy the ISPConfig server part $command = 'cp -rf ../server '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make a backup of the security settings if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); - + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Apply changed security_settings.ini values to new security_settings.ini file - if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { - $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); - $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); - if(is_array($security_settings_new) && is_array($security_settings_old)) { - foreach($security_settings_new as $section => $sval) { - if(is_array($sval)) { - foreach($sval as $key => $val) { - if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { - $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; - } - } - } - } - file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); - } + + $configfile = 'security_settings.ini'; + if(is_file($install_dir.'/security/'.$configfile)) { + copy($install_dir.'/security/'.$configfile, $install_dir.'/security/'.$configfile.'~'); } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + wf($install_dir.'/security/'.$configfile, $content); //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 @@ -2399,15 +2803,15 @@ class installer_base { //* Chmod the files and directories in the acme dir $command = 'chmod -R 755 '.$install_dir.'/interface/acme'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security files to the root user and group $command = 'chown -R root:root '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* chown the security directory and security_settings.ini to root:ispconfig $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -2421,7 +2825,7 @@ class installer_base { caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security/nginx_directives.blacklist'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - + //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); @@ -2472,7 +2876,7 @@ class installer_base { exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); } - + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing @@ -2530,7 +2934,7 @@ class installer_base { } else { $tpl->setVar('ssl_bundle_comment','#'); } - + $tpl->setVar('apache_version',getapacheversion()); wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab()); @@ -2547,10 +2951,12 @@ class installer_base { $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true); + $this->set_immutable('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', false); wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content); exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); @symlink($install_dir.'/interface/web', '/var/www/ispconfig'); exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); + $this->set_immutable('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', true); //} } @@ -2669,16 +3075,16 @@ class installer_base { //* Remove Domain module as its functions are available in the client module now if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); - + //* Disable rkhunter run and update in debian cronjob as ispconfig is running and updating rkhunter if(is_file('/etc/default/rkhunter')) { replaceLine('/etc/default/rkhunter', 'CRON_DAILY_RUN="yes"', 'CRON_DAILY_RUN="no"', 1, 0); replaceLine('/etc/default/rkhunter', 'CRON_DB_UPDATE="yes"', 'CRON_DB_UPDATE="no"', 1, 0); } - + // Add symlink for patch tool if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - + // Change mode of a few files from amavisd if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); @@ -2772,12 +3178,12 @@ class installer_base { chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); } - + public function create_mount_script(){ global $app, $conf; $mount_script = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'; $mount_command = ''; - + if(is_file($mount_script)) return; if(is_file('/etc/rc.local')){ $rc_local = file('/etc/rc.local'); @@ -2798,25 +3204,25 @@ class installer_base { } } } - + // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases public function cleanup_ispconfig() { global $app,$conf; - + // Remove directories recursively if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); if(is_dir('/usr/local/ispconfig/interface/web/themes/default-304')) exec('rm -rf /usr/local/ispconfig/interface/web/themes/default-304'); - + // Remove files if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); - + // Change mode of a few files from amavisd if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400); - + } public function getinitcommand($servicename, $action, $init_script_directory = ''){ @@ -2888,6 +3294,9 @@ class installer_base { * @return bool */ protected function write_config_file($tConf, $tContents) { + + $args = func_get_args(); + // Backup config file before writing new contents and stat file if ( is_file($tConf) ) { $stat = exec('stat -c \'%a %U %G\' '.escapeshellarg($tConf), $output, $res); @@ -2901,10 +3310,9 @@ class installer_base { } wf($tConf, $tContents); // write file - if (func_num_args() >= 4) // override rights and/or ownership { - $args = func_get_args(); + $output = array_slice($args, 2); switch (sizeof($output)) { diff --git a/install/lib/mysql.lib.php b/install/lib/mysql.lib.php index 2528100cc51c8fc0bd096d1ef28a168a4cf42fec..c24a454d040e0d5bb6b4d8b613da99a9aae04158 100644 --- a/install/lib/mysql.lib.php +++ b/install/lib/mysql.lib.php @@ -192,6 +192,8 @@ class db } private function _query($sQuery = '') { + + $aArgs = func_get_args(); $this->do_connect(); if ($sQuery == '') { @@ -227,7 +229,6 @@ class db } } while($ok == false); - $aArgs = func_get_args(); $sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs); $this->_iQueryId = mysqli_query($this->_iConnId, $sQuery); @@ -283,10 +284,17 @@ class db * @return array result row or NULL if none found */ public function queryOneRecord($sQuery = '') { - if(!preg_match('/limit \d+\s*,\s*\d+$/i', $sQuery)) $sQuery .= ' LIMIT 0,1'; - + $aArgs = func_get_args(); - $oResult = call_user_func_array(array(&$this, 'query'), $aArgs); + if(!empty($aArgs)) { + $sQuery = array_shift($aArgs); + if($sQuery && !preg_match('/limit \d+(\s*,\s*\d+)?$/i', $sQuery)) { + $sQuery .= ' LIMIT 0,1'; + } + array_unshift($aArgs, $sQuery); + } + + $oResult = call_user_func_array([&$this, 'query'], $aArgs); if(!$oResult) return null; $aReturn = $oResult->get(); @@ -956,7 +964,7 @@ class fakedb_result { if(!is_array($this->aLimitedData)) return $aItem; - if(list($vKey, $aItem) = each($this->aLimitedData)) { + foreach($this->aLimitedData as $vKey => $aItem) { if(!$aItem) $aItem = null; } return $aItem; diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 3406b760b0565049562acbfb06200e05ec7f8cc8..4dcb31cff128ddcc5c6f3bd81a4526de13eb5253 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -103,7 +103,7 @@ function checkDbHealth() { $notok = array(); echo "Checking ISPConfig database .. "; - exec("mysqlcheck -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." -r ".escapeshellarg($conf["mysql"]["database"]), $result); + exec("mysqlcheck -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." --auto-repair ".escapeshellarg($conf["mysql"]["database"]), $result); for( $i=0; $i<sizeof($result);$i++) { if ( substr($result[$i], -2) != "OK" ) { $notok[] = $result[$i]; @@ -335,6 +335,9 @@ function updateDbAndIni() { $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; + // do not switch to rspamd automatically! + // $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavisd'; + $tpl_ini_array['mail']['rspamd_available'] = @($conf['rspamd']['installed']) ? 'y' : 'n'; $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; diff --git a/install/patches/upd_0088.php b/install/patches/upd_0088.php new file mode 100644 index 0000000000000000000000000000000000000000..47a10f6080436ea840b1096bbe8d9722ba99d79e --- /dev/null +++ b/install/patches/upd_0088.php @@ -0,0 +1,47 @@ +<?php + +if(!defined('INSTALLER_RUN')) die('Patch update file access violation.'); + +/* + Example installer patch update class. the classname must match + the php and the sql patch update filename. The php patches are + only executed when a corresponding sql patch exists. +*/ + +class upd_0088 extends installer_patch_update { + + public function onAfterSQL() { + global $inst; + + // delete all the files that were deleted on previous updates + $delete = array( + 'interface/web/mail/templates/spamfilter_taglevel_edit.htm', + 'interface/web/mail/templates/spamfilter_quarantine_edit.htm', + 'interface/web/mail/templates/spamfilter_other_edit.htm', + ); + + $curpath = dirname(dirname(realpath(dirname(__FILE__)))); + + $c = 0; + $del_all = false; + foreach($delete as $file) { + if(strpos($file, '..') !== false) continue; // security! + + if($del_all == false) { + $answer = $inst->simple_query('Delete obsolete file ' . $file . '?', array('y', 'n', 'a', 'all', 'none'), 'y'); + if($answer == 'n') continue; + elseif($answer == 'a' || $answer == 'all') $del_all = true; + elseif($answer == 'none') break; + } + if(@is_file('/usr/local/ispconfig/' . $file) && !@is_file($curpath . '/' . $file)) { + // be sure this is not a file contained in installation! + @unlink('/usr/local/ispconfig/' . $file); + ilog('Deleted obsolete file /usr/local/ispconfig/' . $file); + $c++; + } + } + ilog($c . 'obsolete files deleted.'); + } +} + +?> diff --git a/install/sql/README.txt b/install/sql/README.txt index fe15ce5403747dd82bd02da4c6989a7a247e1ac0..d1294363c136df10d617f315bc8e5984695dbf4e 100644 --- a/install/sql/README.txt +++ b/install/sql/README.txt @@ -9,18 +9,24 @@ then follow these steps: 1) Add the field or table in the ispconfig3.sql file. This file contains the complete database dump which is used when ISPConfig gets installed. -2) Create a new file in the "incremental" subfolder wich contains the alter - table, or if it is a complete new table then the add table, statement(s) in - MySQL syntax which is/are required to modify the current ispconfig database - during update. The naming scheme of the sql patch update files is - upd_0001.sql, upd_0002.sql, upd_0003.sql etc. Ensure that the number that - you choose for the new file is a +1 increment of the number of the last - existing file and that the number is formatted with 4 digits. +2) Edit the file "incremental/upd_dev_collection.sql" which contains the SQL + statements (alter table, add table, update, etc.) in MySQL syntax which + are required to modify the current ispconfig database during update. + + The upd_dev_collection.sql file contains all db schema modifications + for changes made since the last ISPConfig release. If SQL statements + are already present in the file when you make your additions, add yours + to the end of the file, and do not remove any existing statements. + + When a new ISPConfig update is released, the contents of + upd_dev_collections.sql will move to an sql patch file, using the naming + scheme upd_0001.sql, upd_0002.sql, upd_0003.sql etc. - A patch file may contain one or more alter table statements. Every patch file - gets executed once in the database, so do not modify older (already released) + A patch file may contain one or more SQL modification statements. Every patch + file gets executed once in the database, so do not modify older (already released) patch files, they will not get executed again if the update was already run - once on a system. + once on a system, and will result in missing updates on any system where they + have not run yet. After a patch has been executed, the dbversion field in the server table gets increeased to the version number of the last installed patch. diff --git a/install/sql/incremental/upd_0002.sql b/install/sql/incremental/upd_0002.sql index e71e11182641408728d78c38a27114ae0e794905..7802dfa160665ab536a22734754d39bb2646b9b0 100644 --- a/install/sql/incremental/upd_0002.sql +++ b/install/sql/incremental/upd_0002.sql @@ -5,4 +5,4 @@ CREATE TABLE IF NOT EXISTS `sys_session` ( `session_data` longtext, PRIMARY KEY (`session_id`), KEY `last_updated` (`last_updated`) -) ENGINE=MyISAM; \ No newline at end of file +); \ No newline at end of file diff --git a/install/sql/incremental/upd_0004.sql b/install/sql/incremental/upd_0004.sql index 3bba2461a6c6aacff17bddeb3a02fe4aa1f0c75c..6153fc7732807e1b98bd06b35f47ee2a39099bc3 100644 --- a/install/sql/incremental/upd_0004.sql +++ b/install/sql/incremental/upd_0004.sql @@ -11,7 +11,7 @@ CREATE TABLE `help_faq_sections` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; +) AUTO_INCREMENT=1; INSERT INTO `help_faq_sections` VALUES (1,'General',0,NULL,NULL,NULL,NULL,NULL); @@ -27,7 +27,7 @@ CREATE TABLE `help_faq` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; +) AUTO_INCREMENT=1; INSERT INTO `help_faq` VALUES (1,1,0,'I\'d like to know ...','Yes, of course.',1,1,'riud','riud','r'); diff --git a/install/sql/incremental/upd_0007.sql b/install/sql/incremental/upd_0007.sql index cea38132291576f418117da7517f31147f106b8d..0cdf99e2bcb92a29603d5e50bbaa18e60fe156ed 100644 --- a/install/sql/incremental/upd_0007.sql +++ b/install/sql/incremental/upd_0007.sql @@ -14,6 +14,6 @@ CREATE TABLE IF NOT EXISTS `mail_mailinglist` ( `email` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`mailinglist_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; +) AUTO_INCREMENT=1; DROP TABLE `mail_mailman_domain`; \ No newline at end of file diff --git a/install/sql/incremental/upd_0009.sql b/install/sql/incremental/upd_0009.sql index 5be069c735bdfc2730be651087cb5b0549dbab90..43262d65b9063a5d3c5bc197cbb11fad1219a226 100644 --- a/install/sql/incremental/upd_0009.sql +++ b/install/sql/incremental/upd_0009.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `proxy_reverse` ( `rewrite_url_dst` varchar(100) NOT NULL, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`rewrite_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `firewall_filter` ( @@ -38,7 +38,7 @@ CREATE TABLE IF NOT EXISTS `firewall_filter` ( `active` enum('n','y') NOT NULL default 'y', `client_id` int(11) NOT NULL, PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `firewall_forward` ( `firewall_id` int(11) unsigned NOT NULL auto_increment, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `firewall_forward` ( `active` enum('n','y') NOT NULL default 'y', `client_id` int(11) NOT NULL, PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; alter table `server` add column `proxy_server` tinyint(1) not null after `vserver_server`; alter table `server` add column `firewall_server` tinyint(1) not null after `proxy_server`; diff --git a/install/sql/incremental/upd_0012.sql b/install/sql/incremental/upd_0012.sql index 2ba957f8d9c9d9e39bb5f8dde0c0d82fff5c110b..1fd355160c84eb0fcd77a0f1bcf76d3c5521ba1f 100644 --- a/install/sql/incremental/upd_0012.sql +++ b/install/sql/incremental/upd_0012.sql @@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ip` ( `vm_id` int(11) NOT NULL DEFAULT '0', `reserved` varchar(255) NOT NULL DEFAULT 'n', PRIMARY KEY (`ip_address_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ip` @@ -40,7 +40,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ostemplate` ( `active` varchar(255) NOT NULL DEFAULT 'y', `description` text, PRIMARY KEY (`ostemplate_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ostemplate` @@ -100,7 +100,7 @@ CREATE TABLE IF NOT EXISTS `openvz_template` ( `create_dns` varchar(1) NOT NULL DEFAULT 'n', `capability` varchar(255) DEFAULT NULL, PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_template` @@ -119,7 +119,7 @@ CREATE TABLE IF NOT EXISTS `openvz_traffic` ( `traffic_date` date NOT NULL, `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`veid`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -- Dumping data for table `openvz_traffic` @@ -164,7 +164,7 @@ CREATE TABLE IF NOT EXISTS `openvz_vm` ( `capability` text NOT NULL, `config` mediumtext NOT NULL, PRIMARY KEY (`vm_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_vm` diff --git a/install/sql/incremental/upd_0013.sql b/install/sql/incremental/upd_0013.sql index 9b43d336163a51873bb05c1e5a80cfa7b5e93197..bc38241bb4fc5880e7416816509e8b6cba3d993f 100644 --- a/install/sql/incremental/upd_0013.sql +++ b/install/sql/incremental/upd_0013.sql @@ -16,5 +16,5 @@ CREATE TABLE `iptables` ( `target` varchar(10) DEFAULT NULL COMMENT 'ACCEPT DROP REJECT LOG', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`iptables_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; diff --git a/install/sql/incremental/upd_0019.sql b/install/sql/incremental/upd_0019.sql index 60c464cea71cbd8cb9b2eb70bccb991a2602291d..1bd990c5d01dfbc8b94863d84cdd501b613fd05e 100644 --- a/install/sql/incremental/upd_0019.sql +++ b/install/sql/incremental/upd_0019.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `help_faq` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `help_faq_sections` ( `hfs_id` int(11) NOT NULL AUTO_INCREMENT, @@ -22,7 +22,7 @@ CREATE TABLE IF NOT EXISTS `help_faq_sections` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `web_folder` ( `web_folder_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -36,7 +36,7 @@ CREATE TABLE IF NOT EXISTS `web_folder` ( `path` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `web_folder_user` ( `web_folder_user_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -50,7 +50,7 @@ CREATE TABLE IF NOT EXISTS `web_folder_user` ( `password` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; DROP TABLE `mail_greylist`; DROP TABLE `firewall_filter`; diff --git a/install/sql/incremental/upd_0028.sql b/install/sql/incremental/upd_0028.sql index 0020cdd9ac04235b4e5965560563be251e1cdd8d..67023de06730777b7566de54d1d541b58a6659c3 100644 --- a/install/sql/incremental/upd_0028.sql +++ b/install/sql/incremental/upd_0028.sql @@ -9,4 +9,4 @@ CREATE TABLE `web_backup` ( `tstamp` int(10) unsigned NOT NULL, `filename` varchar(255) NOT NULL, PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/incremental/upd_0031.sql b/install/sql/incremental/upd_0031.sql index 0fb25a5d407b0bd7d3bc43bfdfd0ac80c0119db4..7ebdef95c05bc48214ab8a19546b14bc8f8e7bd2 100644 --- a/install/sql/incremental/upd_0031.sql +++ b/install/sql/incremental/upd_0031.sql @@ -14,5 +14,5 @@ CREATE TABLE `server_php` ( `php_fpm_ini_dir` varchar(255) DEFAULT NULL, `php_fpm_pool_dir` varchar(255) DEFAULT NULL, PRIMARY KEY (`server_php_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `web_domain` ADD `fastcgi_php_version` VARCHAR( 255 ) NULL DEFAULT NULL; \ No newline at end of file diff --git a/install/sql/incremental/upd_0033.sql b/install/sql/incremental/upd_0033.sql index d4b3c0d6a229e3308336da9cd0b9655e92c25e46..5d2b93cdba847a52b21ca36235c273a27740c47b 100644 --- a/install/sql/incremental/upd_0033.sql +++ b/install/sql/incremental/upd_0033.sql @@ -10,4 +10,4 @@ CREATE TABLE IF NOT EXISTS `client_circle` ( `description` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`circle_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; \ No newline at end of file +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; \ No newline at end of file diff --git a/install/sql/incremental/upd_0034.sql b/install/sql/incremental/upd_0034.sql index 8ae098c011b910d190db6dc74d8df7a5f616abf2..85e49f70bb6e0999852fbebb9cb6a53b17ef8be6 100644 --- a/install/sql/incremental/upd_0034.sql +++ b/install/sql/incremental/upd_0034.sql @@ -16,7 +16,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances` ( `package_id` int(4) NOT NULL, `instance_status` int(4) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances_settings` ( `name` varchar(255) NOT NULL, `value` text NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS `aps_packages` ( `package_url` TEXT NOT NULL, `package_status` int(1) NOT NULL DEFAULT '2', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -63,7 +63,7 @@ CREATE TABLE IF NOT EXISTS `aps_settings` ( `value` text NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- diff --git a/install/sql/incremental/upd_0035.sql b/install/sql/incremental/upd_0035.sql index 5f8031c514a4adfeb4ab25bc374f9fa6a1e63113..1a453e5875660e90a432a39cb8a8bcb6dc764f0d 100644 --- a/install/sql/incremental/upd_0035.sql +++ b/install/sql/incremental/upd_0035.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `sys_theme` ( `username` varchar(64) NOT NULL, `logo_url` varchar(255) NOT NULL, PRIMARY KEY (`var_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- diff --git a/install/sql/incremental/upd_0039.sql b/install/sql/incremental/upd_0039.sql index af8a5afc5af10f7a2f6a7f81ca5936fc7376e655..b090db4f741ba657cfd3a3978488f062b4d504e1 100644 --- a/install/sql/incremental/upd_0039.sql +++ b/install/sql/incremental/upd_0039.sql @@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS `web_database_user` ( `database_user` varchar(64) DEFAULT NULL, `database_password` varchar(64) DEFAULT NULL, PRIMARY KEY (`database_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- diff --git a/install/sql/incremental/upd_0040.sql b/install/sql/incremental/upd_0040.sql index b39e8f11ffb6cb0a542cc115f5d4494e17573b64..f572a6e73befcb9d2be7acd994744e3e6233bd3c 100644 --- a/install/sql/incremental/upd_0040.sql +++ b/install/sql/incremental/upd_0040.sql @@ -21,4 +21,4 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` ( `snippet` mediumtext, `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`directive_snippets_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/incremental/upd_0050.sql b/install/sql/incremental/upd_0050.sql index bc31868a7006584e77465fd1de51167db04a82dc..0ce01b9b4579158de88943b9aa7a88258b3ce578 100644 --- a/install/sql/incremental/upd_0050.sql +++ b/install/sql/incremental/upd_0050.sql @@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS `dns_slave` ( PRIMARY KEY (`id`), KEY `origin` (`origin`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `dns_slave` DROP INDEX `origin`; ALTER TABLE `dns_slave` ADD CONSTRAINT `slave` UNIQUE (`origin`,`server_id`); \ No newline at end of file diff --git a/install/sql/incremental/upd_0056.sql b/install/sql/incremental/upd_0056.sql index c7cb5285cec66cbe19fa2c507668a09cf4aebb6d..d9e1e022896afd63f76b297788dbd2219feb2214 100644 --- a/install/sql/incremental/upd_0056.sql +++ b/install/sql/incremental/upd_0056.sql @@ -4,7 +4,7 @@ CREATE TABLE `client_template_assigned` ( `client_template_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`assigned_template_id`), KEY `client_id` (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `client` ADD `gender` enum('','m','f') NOT NULL DEFAULT '' AFTER `company_id`, ADD `locked` enum('n','y') NOT NULL DEFAULT 'n' AFTER `created_at`, diff --git a/install/sql/incremental/upd_0057.sql b/install/sql/incremental/upd_0057.sql index b8452fe6e9fddcbc9df31450f3791cad9367449f..01b2c58de018d19a9585a581f2fb024254de42e0 100644 --- a/install/sql/incremental/upd_0057.sql +++ b/install/sql/incremental/upd_0057.sql @@ -4,4 +4,4 @@ CREATE TABLE IF NOT EXISTS `sys_cron` ( `next_run` datetime NULL DEFAULT NULL, `running` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; diff --git a/install/sql/incremental/upd_0062.sql b/install/sql/incremental/upd_0062.sql index cee5ff93cc3b28873f8e7ac83b9f68de8314cd58..039a0bd005f5321f1e55cb61fa10fb9898f56af8 100644 --- a/install/sql/incremental/upd_0062.sql +++ b/install/sql/incremental/upd_0062.sql @@ -8,7 +8,7 @@ CREATE TABLE `mail_backup` ( `filename` varchar(255) NOT NULL, `filesize` VARCHAR(10) NOT NULL, PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `mail_user` ADD `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none'; ALTER TABLE `mail_user` ADD `backup_copies` INT NOT NULL DEFAULT '1'; diff --git a/install/sql/incremental/upd_0063.sql b/install/sql/incremental/upd_0063.sql index fc2534ac2435aef808c2b32115f746cbf1a01191..08e2f04f93c51e8d304ebf7d48e1ce402961ba98 100644 --- a/install/sql/incremental/upd_0063.sql +++ b/install/sql/incremental/upd_0063.sql @@ -12,7 +12,7 @@ CREATE TABLE `client_message_template` ( `subject` varchar(255) DEFAULT NULL, `message` text, PRIMARY KEY (`client_message_template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `spamfilter_policy` ADD `policyd_quota_in` int(11) NOT NULL DEFAULT '-1', ADD `policyd_quota_in_period` int(11) NOT NULL DEFAULT '24', ADD `policyd_quota_out` int(11) NOT NULL DEFAULT '-1', diff --git a/install/sql/incremental/upd_0075.sql b/install/sql/incremental/upd_0075.sql index acca4e6ac801dbe3442119a9658d83c506762fc9..ce1bacf2d13dcca908b855aeda08cb6bf6d57f96 100644 --- a/install/sql/incremental/upd_0075.sql +++ b/install/sql/incremental/upd_0075.sql @@ -77,4 +77,4 @@ CREATE TABLE IF NOT EXISTS `dns_slave` ( PRIMARY KEY (`id`), UNIQUE KEY `slave` (`origin`,`server_id`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/incremental/upd_0081.sql b/install/sql/incremental/upd_0081.sql index 69236784c7455db0be4671022c74cac942c22405..d24ce19ce941d32a39be18ad74dce80233511e9e 100644 --- a/install/sql/incremental/upd_0081.sql +++ b/install/sql/incremental/upd_0081.sql @@ -126,7 +126,7 @@ CREATE TABLE `xmpp_domain` ( PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Table structure for table `xmpp_user` @@ -146,7 +146,7 @@ CREATE TABLE `xmpp_user` ( PRIMARY KEY (`xmppuser_id`), KEY `server_id` (`server_id`,`jid`), KEY `jid_active` (`jid`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -176,7 +176,7 @@ CREATE TABLE `server_ip_map` ( `destination_ip` varchar(35) DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`server_ip_map_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `web_domain` ADD COLUMN `rewrite_to_https` ENUM('y','n') NOT NULL DEFAULT 'n' AFTER `seo_redirect`; @@ -199,7 +199,7 @@ CREATE TABLE `ftp_traffic` ( `in_bytes` bigint(32) unsigned NOT NULL, `out_bytes` bigint(32) unsigned NOT NULL, UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `mail_forwarding` ADD COLUMN `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `active`; UPDATE `mail_forwarding` SET `allow_send_as` = 'y' WHERE `type` = 'alias'; diff --git a/install/sql/incremental/upd_0085.sql b/install/sql/incremental/upd_0085.sql index 1291262ee77de2453ed053c87680c468fbada34c..755143fc4f841d6d9fb2b812e331df3120b3dc33 100644 --- a/install/sql/incremental/upd_0085.sql +++ b/install/sql/incremental/upd_0085.sql @@ -1,3 +1,5 @@ +-- folder_directive_snippets was missing in incremental, inserted for fixing older installations +ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`; ALTER TABLE `web_domain` CHANGE `folder_directive_snippets` `folder_directive_snippets` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL; ALTER TABLE `web_domain` ADD `log_retention` INT NOT NULL DEFAULT '30' AFTER `https_port`; ALTER TABLE `web_domain` CHANGE `stats_type` `stats_type` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'awstats'; diff --git a/install/sql/incremental/upd_0087.sql b/install/sql/incremental/upd_0087.sql new file mode 100644 index 0000000000000000000000000000000000000000..4d392cc441ee746075277d78dddb08946262ab6f --- /dev/null +++ b/install/sql/incremental/upd_0087.sql @@ -0,0 +1,85 @@ +ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`; +ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; +ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; +ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; + +CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `ca_name` varchar(255) NOT NULL DEFAULT '', + `ca_issue` varchar(255) NOT NULL DEFAULT '', + `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', + `ca_iodef` text NOT NULL, + `ca_critical` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY (`ca_issue`) +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); + +UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; +UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; + +ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; +ALTER TABLE `dns_rr` CHANGE `data` `data` TEXT NOT NULL; +INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'certSIGN', 'certsign.ro', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CFCA', 'cfca.com.cn', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Chunghwa Telecom', 'cht.com.tw', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Comodo', 'comodoca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'D-TRUST', 'd-trust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DigiCert', 'digicert.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DocuSign', 'docusign.fr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); + +ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; +ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; +ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; +ALTER TABLE `firewall` CHANGE `tcp_port` `tcp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; +ALTER TABLE `firewall` CHANGE `udp_port` `udp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; \ No newline at end of file diff --git a/install/sql/incremental/upd_0088.sql b/install/sql/incremental/upd_0088.sql new file mode 100644 index 0000000000000000000000000000000000000000..5c062603f97be1e5ed81c36855a9b6e095a44af1 --- /dev/null +++ b/install/sql/incremental/upd_0088.sql @@ -0,0 +1,39 @@ +-- rspamd +ALTER TABLE `spamfilter_policy` ADD `rspamd_greylisting` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `policyd_greylist`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_greylisting_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_greylisting`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_greylisting_level`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_method` ENUM('add_header','rewrite_subject') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'rewrite_subject' AFTER `rspamd_spam_tag_level`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_kill_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_tag_method`; + +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 4; +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 5; +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 6; + +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '4.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '6.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '2.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '7.00' WHERE id = 7; + +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '6.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '8.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '4.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '10.00' WHERE id = 7; + +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '10.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '12.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '8.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '20.00' WHERE id = 7; +-- end of rspamd +ALTER TABLE `client` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `ftp_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `shell_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `sys_user` CHANGE COLUMN `passwort` `passwort` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `webdav_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; + +DELETE FROM sys_cron WHERE `next_run` IS NOT NULL AND `next_run` >= DATE_ADD(`last_run`, INTERVAL 30 DAY) AND `next_run` BETWEEN '2020-01-01' AND '2020-01-02'; \ No newline at end of file diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index b9fb91d46c853e1d17710ffbd6220cf8faa083cd..1deb6050284d384ec4fdb69a6f65acee8fa4cdd8 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,83 +1,67 @@ -ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`; -ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; -ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; -ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; - -CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `active` enum('N','Y') NOT NULL DEFAULT 'N', - `ca_name` varchar(255) NOT NULL DEFAULT '', - `ca_issue` varchar(255) NOT NULL DEFAULT '', - `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', - `ca_iodef` text NOT NULL, - `ca_critical` tinyint(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY (`ca_issue`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - -ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); - -UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; -DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; -DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; -UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; - -ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; -ALTER TABLE `dns_rr` CHANGE `data` `data` TEXT NOT NULL; -INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'certSIGN', 'certsign.ro', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CFCA', 'cfca.com.cn', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Chunghwa Telecom', 'cht.com.tw', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Comodo', 'comodoca.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'D-TRUST', 'd-trust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DigiCert', 'digicert.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DocuSign', 'docusign.fr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); - -ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; -ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NOT NULL DEFAULT ''; -ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; \ No newline at end of file +-- add new proxy_protocol column +ALTER TABLE `web_domain` + ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`; + +-- backup format +ALTER TABLE `web_domain` ADD `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`; +ALTER TABLE `web_domain` ADD `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`; +-- end of backup format + +-- backup encryption +ALTER TABLE `web_domain` ADD `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `backup_format_db`; +ALTER TABLE `web_domain` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `backup_encrypt`; +ALTER TABLE `web_backup` ADD `backup_format` VARCHAR( 64 ) NOT NULL DEFAULT '' AFTER `backup_mode`; +ALTER TABLE `web_backup` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `filesize`; +-- end of backup encryption + +-- rename Comodo to "Sectigo / Comodo CA" +UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo / Comodo CA' WHERE `ca_issue` = 'comodoca.com'; + +-- default php-fpm to ondemand mode +ALTER TABLE `web_domain` ALTER pm SET DEFAULT 'ondemand'; + +ALTER TABLE `mail_user` + ADD `purge_trash_days` INT NOT NULL DEFAULT '0' AFTER `move_junk`, + ADD `purge_junk_days` INT NOT NULL DEFAULT '0' AFTER `purge_trash_days`; + +-- doveadm should be enabled for all mailboxes +UPDATE `mail_user` set `disabledoveadm` = 'n'; + +-- add disablequota-status for quota-status policy daemon +ALTER TABLE `mail_user` ADD `disablequota-status` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `disabledoveadm`; + +-- add disableindexer-worker for solr search +ALTER TABLE `mail_user` ADD `disableindexer-worker` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `disablequota-status`; + +-- add SSHFP and DNAME record +ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CNAME','DNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','SSHFP','TXT','TLSA','DNSKEY') NULL DEFAULT NULL AFTER `name`; + +-- change cc and sender_cc column type +ALTER TABLE `mail_user` CHANGE `cc` `cc` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; + +-- remove SPDY option +ALTER TABLE `web_domain` DROP COLUMN `enable_spdy`; + +-- was missing in incremental, inserted for fixing older installations +ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`; + +ALTER TABLE `web_domain` ADD `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 0; + +UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fastcgi_binary, ':', p.php_fastcgi_ini_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE 1; + +UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fpm_init_script, ':', p.php_fpm_ini_dir, ':', p.php_fpm_pool_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE 1; + +-- we have to decide whether to delete the column or leave it there for investigating not-converted entries +-- ALTER TABLE `web_domain` DROP COLUMN `fastcgi_php_version`; + +ALTER TABLE `web_domain` CHANGE `apache_directives` `apache_directives` mediumtext NULL DEFAULT NULL; +ALTER TABLE `web_domain` CHANGE `nginx_directives` `nginx_directives` mediumtext NULL DEFAULT NULL; + +-- add move to junk before/after option, default to after +ALTER TABLE `mail_user` MODIFY `move_junk` enum('y','a','n') NOT NULL DEFAULT 'y'; + +-- Change id_rsa column to TEXT format +ALTER TABLE `client` CHANGE `id_rsa` `id_rsa` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; + +ALTER TABLE `directive_snippets` ADD `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n' ; + diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index f06a49b7ea3d16410397a72062164434800ba3c0..edd4dd50491cf6dfe21898e8d7c6027b04e86541 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -26,24 +26,24 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ --- Includes --- +-- Includes +-- -- iso_country_list.sql --- +-- -- This will create and then populate a MySQL table with a list of the names and -- ISO 3166 codes for countries in existence as of the date below. --- +-- -- For updates to this file, see http://27.org/isocountrylist/ -- For more about ISO 3166, see http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html --- +-- -- Created by getisocountrylist.pl on Sun Nov 2 14:59:20 2003. -- Wm. Rhodes <iso_country_list@27.org> --- +-- --- +-- -- ISPConfig 3 -- DB-Version: 3.0.0.9 --- +-- SET FOREIGN_KEY_CHECKS = 0; @@ -69,7 +69,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances` ( `package_id` int(4) NOT NULL DEFAULT '0', `instance_status` int(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -84,7 +84,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances_settings` ( `name` varchar(255) NOT NULL DEFAULT '', `value` text, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -102,7 +102,7 @@ CREATE TABLE IF NOT EXISTS `aps_packages` ( `package_url` TEXT, `package_status` int(1) NOT NULL DEFAULT '2', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -116,7 +116,7 @@ CREATE TABLE IF NOT EXISTS `aps_settings` ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -128,7 +128,7 @@ CREATE TABLE `attempts_login` ( `ip` varchar(39) NOT NULL DEFAULT '', `times` int(11) DEFAULT NULL, `login_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -243,7 +243,7 @@ CREATE TABLE `client` ( `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', `parent_client_id` int(11) unsigned NOT NULL DEFAULT '0', `username` varchar(64) DEFAULT NULL, - `password` varchar(64) DEFAULT NULL, + `password` varchar(200) DEFAULT NULL, `language` char(2) NOT NULL DEFAULT 'en', `usertheme` varchar(32) NOT NULL DEFAULT 'default', `template_master` int(11) unsigned NOT NULL DEFAULT '0', @@ -253,7 +253,7 @@ CREATE TABLE `client` ( `canceled` enum('n','y') NOT NULL DEFAULT 'n', `can_use_api` enum('n','y') NOT NULL DEFAULT 'n', `tmp_data` mediumblob, - `id_rsa` varchar(2000) NOT NULL DEFAULT '', + `id_rsa` text NOT NULL DEFAULT '', `ssh_rsa` varchar(600) NOT NULL DEFAULT '', `customer_no_template` varchar(255) DEFAULT 'R[CLIENTID]C[CUSTOMER_NO]', `customer_no_start` int(11) NOT NULL DEFAULT '1', @@ -264,7 +264,7 @@ CREATE TABLE `client` ( `risk_score` int(10) unsigned NOT NULL DEFAULT '0', `activation_code` varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -284,13 +284,13 @@ CREATE TABLE `client_circle` ( `description` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`circle_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `client_template` --- +-- CREATE TABLE `client_template` ( `template_id` int(11) unsigned NOT NULL auto_increment, @@ -369,13 +369,13 @@ CREATE TABLE `client_template` ( `limit_openvz_vm` int(11) NOT NULL DEFAULT '0', `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `client_template_assigned` --- +-- CREATE TABLE `client_template_assigned` ( `assigned_template_id` bigint(20) NOT NULL auto_increment, @@ -383,7 +383,7 @@ CREATE TABLE `client_template_assigned` ( `client_template_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`assigned_template_id`), KEY `client_id` (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- @@ -402,7 +402,7 @@ CREATE TABLE `client_message_template` ( `subject` varchar(255) DEFAULT NULL, `message` text, PRIMARY KEY (`client_message_template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Dumping data for table `invoice_message_template` @@ -422,13 +422,13 @@ CREATE TABLE `country` ( `numcode` smallint(6) DEFAULT NULL, `eu` enum('n','y') NOT NULL DEFAULT 'n', PRIMARY KEY (`iso`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `cron` --- +-- CREATE TABLE `cron` ( `id` int(11) unsigned NOT NULL auto_increment, `sys_userid` int(11) unsigned NOT NULL default '0', @@ -448,13 +448,13 @@ CREATE TABLE `cron` ( `log` enum('n','y') NOT NULL default 'n', `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `directive_snippets` --- +-- CREATE TABLE IF NOT EXISTS `directive_snippets` ( `directive_snippets_id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -470,14 +470,15 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` ( `required_php_snippets` varchar(255) NOT NULL DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'y', `master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0', + `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n', PRIMARY KEY (`directive_snippets_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `dns_rr` --- +-- CREATE TABLE `dns_rr` ( `id` int(11) unsigned NOT NULL auto_increment, `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', @@ -488,7 +489,7 @@ CREATE TABLE `dns_rr` ( `server_id` int(11) NOT NULL default '1', `zone` int(11) unsigned NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL DEFAULT '', - `type` enum('A','AAAA','ALIAS','CNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL, + `type` enum('A','AAAA','ALIAS','CNAME','DNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','SSHFP','TXT','TLSA','DNSKEY') default NULL, `data` TEXT NOT NULL, `aux` int(11) unsigned NOT NULL default '0', `ttl` int(11) unsigned NOT NULL default '3600', @@ -497,7 +498,7 @@ CREATE TABLE `dns_rr` ( `serial` int(10) unsigned default NULL, PRIMARY KEY (`id`), KEY `rr` (`zone`,`type`,`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -516,17 +517,17 @@ CREATE TABLE `dns_slave` ( `origin` varchar(255) NOT NULL DEFAULT '', `ns` varchar(255) NOT NULL DEFAULT '', `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` TEXT NOT NULL DEFAULT '', + `xfer` TEXT NULL, PRIMARY KEY (`id`), UNIQUE KEY `slave` (`origin`,`server_id`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `dns_ssl_ca` --- +-- CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -543,7 +544,7 @@ CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( `ca_critical` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY (`ca_issue`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); @@ -561,7 +562,7 @@ INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `s (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'certSIGN', 'certsign.ro', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CFCA', 'cfca.com.cn', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Chunghwa Telecom', 'cht.com.tw', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Comodo', 'comodoca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sectigo / Comodo CA', 'comodoca.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'D-TRUST', 'd-trust.net', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DigiCert', 'digicert.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DocuSign', 'docusign.fr', 'Y', '', 0), @@ -598,9 +599,9 @@ INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `s -- -------------------------------------------------------- --- +-- -- Table structure for table `dns_soa` --- +-- CREATE TABLE `dns_soa` ( `id` int(10) unsigned NOT NULL auto_increment, @@ -620,8 +621,8 @@ CREATE TABLE `dns_soa` ( `minimum` int(11) unsigned NOT NULL default '3600', `ttl` int(11) unsigned NOT NULL default '3600', `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` TEXT NOT NULL DEFAULT '', - `also_notify` TEXT NOT NULL DEFAULT '', + `xfer` TEXT NULL, + `also_notify` TEXT NULL, `update_acl` varchar(255) default NULL, `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N', @@ -630,13 +631,13 @@ CREATE TABLE `dns_soa` ( PRIMARY KEY (`id`), UNIQUE KEY `origin` (`origin`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `dns_template` --- +-- CREATE TABLE `dns_template` ( `template_id` int(11) unsigned NOT NULL auto_increment, @@ -650,7 +651,7 @@ CREATE TABLE `dns_template` ( `template` text, `visible` enum('N','Y') NOT NULL default 'Y', PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Table structure for table `domain` @@ -666,13 +667,13 @@ CREATE TABLE `domain` ( `domain` varchar(255) NOT NULL default '', PRIMARY KEY (`domain_id`), UNIQUE KEY `domain` (`domain`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `firewall` --- +-- CREATE TABLE `firewall` ( `firewall_id` int(11) unsigned NOT NULL auto_increment, @@ -682,17 +683,17 @@ CREATE TABLE `firewall` ( `sys_perm_group` varchar(5) default NULL, `sys_perm_other` varchar(5) default NULL, `server_id` int(11) unsigned NOT NULL default '0', - `tcp_port` varchar(255) default NULL, - `udp_port` varchar(255) default NULL, + `tcp_port` text, + `udp_port` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `ftp_user` --- +-- CREATE TABLE `ftp_user` ( `ftp_user_id` int(11) unsigned NOT NULL auto_increment, @@ -705,7 +706,7 @@ CREATE TABLE `ftp_user` ( `parent_domain_id` int(11) unsigned NOT NULL default '0', `username` varchar(64) default NULL, `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) default NULL, + `password` varchar(200) default NULL, `quota_size` bigint(20) NOT NULL default '-1', `active` enum('n','y') NOT NULL default 'y', `uid` varchar(64) default NULL, @@ -724,13 +725,13 @@ CREATE TABLE `ftp_user` ( KEY `server_id` (`server_id`), KEY `username` (`username`), KEY `quota_files` (`quota_files`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `ftp_traffic` --- +-- CREATE TABLE `ftp_traffic` ( `hostname` varchar(255) NOT NULL, @@ -738,7 +739,7 @@ CREATE TABLE `ftp_traffic` ( `in_bytes` bigint(32) unsigned NOT NULL, `out_bytes` bigint(32) unsigned NOT NULL, UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -758,7 +759,7 @@ CREATE TABLE `help_faq` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -776,7 +777,7 @@ CREATE TABLE `help_faq_sections` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -797,13 +798,13 @@ CREATE TABLE `iptables` ( `target` varchar(10) DEFAULT NULL COMMENT 'ACCEPT DROP REJECT LOG', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`iptables_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_access` --- +-- CREATE TABLE `mail_access` ( `access_id` int(11) unsigned NOT NULL auto_increment, @@ -819,7 +820,7 @@ CREATE TABLE `mail_access` ( `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`access_id`), KEY `server_id` (`server_id`,`source`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -837,13 +838,13 @@ CREATE TABLE `mail_backup` ( `filename` varchar(255) NOT NULL DEFAULT '', `filesize` VARCHAR(20) NOT NULL DEFAULT '', PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_content_filter` --- +-- CREATE TABLE `mail_content_filter` ( `content_filter_id` int(11) unsigned NOT NULL auto_increment, @@ -859,13 +860,13 @@ CREATE TABLE `mail_content_filter` ( `action` varchar(255) default NULL, `active` varchar(255) NOT NULL default 'y', PRIMARY KEY (`content_filter_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_domain` --- +-- CREATE TABLE `mail_domain` ( `domain_id` int(11) unsigned NOT NULL auto_increment, @@ -884,13 +885,13 @@ CREATE TABLE `mail_domain` ( PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_forwarding` --- +-- CREATE TABLE `mail_forwarding` ( `forwarding_id` int(11) unsigned NOT NULL auto_increment, @@ -909,13 +910,13 @@ CREATE TABLE `mail_forwarding` ( PRIMARY KEY (`forwarding_id`), KEY `server_id` (`server_id`,`source`), KEY `type` (`type`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_get` --- +-- CREATE TABLE `mail_get` ( `mailget_id` int(11) unsigned NOT NULL auto_increment, @@ -934,7 +935,7 @@ CREATE TABLE `mail_get` ( `destination` varchar(255) default NULL, `active` varchar(255) NOT NULL default 'y', PRIMARY KEY (`mailget_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -955,7 +956,7 @@ CREATE TABLE `mail_mailinglist` ( `email` varchar(255) NOT NULL DEFAULT '', `password` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`mailinglist_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -975,13 +976,13 @@ CREATE TABLE IF NOT EXISTS `mail_relay_recipient` ( `access` varchar(255) NOT NULL DEFAULT 'OK', `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`relay_recipient_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_traffic` --- +-- CREATE TABLE `mail_traffic` ( `traffic_id` int(11) unsigned NOT NULL auto_increment, @@ -990,13 +991,13 @@ CREATE TABLE `mail_traffic` ( `traffic` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`traffic_id`), KEY `mailuser_id` (`mailuser_id`,`month`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_transport` --- +-- CREATE TABLE `mail_transport` ( `transport_id` int(11) unsigned NOT NULL auto_increment, @@ -1013,13 +1014,13 @@ CREATE TABLE `mail_transport` ( PRIMARY KEY (`transport_id`), KEY `server_id` (`server_id`,`transport`), KEY `server_id_2` (`server_id`,`domain`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_user` --- +-- CREATE TABLE `mail_user` ( `mailuser_id` int(11) unsigned NOT NULL auto_increment, @@ -1038,7 +1039,7 @@ CREATE TABLE `mail_user` ( `maildir` varchar(255) NOT NULL default '', `maildir_format` varchar(255) NOT NULL default 'maildir', `quota` bigint(20) NOT NULL default '-1', - `cc` varchar(255) NOT NULL default '', + `cc` text NOT NULL default '', `sender_cc` varchar(255) NOT NULL default '', `homedir` varchar(255) NOT NULL default '', `autoresponder` enum('n','y') NOT NULL default 'n', @@ -1046,7 +1047,9 @@ CREATE TABLE `mail_user` ( `autoresponder_end_date` datetime NULL default NULL, `autoresponder_subject` varchar(255) NOT NULL default 'Out of office reply', `autoresponder_text` mediumtext NULL, - `move_junk` enum('n','y') NOT NULL default 'n', + `move_junk` enum('y','a','n') NOT NULL default 'y', + `purge_trash_days` INT NOT NULL DEFAULT '0', + `purge_junk_days` INT NOT NULL DEFAULT '0', `custom_mailfilter` mediumtext, `postfix` enum('n','y') NOT NULL default 'y', `greylisting` enum('n','y' ) NOT NULL DEFAULT 'n', @@ -1060,19 +1063,21 @@ CREATE TABLE `mail_user` ( `disablelda` enum('n','y') NOT NULL default 'n', `disablelmtp` enum('n','y') NOT NULL default 'n', `disabledoveadm` enum('n','y') NOT NULL default 'n', + `disablequota-status` enum('n','y') NOT NULL default 'n', + `disableindexer-worker` enum('n','y') NOT NULL default 'n', `last_quota_notification` date NULL default NULL, `backup_interval` VARCHAR( 255 ) NOT NULL default 'none', `backup_copies` INT NOT NULL DEFAULT '1', PRIMARY KEY (`mailuser_id`), KEY `server_id` (`server_id`,`email`), KEY `email_access` (`email`,`access`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `mail_user_filter` --- +-- CREATE TABLE `mail_user_filter` ( `filter_id` int(11) unsigned NOT NULL auto_increment, @@ -1090,7 +1095,7 @@ CREATE TABLE `mail_user_filter` ( `target` varchar(255) default NULL, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`filter_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1105,7 +1110,7 @@ CREATE TABLE `monitor_data` ( `data` mediumtext, `state` enum('no_state','unknown','ok','info','warning','critical','error') NOT NULL DEFAULT 'unknown', PRIMARY KEY (`server_id`,`type`,`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -1126,7 +1131,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ip` ( `reserved` varchar(255) NOT NULL DEFAULT 'n', `additional` varchar(255) NOT NULL DEFAULT 'n', PRIMARY KEY (`ip_address_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ip` @@ -1152,7 +1157,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ostemplate` ( `active` varchar(255) NOT NULL DEFAULT 'y', `description` text, PRIMARY KEY (`ostemplate_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ostemplate` @@ -1215,7 +1220,7 @@ CREATE TABLE IF NOT EXISTS `openvz_template` ( `iptables` varchar(255) DEFAULT NULL, `custom` text, PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_template` @@ -1234,7 +1239,7 @@ CREATE TABLE IF NOT EXISTS `openvz_traffic` ( `traffic_date` date NULL DEFAULT NULL, `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', UNIQUE KEY (`veid`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -- Dumping data for table `openvz_traffic` @@ -1283,7 +1288,7 @@ CREATE TABLE IF NOT EXISTS `openvz_vm` ( `config` mediumtext, `custom` text, PRIMARY KEY (`vm_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_vm` @@ -1291,9 +1296,9 @@ CREATE TABLE IF NOT EXISTS `openvz_vm` ( -- -------------------------------------------------------- --- +-- -- Table structure for table `remote_session` --- +-- CREATE TABLE `remote_session` ( `remote_session` varchar(64) NOT NULL DEFAULT '', @@ -1302,13 +1307,13 @@ CREATE TABLE `remote_session` ( `client_login` tinyint(1) unsigned NOT NULL default '0', `tstamp` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`remote_session`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `remote_user` --- +-- CREATE TABLE `remote_user` ( `remote_userid` int(11) unsigned NOT NULL auto_increment, @@ -1323,13 +1328,13 @@ CREATE TABLE `remote_user` ( `remote_ips` TEXT, `remote_functions` text, PRIMARY KEY (`remote_userid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `server` --- +-- CREATE TABLE `server` ( `server_id` int(11) unsigned NOT NULL auto_increment, @@ -1354,13 +1359,13 @@ CREATE TABLE `server` ( `dbversion` int(11) unsigned NOT NULL default '1', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `server_ip` --- +-- CREATE TABLE `server_ip` ( `server_ip_id` int(11) unsigned NOT NULL auto_increment, @@ -1376,13 +1381,13 @@ CREATE TABLE `server_ip` ( `virtualhost` enum('n','y') NOT NULL default 'y', `virtualhost_port` varchar(255) default '80,443', PRIMARY KEY (`server_ip_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `server_ip_map` --- +-- CREATE TABLE `server_ip_map` ( `server_ip_map_id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -1396,7 +1401,7 @@ CREATE TABLE `server_ip_map` ( `destination_ip` varchar(35) DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`server_ip_map_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1421,7 +1426,7 @@ CREATE TABLE `server_php` ( `php_fpm_pool_dir` varchar(255) DEFAULT NULL, `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`server_php_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1440,7 +1445,7 @@ CREATE TABLE `shell_user` ( `parent_domain_id` int(11) unsigned NOT NULL default '0', `username` varchar(64) default NULL, `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) default NULL, + `password` varchar(200) default NULL, `quota_size` bigint(20) NOT NULL default '-1', `active` enum('n','y') NOT NULL default 'y', `puser` varchar(255) default NULL, @@ -1450,13 +1455,13 @@ CREATE TABLE `shell_user` ( `chroot` varchar(255) NOT NULL DEFAULT '', `ssh_rsa` text, PRIMARY KEY (`shell_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `software_package` --- +-- CREATE TABLE `software_package` ( `package_id` int(11) unsigned NOT NULL auto_increment, @@ -1473,13 +1478,13 @@ CREATE TABLE `software_package` ( `package_config` text, PRIMARY KEY (`package_id`), UNIQUE KEY `package_name` (`package_name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `software_repo` --- +-- CREATE TABLE `software_repo` ( `software_repo_id` int(11) unsigned NOT NULL auto_increment, @@ -1494,13 +1499,13 @@ CREATE TABLE `software_repo` ( `repo_password` varchar(64) default NULL, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`software_repo_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `software_update` --- +-- CREATE TABLE `software_update` ( `software_update_id` int(11) unsigned NOT NULL auto_increment, @@ -1516,13 +1521,13 @@ CREATE TABLE `software_update` ( `v4` tinyint(1) NOT NULL default '0', `type` enum('full','update') NOT NULL default 'full', PRIMARY KEY (`software_update_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `software_update_inst` --- +-- CREATE TABLE `software_update_inst` ( `software_update_inst_id` int(11) unsigned NOT NULL auto_increment, @@ -1532,13 +1537,13 @@ CREATE TABLE `software_update_inst` ( `status` enum('none','installing','installed','deleting','deleted','failed') NOT NULL default 'none', PRIMARY KEY (`software_update_inst_id`), UNIQUE KEY `software_update_id` (`software_update_id`,`package_name`,`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `spamfilter_policy` --- +-- CREATE TABLE `spamfilter_policy` ( `id` int(11) unsigned NOT NULL auto_increment, @@ -1589,14 +1594,19 @@ CREATE TABLE `spamfilter_policy` ( `policyd_quota_out` int(11) NOT NULL DEFAULT '-1', `policyd_quota_out_period` int(11) NOT NULL DEFAULT '24', `policyd_greylist` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'N', + `rspamd_greylisting` enum('n','y') NOT NULL DEFAULT 'n', + `rspamd_spam_greylisting_level` decimal(5,2) DEFAULT NULL, + `rspamd_spam_tag_level` decimal(5,2) DEFAULT NULL, + `rspamd_spam_tag_method` enum('add_header','rewrite_subject') NOT NULL DEFAULT 'rewrite_subject', + `rspamd_spam_kill_level` decimal(5,2) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `spamfilter_users` --- +-- CREATE TABLE `spamfilter_users` ( `id` int(11) unsigned NOT NULL auto_increment, @@ -1613,13 +1623,13 @@ CREATE TABLE `spamfilter_users` ( `local` varchar(1) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `spamfilter_wblist` --- +-- CREATE TABLE `spamfilter_wblist` ( `wblist_id` int(11) unsigned NOT NULL auto_increment, @@ -1635,13 +1645,13 @@ CREATE TABLE `spamfilter_wblist` ( `priority` tinyint(3) unsigned NOT NULL DEFAULT '0', `active` enum('y','n') NOT NULL default 'y', PRIMARY KEY (`wblist_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `support_message` --- +-- CREATE TABLE `support_message` ( `support_message_id` int(11) unsigned NOT NULL auto_increment, @@ -1656,7 +1666,7 @@ CREATE TABLE `support_message` ( `message` text default NULL, `tstamp` int(11) NOT NULL default '0', PRIMARY KEY (`support_message_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1669,7 +1679,7 @@ CREATE TABLE `sys_config` ( `name` varchar(64) NOT NULL DEFAULT '', `value` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`group`, `name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -1684,7 +1694,7 @@ CREATE TABLE IF NOT EXISTS `sys_cron` ( `next_run` datetime NULL DEFAULT NULL, `running` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -1707,13 +1717,13 @@ CREATE TABLE `sys_datalog` ( `session_id` varchar(64) NOT NULL DEFAULT '', PRIMARY KEY (`datalog_id`), KEY `server_id` (`server_id`,`status`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `sys_dbsync` --- +-- CREATE TABLE `sys_dbsync` ( `id` int(11) unsigned NOT NULL auto_increment, @@ -1731,13 +1741,13 @@ CREATE TABLE `sys_dbsync` ( `last_datalog_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `last_datalog_id` (`last_datalog_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `sys_filesync` --- +-- CREATE TABLE `sys_filesync` ( `id` int(11) unsigned NOT NULL auto_increment, @@ -1751,13 +1761,13 @@ CREATE TABLE `sys_filesync` ( `wput_options` varchar(255) NOT NULL default '--timestamping --reupload --dont-continue', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `sys_group` --- +-- CREATE TABLE `sys_group` ( `groupid` int(11) unsigned NOT NULL auto_increment, @@ -1765,13 +1775,13 @@ CREATE TABLE `sys_group` ( `description` text, `client_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`groupid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `sys_ini` --- +-- CREATE TABLE `sys_ini` ( `sysini_id` int(11) unsigned NOT NULL auto_increment, @@ -1779,13 +1789,13 @@ CREATE TABLE `sys_ini` ( `default_logo` text NOT NULL, `custom_logo` text NOT NULL, PRIMARY KEY (`sysini_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `sys_log` --- +-- CREATE TABLE `sys_log` ( `syslog_id` int(11) unsigned NOT NULL auto_increment, @@ -1795,7 +1805,7 @@ CREATE TABLE `sys_log` ( `tstamp` int(11) unsigned NOT NULL DEFAULT '0', `message` text, PRIMARY KEY (`syslog_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1813,7 +1823,7 @@ CREATE TABLE `sys_remoteaction` ( `response` mediumtext, PRIMARY KEY (`action_id`), KEY `server_id` (`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1829,7 +1839,7 @@ CREATE TABLE `sys_session` ( `session_data` longtext, PRIMARY KEY (`session_id`), KEY `last_updated` (`last_updated`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -1848,13 +1858,13 @@ CREATE TABLE IF NOT EXISTS `sys_theme` ( `username` varchar(64) NOT NULL DEFAULT '', `logo_url` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`var_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `sys_user` --- +-- CREATE TABLE `sys_user` ( `userid` int(11) unsigned NOT NULL auto_increment, @@ -1864,7 +1874,7 @@ CREATE TABLE `sys_user` ( `sys_perm_group` varchar(5) NOT NULL default 'riud', `sys_perm_other` varchar(5) NOT NULL default '', `username` varchar(64) NOT NULL default '', - `passwort` varchar(64) NOT NULL default '', + `passwort` varchar(200) NOT NULL default '', `modules` varchar(255) NOT NULL default '', `startmodule` varchar(255) NOT NULL default '', `app_theme` varchar(32) NOT NULL default 'default', @@ -1880,7 +1890,7 @@ CREATE TABLE `sys_user` ( `lost_password_hash` VARCHAR(50) NOT NULL default '', `lost_password_reqtime` DATETIME NULL default NULL, PRIMARY KEY (`userid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1899,11 +1909,11 @@ CREATE TABLE `webdav_user` ( `parent_domain_id` int(11) unsigned NOT NULL DEFAULT '0', `username` varchar(64) DEFAULT NULL, `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) DEFAULT NULL, + `password` varchar(200) DEFAULT NULL, `active` enum('n','y') NOT NULL DEFAULT 'y', `dir` varchar(255) DEFAULT NULL, PRIMARY KEY (`webdav_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1917,11 +1927,13 @@ CREATE TABLE `web_backup` ( `parent_domain_id` int(10) unsigned NOT NULL DEFAULT '0', `backup_type` enum('web','mysql','mongodb') NOT NULL DEFAULT 'web', `backup_mode` varchar(64) NOT NULL DEFAULT '', + `backup_format` varchar(64) NOT NULL DEFAULT '', `tstamp` int(10) unsigned NOT NULL DEFAULT '0', `filename` varchar(255) NOT NULL DEFAULT '', `filesize` VARCHAR(20) NOT NULL DEFAULT '', + `backup_password` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1955,7 +1967,7 @@ CREATE TABLE `web_database` ( PRIMARY KEY (`database_id`), KEY `database_user_id` (`database_user_id`), KEY `database_ro_user_id` (`database_ro_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1976,13 +1988,13 @@ CREATE TABLE IF NOT EXISTS `web_database_user` ( `database_password` varchar(64) DEFAULT NULL, `database_password_mongo` varchar(32) DEFAULT NULL, PRIMARY KEY (`database_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- +-- -- Table structure for table `web_domain` --- +-- CREATE TABLE `web_domain` ( `domain_id` int(11) unsigned NOT NULL auto_increment, @@ -2035,11 +2047,11 @@ CREATE TABLE `web_domain` ( `stats_password` varchar(255) default NULL, `stats_type` varchar(255) default 'awstats', `allow_override` varchar(255) NOT NULL default 'All', - `apache_directives` mediumtext, - `nginx_directives` mediumtext, + `apache_directives` mediumtext NULL DEFAULT NULL, + `nginx_directives` mediumtext NULL DEFAULT NULL, `php_fpm_use_socket` ENUM('n','y') NOT NULL DEFAULT 'y', `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n', - `pm` enum('static','dynamic','ondemand') NOT NULL DEFAULT 'dynamic', + `pm` enum('static','dynamic','ondemand') NOT NULL DEFAULT 'ondemand', `pm_max_children` int(11) NOT NULL DEFAULT '10', `pm_start_servers` int(11) NOT NULL DEFAULT '2', `pm_min_spare_servers` int(11) NOT NULL DEFAULT '1', @@ -2050,12 +2062,15 @@ CREATE TABLE `web_domain` ( `custom_php_ini` mediumtext, `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none', `backup_copies` INT NOT NULL DEFAULT '1', + `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default', + `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip', + `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n', + `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '', `backup_excludes` mediumtext, `active` enum('n','y') NOT NULL default 'y', `traffic_quota_lock` enum('n','y') NOT NULL default 'n', `fastcgi_php_version` varchar(255) DEFAULT NULL, `proxy_directives` mediumtext, - `enable_spdy` ENUM('y','n') NULL DEFAULT 'n', `last_quota_notification` date NULL default NULL, `rewrite_rules` mediumtext, `added_date` date NULL DEFAULT NULL, @@ -2066,9 +2081,11 @@ CREATE TABLE `web_domain` ( `https_port` int(11) unsigned NOT NULL DEFAULT '443', `folder_directive_snippets` text, `log_retention` int(11) NOT NULL DEFAULT '10', + `proxy_protocol` enum('n','y') NOT NULL default 'n', + `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (`domain_id`), UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2088,7 +2105,7 @@ CREATE TABLE IF NOT EXISTS `web_folder` ( `path` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Dumping data for table `web_folder` @@ -2114,7 +2131,7 @@ CREATE TABLE IF NOT EXISTS `web_folder_user` ( `password` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Dumping data for table `web_folder_user` @@ -2131,7 +2148,7 @@ CREATE TABLE `web_traffic` ( `traffic_date` date NULL DEFAULT NULL, `traffic_bytes` bigint(32) unsigned NOT NULL default '0', UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -2190,7 +2207,7 @@ CREATE TABLE `xmpp_domain` ( PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2212,7 +2229,7 @@ CREATE TABLE `xmpp_user` ( PRIMARY KEY (`xmppuser_id`), KEY `server_id` (`server_id`,`jid`), KEY `jid_active` (`jid`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2480,81 +2497,81 @@ INSERT INTO `country` (`iso`, `name`, `printable_name`, `iso3`, `numcode`, `eu`) -- -------------------------------------------------------- --- +-- -- Dumping data for table `dns_template` --- +-- INSERT INTO `dns_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `fields`, `template`, `visible`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Default', 'DOMAIN,IP,NS1,NS2,EMAIL,DKIM,DNSSEC', '[ZONE]\norigin={DOMAIN}.\nns={NS1}.\nmbox={EMAIL}.\nrefresh=7200\nretry=540\nexpire=604800\nminimum=3600\nttl=3600\n\n[DNS_RECORDS]\nA|{DOMAIN}.|{IP}|0|3600\nA|www|{IP}|0|3600\nA|mail|{IP}|0|3600\nNS|{DOMAIN}.|{NS1}.|0|3600\nNS|{DOMAIN}.|{NS2}.|0|3600\nMX|{DOMAIN}.|mail.{DOMAIN}.|10|3600\nTXT|{DOMAIN}.|v=spf1 mx a ~all|0|3600', 'y'); -- -------------------------------------------------------- --- +-- -- Dumping data for table `help_faq` --- +-- INSERT INTO `help_faq` VALUES (1,1,0,'I would like to know ...','Yes, of course.',1,1,'riud','riud','r'); -- -------------------------------------------------------- --- +-- -- Dumping data for table `help_faq_sections` --- +-- INSERT INTO `help_faq_sections` VALUES (1,'General',0,NULL,NULL,NULL,NULL,NULL); -- -------------------------------------------------------- --- +-- -- Dumping data for table `software_repo` --- +-- INSERT INTO `software_repo` (`software_repo_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `repo_name`, `repo_url`, `repo_username`, `repo_password`, `active`) VALUES (1, 1, 1, 'riud', 'riud', '', 'ISPConfig Addons', 'http://repo.ispconfig.org/addons/', '', '', 'n'); -- -------------------------------------------------------- --- +-- -- Dumping data for table `spamfilter_policy` --- +-- -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, ''); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, '', 'n', 6.00, 8.00, 'rewrite_subject', 12.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 2.00, 4.00, 'rewrite_subject', 8.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 7.00, 10.00, 'rewrite_subject', 20.00); -- -------------------------------------------------------- --- +-- -- Dumping data for table `sys_group` --- +-- INSERT INTO `sys_group` (`groupid`, `name`, `description`, `client_id`) VALUES (1, 'admin', 'Administrators group', 0); -- -------------------------------------------------------- --- +-- -- Dumping data for table `sys_ini` --- +-- INSERT INTO `sys_ini` (`sysini_id`, `config`, `default_logo`, `custom_logo`) VALUES (1, '', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABBCAYAAACU5+uOAAAItUlEQVR42u1dCWwVVRStUJZCK6HsFNAgWpaCJkKICZKApKUFhURQpEnZF4EEUJZYEEpBIamgkQpUQBZRW7YCBqQsggsQEAgKLbIGCYsSCNqyQ8D76h18Hd/MvJk/n/bXc5KT+TNz79vPzNv+/2FhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAe++s0akTsRZxMnE6cGkKcxkwhPofaBPwWRzxxB/EO8UGI8xhxEGoV8EscY8qBKFRcgdoFAhXHC+VUHAbHo5aBQASyrZwL5DoxEjUNeBXI9XIuEMEE1DTgVSA3FA3qIDEtBLnTQiBDUNOAV4EUKhpURojmZQQEAjwKgSwK0bykWQgEU74ABAKBABAIBOIJffoNrkRsS0whDiMO5uNw4gBiSxvfGOJrbDtMOgr2JNa18HmZmETsopnGp4h9xdF0TcQRb8NEPkawTzv2qaWIoybnZYRUBoJD+difGAuBlCy0qsRM4mfERcTFfGygsBUF/xFxE/EQ8RixwIbi/j7il8R3iE8qwuxAXMJxuuFiTvNMYleb/E0gXiI+cOBaISTJrzLxcw2/+8Q5pjjfNNkM0RDILLadpbimw+bsc4DPkxRpuqkZ1orisoBAiguuhkUhPSvZRBA3u6gsK94g9jDFP9aHcAV3EKNNYX8i3RcNJ4M4nTiROJCYykIzbGZKvouk68vYbyS/cUbz+RrJZpzkO5Sv3eajaJhRDvUwg21nKK4VcF5WKPgFH6PZZw/7dJXC6S6lczunfbIQLpeDkZ+lJcoCAikuvChioaLBtfD4JHPiXSFKKexBPoa9Wwr3ael6skMZDGO7K3z+uOSb5OA7mu2KiOGmPH3ADVh8/sohnDS2S1NcG+uiO/kd+8RL146YRWzj359tb0Eg+gIpsHkjFNrQqiF3DZJABDtyuCP5/FuNRlHN8Ofz9nx+XLNR3jR1c4w8TSFGSmnr4FEgU7wKhI51jAeTpv+/ZQGBOAuEu1d/Ku6LV35t9rdigkUjHuMgkHPEecQsxdjjUx4zHbMI+10OdzqfZ2o0iiqSfzgPfMXnzZqN6iTbJ5jytMTU0E97FEhaAAJ5kc/PuJjQOCoIgegJpKbUl5b5vGaBT+A+vOgn5/JYIdFBIOs1wo1kIZl93+P70/h8oUZYFXkmKInPU9h3m2YeT8lvRilPyyWbi3xt4iMWSDc+P4lp3uAIRDxdryjui6dmuujXcr91IDcMmaJv31WISfTrLeJXCUT3yb1a4Ztmalyu61MaZG/XtD9tapRGnpZKNp2lNNZ3KZARAQgk3untBYEEPgbJ92FsIAax34v1AQ2B5Go2BlW60n0QyCC/BWISdJ5LgewWU8k86DdTzMyNh0BKVyAzfB5I93YQyBGeTlW9lQbwIle2Rdgzy7BAxJT6Hb6X6EIgTrznRSCiHli02cwcPor1pbkQiL5AKvOA+ZZPAtkfxFms3j4IZHAwBGJaRPxdjH00BSImJRqKOlEwjtjUo0Dm2pWla4HMzsyqQIxSMKI8C8RkL9YXuhDf5gqcw4NweaZJiGkh8UeLwi+Utkb4KZCrYszkVSDiQRDMN4hkf5DvZ2gKZJyLPJgFkmAjEDEF3EYSWzPeklO8Q8CLQGKJhQquK+eDdLFNZBJxFLEf8XUXFTbcYv2kRhAEIq+vGNO88zTTKVaRzxPrSSvPW11O8yZqCiROSnMsX0sP0ixWops1Hfbx/AaJIz5QcFc5n+ZVNcbxmoWtEsBNB4EU8Tgk32Gv1wneEybeWG1N8RoNbplmOo2neiyxE3/eoun7G9t31hGIqXuzl8/HB0kgxhvhD03/KoEIpIWFQPLK+UJhkWpgKLZP8IKhajNhJg8A7yt8/5K6QoFM8z5mc68Ph3VWM6wTbN+a+AR/vqThV13KYyMXAgmXps9FnK8GSSA17KaXFf7R3gUyd8H/TiBss9fngfQehzfMpkDLgxcS73J4k1y85WrxtTtOjZPuVZA2O55RhLfUId5XpI2UHwZDIHxtp7HtRrVL25SfhWy7z7VAMuYvipszd0FJcfxzHspdrMctGnGcZNPTZ4F0VszqyPSlPHm8JG9f2SDtgF3Nq/rnJZssyXeUdP0CN64c9l/FDfGyZNNNkaeVGmnMM+Vdtd19los8/2e7Ow/E70lxiG7pRmkn8AaeULlcoo4sBDLfKvL0nLUxablfX0hfmfuQ01avI65fUQYEkupRIJHcAMwbDWNNdmLgupV4zeMO3stcIZ1M4aYo4vZt0oO7Locd0ndGTEQofN+QxiZ22+y7W+RpgUb66vOU7232SZXupZqvaYT3Dfu8ZLrejtc47mvkJ9FoVEWKBmW7dyc7ZXD1Nb2TH3JVn5Tqa3r1repzY6/gwWeqhUCGO/XjWSTmjYYVLOzFoP0Z/qJTks033brxrtjmxCbGtK4ivEqKuH2fNuc0tDatIYgna4yGbz2eeTL8WhJbic2aDnmqqpm2KlLeK5vWn0pc0wirGvtUtBkzNdPKDzWe24oGdZX4CzGfWCD4U93GBQdqNSw4Uiny8K9h4buOhlU2scq+Q1G1i233k63hFwBPEfcS04l1FGJoynbH+fgz8ZKFQJLDAMDjk/psCPzw20XxE6mmdLd24d8KNQ14FciUEPl1xHvEhlK6W2j65aOWgUAEUpV4NEREstyDQNqjloFARVKL/xukrAvkGjGC09zGwfYKsQdqF/BTKMnEJcTtxC3EPAU3iic5cRkfjc/ZFvZuuZm4gXjOouG35LQ2Yfutkq/4pfpN/E9TDVCjQGkJqQExho+CjYlRPseRiQE3EIriaMZTw4K3mOJv23J8jme23RsEAMqqQJrb9PnnEbPEVpUAuJD4Mf/PoCqeONQCUJYFElGKf7ojpnqjUQtAWRdJaf1t2w8ofSAUBNKulATSEaUPhIpIRj9icbyFUgdCTSRTeR0i2HwfpQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBnG392D9QU+JXhxAAAAAElFTkSuQmCC', ''); -- -------------------------------------------------------- --- +-- -- Dumping data for table `sys_user` --- +-- INSERT INTO `sys_theme` (`var_id`, `tpl_name`, `username`, `logo_url`) VALUES (NULL, 'default', 'global', 'themes/default/images/header_logo.png'); INSERT INTO `sys_theme` (`var_id`, `tpl_name`, `username`, `logo_url`) VALUES (NULL, 'default-v2', 'global', 'themes/default-v2/images/header_logo.png'); -- -------------------------------------------------------- --- +-- -- Dumping data for table `sys_user` --- +-- INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `username`, `passwort`, `modules`, `startmodule`, `app_theme`, `typ`, `active`, `language`, `groups`, `default_group`, `client_id`) VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'dashboard,admin,client,mail,monitor,sites,dns,vm,tools,help', 'dashboard', 'default', 'admin', 1, 'en', '1,2', 1, 0); diff --git a/install/tpl/amavisd_user_config.master b/install/tpl/amavisd_user_config.master index 8663f07498f187fa1d25d501e73bff43f5964714..344ea9a152de0ab43982c83b18b6bb7e99525d6c 100644 --- a/install/tpl/amavisd_user_config.master +++ b/install/tpl/amavisd_user_config.master @@ -49,7 +49,7 @@ $final_spam_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; -# Default settings, we st this very high to not filter aut emails accidently +# Default settings, we set this very high to not filter out emails accidentally $sa_spam_subject_tag = '***SPAM*** '; $sa_tag_level_deflt = 20.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 60.0; # add 'spam detected' headers at that level @@ -83,7 +83,6 @@ $notify_method = 'smtp:127.0.0.1:*'; $interface_policy{'10026'} = 'ORIGINATING'; $policy_bank{'ORIGINATING'} = { originating => 1, - smtpd_discard_ehlo_keywords => ['8BITMIME'], }; # IP-Addresses for internal networks => load policy MYNETS diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master index ee1b693097a200505f42c7a7da3313b134d016b9..14f0f10da275e560cdeb51e3b10472dedf146dd7 100644 --- a/install/tpl/apache_apps.vhost.master +++ b/install/tpl/apache_apps.vhost.master @@ -10,15 +10,15 @@ <VirtualHost {tmpl_var name='apps_vhost_ip'}:{tmpl_var name='apps_vhost_port'}> ServerAdmin webmaster@localhost {tmpl_var name='apps_vhost_servername'} - + <FilesMatch "\.ph(p3?|tml)$"> SetHandler None </FilesMatch> - + <IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule> - + <IfModule mod_php5.c> DocumentRoot {tmpl_var name='apps_vhost_dir'} AddType application/x-httpd-php .php @@ -33,7 +33,7 @@ </tmpl_if> </Directory> </IfModule> - + <IfModule mod_php7.c> DocumentRoot {tmpl_var name='apps_vhost_dir'} AddType application/x-httpd-php .php @@ -48,7 +48,7 @@ </tmpl_if> </Directory> </IfModule> - + <IfModule mod_fcgid.c> DocumentRoot {tmpl_var name='apps_vhost_dir'} SuexecUserGroup ispapps ispapps @@ -68,6 +68,16 @@ </Directory> </IfModule> -</VirtualHost> +{tmpl_if name="use_rspamd"} + <Location /rspamd> + Order allow,deny + Allow from all + </Location> + RewriteEngine On + RewriteRule ^/rspamd$ /rspamd/ [R,L] + RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P] +{/tmpl_if} + +</VirtualHost> diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master index 84eec5c5540c9b2f3f4c4ef159417cc96ff55cfb..ff744741ff2a7f67953e70c3f4b0350f00fb2911 100644 --- a/install/tpl/apache_ispconfig.conf.master +++ b/install/tpl/apache_ispconfig.conf.master @@ -35,6 +35,10 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m </tmpl_if> </Directory> +<Directory /var/www> + Options -Indexes +</Directory> + <Directory /var/www/conf> AllowOverride None <tmpl_if name='apache_version' op='>' value='2.2' format='version'> diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master index 55135299f18b17a09c1ca86d2a80add3ac296595..f90876170bbd6da883fb5fc9dee83a6ffb9b9096 100644 --- a/install/tpl/apache_ispconfig.vhost.master +++ b/install/tpl/apache_ispconfig.vhost.master @@ -70,7 +70,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port"> # SSL Configuration <tmpl_var name="ssl_comment">SSLEngine On <tmpl_if name='apache_version' op='>=' value='2.3.16' format='version'> - <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 -TLSv1 -TLSv1.1 <tmpl_else> <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 </tmpl_if> @@ -78,7 +78,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port"> <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle - <tmpl_var name="ssl_comment">SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS + <tmpl_var name="ssl_comment">SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 <tmpl_var name="ssl_comment">SSLHonorCipherOrder On <tmpl_if name='apache_version' op='>=' value='2.4.3' format='version'> <tmpl_var name="ssl_comment">SSLCompression Off @@ -89,11 +89,13 @@ NameVirtualHost *:<tmpl_var name="vhost_port"> <IfModule mod_headers.c> # ISPConfig 3.1 currently requires unsafe-line for both scripts and styles, as well as unsafe-eval - Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'; upgrade-insecure-requests" + Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'" + <tmpl_var name="ssl_comment">Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'; upgrade-insecure-requests" Header set X-Content-Type-Options: nosniff Header set X-Frame-Options: SAMEORIGIN Header set X-XSS-Protection: "1; mode=block" - Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure" + Header always edit Set-Cookie (.*) "$1; HTTPOnly" + <tmpl_var name="ssl_comment">Header always edit Set-Cookie (.*) "$1; Secure" <IfVersion >= 2.4.7> Header setifempty Strict-Transport-Security "max-age=15768000" </IfVersion> diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index 02a7b2f65ccccde2db89cfcaac24e86307e88843..8cc70a598d3b0d834f77bd01ce64cd3ad30bd09c 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -45,7 +45,6 @@ if( !empty($_SERVER['DOCUMENT_ROOT']) ) { } //** Set a few php.ini values -if(get_magic_quotes_runtime()) set_magic_quotes_runtime(false); if(isset($app)) unset($app); if(isset($conf)) unset($conf); diff --git a/install/tpl/debian6_dovecot.conf.master b/install/tpl/debian6_dovecot.conf.master index 4286689cd448ef52004801a89570730b3ac36384..f1df2e241e855df746a3b4d7eea5498c8bdf6ba9 100644 --- a/install/tpl/debian6_dovecot.conf.master +++ b/install/tpl/debian6_dovecot.conf.master @@ -57,7 +57,14 @@ plugin { # the maildir quota does not need to be set. # You do not need: quota = maildir + # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 + sieve_max_redirects = 25 } diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index db6e0bfbe2ea115d12cb8760095e7da73ed937c6..1080eeb5599706a7c1361def9500c621e6808480 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -6,8 +6,14 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_dh = </etc/dovecot/dh.pem +ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +ssl_prefer_server_ciphers = no +auth_verbose = yes mail_max_userip_connections = 100 +mail_plugins = quota passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql @@ -21,7 +27,14 @@ userdb { } plugin { quota = dict:user::file:/var/vmail/%d/%n/.quotausage + + # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 sieve_max_redirects = 25 } service auth { @@ -42,11 +55,12 @@ service lmtp { group = postfix mode = 0600 user = postfix - # For higher volume sites, it may be desirable to increase the number of active listener processes. + # For higher volume sites, it may be desirable to increase the number of active listener processes. # A range of 5 to 20 is probably good for most sites # process_min_avail = 5 } } +lmtp_rcpt_check_quota = yes service imap-login { client_limit = 1000 process_limit = 512 @@ -66,3 +80,53 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } + +service quota-status { + executable = quota-status -p postfix + unix_listener /var/spool/postfix/private/quota-status { + group = postfix + mode = 0660 + user = postfix + } + client_limit = 1 +} +plugin { + quota_status_success = DUNNO + quota_status_nouser = DUNNO + quota_status_overquota = "552 5.2.2 Mailbox is full" +} + +imap_capability=+SEPCIAL-USE XLIST +namespace inbox { + inbox = yes + separator = . + mailbox Drafts { + special_use = \Drafts + } + mailbox Junk { + special_use = \Junk + } + mailbox Sent { + special_use = \Sent + } + mailbox "Sent Messages" { + special_use = \Sent + } + mailbox Trash { + special_use = \Trash + } +} diff --git a/install/tpl/debian_dovecot.conf.master b/install/tpl/debian_dovecot.conf.master index 8d6022502f042fee8fd22d0d2c3ec92da559d64c..4109498cea9214adfd036449df92f876efa1a778 100644 --- a/install/tpl/debian_dovecot.conf.master +++ b/install/tpl/debian_dovecot.conf.master @@ -682,7 +682,7 @@ protocol managesieve { # the sieve storage directory. This must match the SIEVE setting used by # deliver (refer to http://wiki.dovecot.org/LDA/Sieve#location for more # info). Variable substitution with % is recognized. - sieve=~/.dovecot.sieve + sieve=~/.sieve # This specifies the path to the directory where the uploaded scripts must # be stored. In terms of '%' variable substitution it is identical to @@ -1144,4 +1144,10 @@ plugin { # they're moved to a 3rd namespace. The mails won't be counted in quota, # and they're not deleted automatically (use a cronjob or something). #lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/ + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 + sieve_max_redirects = 25 } diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master index 8fdaf44eeb7bc156eb27c43dc113dd182bb21616..60a1263e48e3d3e218c8ab9cf7f957a1ffca6fa7 100644 --- a/install/tpl/debian_dovecot2.conf.master +++ b/install/tpl/debian_dovecot2.conf.master @@ -7,8 +7,12 @@ mail_privileged_group = vmail postmaster_address = postmaster@example.com ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +ssl_prefer_server_ciphers = no +auth_verbose = yes mail_max_userip_connections = 100 +mail_plugins = $mail_plugins quota passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql @@ -22,7 +26,14 @@ userdb { } plugin { quota = dict:user::file:/var/vmail/%d/%n/.quotausage + + # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 sieve_max_redirects = 25 } service auth { @@ -45,6 +56,7 @@ service lmtp { user = postfix } } +lmtp_rcpt_check_quota = yes service imap-login { client_limit = 1000 process_limit = 512 @@ -64,4 +76,33 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } -mail_plugins = $mail_plugins quota + + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } + +service quota-status { + executable = quota-status -p postfix + unix_listener /var/spool/postfix/private/quota-status { + group = postfix + mode = 0660 + user = postfix + } + client_limit = 1 +} +plugin { + quota_status_success = DUNNO + quota_status_nouser = DUNNO + quota_status_overquota = "552 5.2.2 Mailbox is full" +} diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index b7dbea6300a8cc251c64e2b2a2b4e25748f737b1..8e3fa50f229239baff06e54f70a2bcedf4d8a9e0 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -1,7 +1,7 @@ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases -virtual_alias_domains = -virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -14,8 +14,8 @@ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting -greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting} +greylisting = check_policy_service inet:127.0.0.1:10023 +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert @@ -24,9 +24,9 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo +smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf smtpd_client_message_rate_limit = 100 @@ -39,8 +39,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks owner_request_special = no smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL +smtpd_tls_mandatory_ciphers = medium +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +tls_preempt_cipherlist = no +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/fedora_dovecot.conf.master b/install/tpl/fedora_dovecot.conf.master index cfac8564141d0d4dc8b30564a34d7707fa6a97f6..0bd4f7ca6d8b5dd9be6dbc10ebe5cdb6a2a89f6f 100644 --- a/install/tpl/fedora_dovecot.conf.master +++ b/install/tpl/fedora_dovecot.conf.master @@ -1300,11 +1300,17 @@ plugin { # # Location of the active script. When ManageSieve is used this is actually # a symlink pointing to the active script in the sieve storage directory. - #sieve=~/.dovecot.sieve - # + sieve=~/.sieve + # The path to the directory where the personal Sieve scripts are stored. For # ManageSieve this is where the uploaded scripts are stored. sieve_dir=~/sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 + sieve_max_redirects = 25 } # Config files can also be included. deliver doesn't support them currently. diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master index c14af1d44d505dbcdf15a00d2e2b471c80a6f3d6..4b9bb5c6a9cc1bc142bd45468af930758b598444 100644 --- a/install/tpl/fedora_dovecot2.conf.master +++ b/install/tpl/fedora_dovecot2.conf.master @@ -6,7 +6,11 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +ssl_prefer_server_ciphers = no +auth_verbose = yes +mail_plugins = quota passdb { args = /etc/dovecot-sql.conf driver = sql @@ -20,7 +24,15 @@ userdb { } plugin { quota = dict:user::file:/var/vmail/%d/%n/.quotausage + + # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 + sieve_max_redirects = 25 } service auth { unix_listener /var/spool/postfix/private/auth { @@ -42,6 +54,7 @@ service lmtp { user = postfix } } +lmtp_rcpt_check_quota = yes service imap-login { client_limit = 1000 process_limit = 500 @@ -61,4 +74,55 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + mail_plugins = $mail_plugins quota + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } + +service quota-status { + executable = quota-status -p postfix + unix_listener /var/spool/postfix/private/quota-status { + group = postfix + mode = 0660 + user = postfix + } + client_limit = 1 +} +plugin { + quota_status_success = DUNNO + quota_status_nouser = DUNNO + quota_status_overquota = "552 5.2.2 Mailbox is full" +} + +imap_capability=+SEPCIAL-USE XLIST +namespace inbox { + inbox = yes + separator = . + mailbox Drafts { + special_use = \Drafts + } + mailbox Junk { + special_use = \Junk + } + mailbox Sent { + special_use = \Sent + } + mailbox "Sent Messages" { + special_use = \Sent + } + mailbox Trash { + special_use = \Trash + } +} diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index f06af8228807cf896136004256ae21eea75fc9b9..ffe831286c689cf2779d13fec0b36070c19c5383 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -1,5 +1,5 @@ -virtual_alias_domains = -virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -11,7 +11,7 @@ broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting} +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert @@ -20,9 +20,9 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo +smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf smtpd_client_message_rate_limit = 100 @@ -35,8 +35,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL +smtpd_tls_mandatory_ciphers = medium +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +tls_preempt_cipherlist = no +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/fedora_pureftpd_conf.master b/install/tpl/fedora_pureftpd_conf.master index 5b9d6a2deb88731ff2f8a61bad3057285b72eb31..c22646322f86ea63f292f6f6f8cf729afa0ff98c 100644 --- a/install/tpl/fedora_pureftpd_conf.master +++ b/install/tpl/fedora_pureftpd_conf.master @@ -241,13 +241,6 @@ MinUID 500 -# Do not use the /etc/ftpusers file to disable accounts. We're already -# using MinUID to block users with uid < 500 - -UseFtpUsers no - - - # Allow FXP transfers for authenticated users. AllowUserFXP no diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index dc20e02c13c44b00b89b030f9a6b99aa4ce9a142..52b48f92743317c652e22f2792c902a3f96eea5b 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -1,5 +1,5 @@ -virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -10,7 +10,7 @@ broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting} +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert @@ -19,9 +19,9 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, check_helo_access regexp:{config_dir}/blacklist_helo +smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf smtpd_client_message_rate_limit = 100 @@ -34,8 +34,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL +smtpd_tls_mandatory_ciphers = medium +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +tls_preempt_cipherlist = no +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/jk_chrootsh.ini.master b/install/tpl/jk_chrootsh.ini.master index cfd9e8d19832f7b6adccaf05cff2031619683df3..3373e6aec56db468f92ef30e5c395b71ed716409 100644 --- a/install/tpl/jk_chrootsh.ini.master +++ b/install/tpl/jk_chrootsh.ini.master @@ -10,4 +10,4 @@ #relax_home_group=1 skip_injail_passwd_check=1 injail_shell=/bin/bash -env = TERM, PATH +env = TERM, PATH, LANG diff --git a/install/tpl/jk_init.ini.master b/install/tpl/jk_init.ini.master index d34332b72e31655a5909a33e64672b3e6c2a752e..0f62aac9efdd0d3bc0b9c9fe5e98becddeba3821 100644 --- a/install/tpl/jk_init.ini.master +++ b/install/tpl/jk_init.ini.master @@ -1,28 +1,28 @@ +# jk_init.ini: jailkit initialization config + +# Includes paths to handle Debian 10/9, +# if other paths are needed please create an issue with the details: +# https://git.ispconfig.org/ispconfig/ispconfig3/-/issues + [uidbasics] -# this section probably needs adjustment on 64bit systems -# or non-Linux systems comment = common files for all jails that need user/group information -libraries = /lib/libnsl.so.1, /lib64/libnsl.so.1, /lib/libnss*.so.2, /lib64/libnss*.so.2, /lib/x86_64-linux-gnu/libnss*.so.2 -regularfiles = /etc/nsswitch.conf, /etc/ld.so.conf +paths = /lib/libnsl.so.1, /lib64/libnsl.so.1, /lib/libnss*.so.2, /lib64/libnss*.so.2, /lib/i386-linux-gnu/libnsl.so.1, /lib/i386-linux-gnu/libnss*.so.2, /lib/x86_64-linux-gnu/libnsl.so.1, /lib/x86_64-linux-gnu/libnss*.so.2, /lib/arm-linux-gnueabihf/libnss*.so.2, /lib/arm-linux-gnueabihf/libnsl*.so.1, /etc/nsswitch.conf, /etc/ld.so.conf [netbasics] comment = common files for all jails that need any internet connectivity -libraries = /lib/libnss_dns.so.2, /lib64/libnss_dns.so.2, /lib/x86_64-linux-gnu/libnss_dns.so.2 -regularfiles = /etc/resolv.conf, /etc/host.conf, /etc/hosts, /etc/protocols +paths = /lib/libnss_dns.so.2, /lib64/libnss_dns.so.2, /lib/libnss_mdns*.so.2, /lib/i386-linux-gnu/libnss_dns.so.2, /lib/x86_64-linux-gnu/libnss_dns.so.2, /etc/resolv.conf, /etc/host.conf, /etc/hosts, /etc/protocols, /etc/services, /etc/ssl/certs/, /usr/lib/ssl/certs [logbasics] -comment = timezone information -regularfiles = /etc/localtime +comment = timezone information and log sockets +paths = /etc/localtime need_logsocket = 1 [jk_lsh] comment = Jailkit limited shell -executables = /usr/sbin/jk_lsh -regularfiles = /etc/jailkit/jk_lsh.ini +paths = /usr/sbin/jk_lsh, /etc/jailkit/jk_lsh.ini users = root groups = root -need_logsocket = 1 -includesections = uidbasics +includesections = uidbasics, logbasics [limitedshell] comment = alias for jk_lsh @@ -30,76 +30,77 @@ includesections = jk_lsh [cvs] comment = Concurrent Versions System -executables = /usr/bin/cvs +paths = cvs devices = /dev/null [git] comment = Fast Version Control System -executables = /usr/bin/git* -directories = /usr/share/git-core -includesections = editors +paths = /usr/bin/git*, /usr/lib/git-core, /usr/share/git-core, /usr/bin/pager +includesections = editors, perl, netbasics, basicshell, coreutils [scp] comment = ssh secure copy -executables = /usr/bin/scp +paths = scp includesections = netbasics, uidbasics devices = /dev/urandom [sftp] comment = ssh secure ftp -executables = /usr/lib/sftp-server, /usr/libexec/openssh/sftp-server, /usr/lib/misc/sftp-server, /usr/libexec/sftp-server +paths = /usr/lib/sftp-server, /usr/libexec/openssh/sftp-server, /usr/lib/misc/sftp-server, /usr/libexec/sftp-server, /usr/lib/openssh/sftp-server includesections = netbasics, uidbasics devices = /dev/urandom, /dev/null +# on solaris +#paths = /usr/lib/ssh/sftp-server [ssh] comment = ssh secure shell -executables = /usr/bin/ssh +paths = ssh includesections = netbasics, uidbasics -devices = /dev/urandom, /dev/tty +devices = /dev/urandom, /dev/tty, /dev/null [rsync] -executables = /usr/bin/rsync +paths = rsync includesections = netbasics, uidbasics [procmail] comment = procmail mail delivery -executables = /usr/bin/procmail, /bin/sh +paths = procmail, /bin/sh devices = /dev/null [basicshell] comment = bash based shell with several basic utilities -executables = /bin/sh, /bin/bash, /bin/ls, /bin/cat, /bin/chmod, /bin/mkdir, /bin/cp, /bin/cpio, /bin/date, /bin/dd, /bin/echo, /bin/egrep, /bin/false, /bin/fgrep, /bin/grep, /bin/gunzip, /bin/gzip, /bin/ln, /bin/ls, /bin/mkdir, /bin/mktemp, /bin/more, /bin/mv, /bin/pwd, /bin/rm, /bin/rmdir, /bin/sed, /bin/sh, /bin/sleep, /bin/sync, /bin/tar, /bin/touch, /bin/true, /bin/uncompress, /bin/zcat -regularfiles = /etc/motd, /etc/issue, /etc/bash.bashrc, /etc/bashrc, /etc/profile -directories = /usr/lib/locale/en_US.utf8 +paths = /bin/sh, bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep, false, fgrep, grep, gunzip, gzip, ln, ls, mkdir, mktemp, more, mv, pwd, rm, rmdir, sed, sh, sleep, sync, tar, touch, true, uncompress, zcat, /etc/motd, /etc/issue, /etc/bash.bashrc, /etc/bashrc, /etc/profile, /usr/lib/locale/en_US.utf8, uname, expr, xargs users = root groups = root includesections = uidbasics [midnightcommander] comment = Midnight Commander -executables = /usr/bin/mc, /usr/bin/mcedit, /usr/bin/mcview -directories = /etc/terminfo, /usr/share/terminfo, /usr/share/mc -includesections = basicshell +paths = mc, mcedit, mcview, /usr/share/mc +includesections = basicshell, terminfo [extendedshell] comment = bash shell including things like awk, bzip, tail, less -executables = /usr/bin/awk, /usr/bin/bzip2, /usr/bin/bunzip2, /usr/bin/ldd, /usr/bin/less, /usr/bin/clear, /usr/bin/cut, /usr/bin/du, /usr/bin/find, /usr/bin/head, /usr/bin/less, /usr/bin/md5sum, /usr/bin/nice, /usr/bin/sort, /usr/bin/tac, /usr/bin/tail, /usr/bin/tr, /usr/bin/sort, /usr/bin/wc, /usr/bin/watch, /usr/bin/whoami +paths = awk, bzip2, bunzip2, ldd, less, clear, cut, du, find, head, less, md5sum, nice, sort, tac, tail, tr, sort, wc, watch, whoami includesections = basicshell, midnightcommander, editors +[terminfo] +comment = terminfo databases, required for example for ncurses or vim +paths = /etc/terminfo, /usr/share/terminfo, /lib/terminfo + [editors] comment = vim, joe and nano -executables = /usr/bin/joe, /usr/bin/nano, /usr/bin/vi, /usr/bin/vim, /usr/bin/pico -regularfiles = /etc/vimrc -directories = /etc/joe, /etc/terminfo, /usr/share/vim, /usr/share/terminfo, /lib/terminfo +includesections = terminfo +paths = joe, nano, vi, vim, /etc/vimrc, /etc/joe, /usr/share/vim [netutils] comment = several internet utilities like wget, ftp, rsync, scp, ssh -executables = /usr/bin/wget, /usr/bin/lynx, /usr/bin/ftp, /usr/bin/host, /usr/bin/rsync, /usr/bin/smbclient +paths = wget, lynx, ftp, host, rsync, smbclient includesections = netbasics, ssh, sftp, scp [apacheutils] comment = htpasswd utility -executables = /usr/bin/htpasswd +paths = htpasswd [extshellplusnet] comment = alias for extendedshell + netutils + apacheutils @@ -107,45 +108,120 @@ includesections = extendedshell, netutils, apacheutils [openvpn] comment = jail for the openvpn daemon -executables = /usr/sbin/openvpn +paths = /usr/sbin/openvpn users = root,nobody groups = root,nogroup -includesections = netbasics devices = /dev/urandom, /dev/random, /dev/net/tun includesections = netbasics, uidbasics need_logsocket = 1 [apache] comment = the apache webserver, very basic setup, probably too limited for you -executables = /usr/sbin/apache +paths = /usr/sbin/apache users = root, www-data groups = root, www-data includesections = netbasics, uidbasics [perl] comment = the perl interpreter and libraries -executables = /usr/bin/perl -directories = /usr/lib/perl, /usr/lib/perl5, /usr/share/perl, /usr/share/perl5 +paths = perl, /usr/lib/perl, /usr/lib/perl5, /usr/share/perl, /usr/share/perl5 [xauth] comment = getting X authentication to work -executables = /usr/bin/X11/xauth -regularfiles = /usr/X11R6/lib/X11/rgb.txt, /etc/ld.so.conf +paths = /usr/bin/X11/xauth, /usr/X11R6/lib/X11/rgb.txt, /etc/ld.so.conf [xclients] comment = minimal files for X clients -regularfiles = /usr/X11R6/lib/X11/rgb.txt +paths = /usr/X11R6/lib/X11/rgb.txt includesections = xauth [vncserver] comment = the VNC server program -executables = /usr/bin/Xvnc, /usr/bin/Xrealvnc -directories = /usr/X11R6/lib/X11/fonts/ +paths = Xvnc, Xrealvnc, /usr/X11R6/lib/X11/fonts/ includesections = xclients +[ping] +comment = Ping program +paths_w_setuid = /bin/ping #[xterm] #comment = xterm -#executables = /usr/bin/X11/xterm -#directories = /usr/share/terminfo, /etc/terminfo +#paths = /usr/bin/X11/xterm, /usr/share/terminfo, /etc/terminfo #devices = /dev/pts/0, /dev/pts/1, /dev/pts/2, /dev/pts/3, /dev/pts/4, /dev/ptyb4, /dev/ptya4, /dev/tty, /dev/tty0, /dev/tty4 + ++# coreutils from: ++# (echo -ne '\n[coreutils]\ncomment = non-sbin progs from coreutils\npaths = '; dpkg --listfiles coreutils | grep -E '^/bin/|/usr/bin/' | xargs -n1 -i@ echo -n "@, " | sed -e 's/, *$/\n/g' -e 's|/usr/bin/||g' -e 's|/bin/||g') >> /etc/jailkit/jk_init.ini + +[coreutils] +comment = non-sbin progs from coreutils +paths = cat, chgrp, chmod, chown, cp, date, dd, df, dir, echo, false, ln, ls, mkdir, mknod, mktemp, mv, pwd, readlink, rm, rmdir, sleep, stty, sync, touch, true, uname, vdir, [, arch, b2sum, base32, base64, basename, chcon, cksum, comm, csplit, cut, dircolors, dirname, du, env, expand, expr, factor, fmt, fold, groups, head, hostid, id, install, join, link, logname, md5sum, mkfifo, nice, nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, printf, ptx, realpath, runcon, seq, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sort, split, stat, stdbuf, sum, tac, tail, tee, test, timeout, tr, truncate, tsort, tty, unexpand, uniq, unlink, users, wc, who, whoami, yes, md5sum.textutils + +[wp] +comment = WordPress Command Line +paths = wp, /usr/local/bin/php +includesections = php, mysql-client + +[mysql-client] +comment = mysql client +paths = mysql, mysqldump, mysqlshow, /usr/lib/libmysqlclient.so, /usr/lib/i386-linux-gnu/libmariadb.so.3, /usr/lib/i386-linux-gnu/mariadb19, /usr/lib/x86_64-linux-gnu/libmariadb.so.3, /usr/lib/x86_64-linux-gnu/mariadb19 +includesections = netbasics + +[composer] +comment = composer +paths = composer, /usr/local/bin/composer, /usr/share/doc/composer +includesections = php, uidbasics, netbasics + +[node] +comment = NodeJS +paths = npm, node, nodejs, /usr/lib/nodejs, /usr/share/node-mime, /usr/lib/node_modules, /usr/local/lib/nodejs, /usr/local/lib/node_modules, elmi-to-json, /usr/local/bin/elmi-to-json + +[env] +comment = /usr/bin/env for environment variables +paths = env + +# Debian 10 default php version is 7.3 (Debian 9 is 7.0) +# Todo: set default version in ISPConfig installer, +# but install the php cli version matching the website +[php] +comment = default php version and libraries +paths = /usr/bin/php +includesections = php_common, php7_3 + +[php_common] +comment = common php directories and libraries +# notice: potential information leak +# do not add all of /etc/php/ or any of the fpm directories +# or the php config (which includes custom php snippets) from *all* +# sites which use fpm will be copied to *every* jailkit +paths = /usr/bin/php, /usr/lib/php/, /usr/share/php/, /usr/share/zoneinfo/ +includesections = env + +[php5_6] +comment = php version 5.6 +paths = /usr/bin/php5.6, /usr/lib/php/5.6/, /usr/lib/php/20131226/, /usr/share/php/5.6/, /etc/php/5.6/cli/, /etc/php/5.6/mods-available/ +includesections = php_common + +[php7_0] +comment = php version 7.0 +paths = /usr/bin/php7.0, /usr/lib/php/7.0/, /usr/lib/php/20151012/, /usr/share/php/7.0/, /etc/php/7.0/cli/, /etc/php/7.0/mods-available/ +includesections = php_common + +[php7_1] +comment = php version 7.1 +paths = /usr/bin/php7.1, /usr/lib/php/7.1/, /usr/lib/php/20160303/, /usr/share/php/7.1/, /etc/php/7.1/cli/, /etc/php/7.1/mods-available/ +includesections = php_common + +[php7_2] +comment = php version 7.2 +paths = /usr/bin/php7.2, /usr/lib/php/7.2/, /usr/lib/php/20170718/, /usr/share/php/7.2/, /etc/php/7.2/cli/, /etc/php/7.2/mods-available/ +includesections = php_common + +[php7_3] +comment = php version 7.3 +paths = /usr/bin/php7.3, /usr/lib/php/7.3/, /usr/lib/php/20180731/, /usr/share/php/7.3/, /etc/php/7.3/cli/, /etc/php/7.3/mods-available/ +includesections = php_common + +[php7_4] +comment = php version 7.4 +paths = /usr/bin/php7.4, /usr/lib/php/7.4/, /usr/lib/php/20190902/, /usr/share/php/7.4/, /etc/php/7.4/cli/, /etc/php/7.4/mods-available/ +includesections = php_common diff --git a/install/tpl/master_cf_amavis10025.master b/install/tpl/master_cf_amavis10025.master index 43f362d5c0f43b8c39f95db09ede9ac90c840fd9..6dee892264d3d6f5491fecb104a0242f079cda88 100644 --- a/install/tpl/master_cf_amavis10025.master +++ b/install/tpl/master_cf_amavis10025.master @@ -8,6 +8,7 @@ -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject + -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks diff --git a/install/tpl/master_cf_amavis10027.master b/install/tpl/master_cf_amavis10027.master index f9fdf1cf6045faca63eab27d6f8774a689bac44a..640902d52e109a76d206cb72123b7cf1ea65e9d0 100644 --- a/install/tpl/master_cf_amavis10027.master +++ b/install/tpl/master_cf_amavis10027.master @@ -8,6 +8,7 @@ -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject + -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks diff --git a/install/tpl/mysql-verify_recipients.cf.master b/install/tpl/mysql-verify_recipients.cf.master new file mode 100644 index 0000000000000000000000000000000000000000..2b433491d8e3d9817d20f2d6d9674200410ade96 --- /dev/null +++ b/install/tpl/mysql-verify_recipients.cf.master @@ -0,0 +1,5 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT 'reject_unverified_recipient' FROM mail_domain WHERE domain = '%s' AND active = 'y' AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_alias_domains.cf.master b/install/tpl/mysql-virtual_alias_domains.cf.master new file mode 100644 index 0000000000000000000000000000000000000000..26b14ac00da538ba9253fe937cb6a4f79bec5942 --- /dev/null +++ b/install/tpl/mysql-virtual_alias_domains.cf.master @@ -0,0 +1,7 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT SUBSTRING_INDEX(destination, '@', -1) FROM mail_forwarding + WHERE source = '@%s' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id} + diff --git a/install/tpl/mysql-virtual_alias_maps.cf.master b/install/tpl/mysql-virtual_alias_maps.cf.master new file mode 100644 index 0000000000000000000000000000000000000000..e55fd8ea8df088457ba43a01c8df62a33e888b6f --- /dev/null +++ b/install/tpl/mysql-virtual_alias_maps.cf.master @@ -0,0 +1,6 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT destination FROM mail_forwarding + WHERE source = '@%d' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_client.cf.master b/install/tpl/mysql-virtual_client.cf.master index bad0cb9655db1fcb2924438f51b073de7b61f6db..106b647e4ae6aca74a46ecf3ca4a2cce29ff0995 100644 --- a/install/tpl/mysql-virtual_client.cf.master +++ b/install/tpl/mysql-virtual_client.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_access -select_field = access -where_field = source -additional_conditions = and type = 'client' and active = 'y' -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_access where source = '%s' and type = 'client' and active = 'y' diff --git a/install/tpl/mysql-virtual_domains.cf.master b/install/tpl/mysql-virtual_domains.cf.master index 5b711422f257b4eeb9b0ea998a11346aa4c4330e..11ccb046ef0a37a9bd2a3f33437a5efbe4e7b428 100644 --- a/install/tpl/mysql-virtual_domains.cf.master +++ b/install/tpl/mysql-virtual_domains.cf.master @@ -1,8 +1,6 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_domain -select_field = domain -where_field = domain -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT domain FROM mail_domain WHERE domain = '%s' AND active = 'y' AND server_id = {server_id} + AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE source = '@%s' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id}) diff --git a/install/tpl/mysql-virtual_email2email.cf.master b/install/tpl/mysql-virtual_email2email.cf.master index e18ef2407e80040c1f0e7875753902c1de61f342..17e1cdf0bf93c91370183d62947d277b54e02015 100644 --- a/install/tpl/mysql-virtual_email2email.cf.master +++ b/install/tpl/mysql-virtual_email2email.cf.master @@ -1,8 +1,7 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = email -where_field = email -additional_conditions = and postfix = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT email FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'n' AND server_id = {server_id} + UNION + SELECT cc AS email FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'y' AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_forwardings.cf.master b/install/tpl/mysql-virtual_forwardings.cf.master index 7d5c2e2a472049a2765f0298019ad7c19c5c95f2..9ab6f3e860fa06ac2f987343f17f2c43115f36bd 100644 --- a/install/tpl/mysql-virtual_forwardings.cf.master +++ b/install/tpl/mysql-virtual_forwardings.cf.master @@ -1,9 +1,11 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_forwarding -select_field = destination -where_field = source -# additional_conditions = and type != 'aliasdomain' and active = 'y' and server_id = {server_id} -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT s.destination AS target FROM mail_forwarding AS s + WHERE s.source = '%s' AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = {server_id} + UNION + SELECT s.destination AS target FROM mail_forwarding AS s + WHERE s.source = '@%d' AND s.type = 'catchall' AND s.active = 'y' AND s.server_id = {server_id} + AND NOT EXISTS (SELECT email FROM mail_user WHERE email = '%s' AND server_id = {server_id}) + AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND server_id = {server_id}) diff --git a/install/tpl/mysql-virtual_gids.cf.master b/install/tpl/mysql-virtual_gids.cf.master index 7c7d995fc98bb334e087f3a0e307a793f8cc1b9b..5611b935dd2cf6f8fa2afd10713cdf313fb9e11f 100644 --- a/install/tpl/mysql-virtual_gids.cf.master +++ b/install/tpl/mysql-virtual_gids.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = gid -where_field = email -additional_conditions = and postfix = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select gid from mail_user where email = '%s' and postfix = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_mailboxes.cf.master b/install/tpl/mysql-virtual_mailboxes.cf.master index 2fe47bbdf5d85c9765141208a7b43f844f44429e..97825f9ffc9c492e68f8703efce25f00b79d66e7 100644 --- a/install/tpl/mysql-virtual_mailboxes.cf.master +++ b/install/tpl/mysql-virtual_mailboxes.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') -where_field = login -additional_conditions = and postfix = 'y' and server_id = {server_id} hosts = {mysql_server_ip} +query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where login = '%s' and postfix = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_outgoing_bcc.cf b/install/tpl/mysql-virtual_outgoing_bcc.cf deleted file mode 100644 index dfeb04b553ccb54b108c69db1fb652bea93b05af..0000000000000000000000000000000000000000 --- a/install/tpl/mysql-virtual_outgoing_bcc.cf +++ /dev/null @@ -1,8 +0,0 @@ -user = {mysql_server_ispconfig_user} -password = {mysql_server_ispconfig_password} -dbname = {mysql_server_database} -table = mail_user -select_field = sender_cc -where_field = email -additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disables$ -hosts = 127.0.0.1 \ No newline at end of file diff --git a/install/tpl/mysql-virtual_outgoing_bcc.cf.master b/install/tpl/mysql-virtual_outgoing_bcc.cf.master index af062f66b2d3a900a2f74270b30555fd3bb41d7d..19b235fcf5a19c2b3a068e9a4820a671f194559d 100644 --- a/install/tpl/mysql-virtual_outgoing_bcc.cf.master +++ b/install/tpl/mysql-virtual_outgoing_bcc.cf.master @@ -1,8 +1,16 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = sender_cc -where_field = email -additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disablesmtp = 'n' and sender_cc != '' -hosts = 127.0.0.1 \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT sender_cc FROM ( + SELECT SUBSTRING_INDEX(sender_cc, ',', 1) AS sender_cc + FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND sender_cc != '' AND server_id = {server_id} + UNION + SELECT SUBSTRING_INDEX(u.sender_cc, ',', 1) AS sender_cc + FROM mail_user u, mail_forwarding f + WHERE f.destination REGEXP CONCAT( '((^|\\n)[[:blank:]]*,?|[[:alnum:]][[:blank:]]*,)[[:blank:]]*', + REPLACE( REPLACE(u.email, '+', '\\+'), '.', '\\.' ), + '[[:blank:]]*(,[[:blank:]]*[[:alnum:]]|,?[[:blank:]]*(\\r?\\n|$))' ) + AND u.disablesmtp = 'n' AND u.sender_cc != '' AND u.server_id = {server_id} + AND f.source = '%s' AND f.allow_send_as = 'y' AND f.active = 'y' AND f.server_id = {server_id} + ) table1 WHERE sender_cc != '' LIMIT 1 diff --git a/install/tpl/mysql-virtual_policy_greylist.cf.master b/install/tpl/mysql-virtual_policy_greylist.cf.master index fd6fded819745ebfcf47fd490ddd727b49be0315..5203b1a2ea65a597d034d204289f4abc6bdffd1b 100644 --- a/install/tpl/mysql-virtual_policy_greylist.cf.master +++ b/install/tpl/mysql-virtual_policy_greylist.cf.master @@ -1,5 +1,13 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -query = SELECT 'greylisting' FROM (SELECT greylisting, source AS email FROM mail_forwarding WHERE server_id = {server_id} UNION SELECT greylisting, email FROM mail_user WHERE server_id = {server_id}) addresses WHERE addresses.email='%s' AND addresses.greylisting='y' UNION SELECT 'greylisting' FROM `mail_forwarding` f CROSS JOIN `mail_user` u ON u.email = f.destination WHERE f.type = 'catchall' AND u.greylisting = 'y' AND u.server_id = {server_id} AND f.source = '@%s' -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT 'greylisting' FROM + ( + SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' + UNION + SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' + UNION + SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%d' ORDER BY `prio` ASC LIMIT 1 + ) AS rules + WHERE rules.greylisting = 'y' diff --git a/install/tpl/mysql-virtual_recipient.cf.master b/install/tpl/mysql-virtual_recipient.cf.master index 49024f3ebd262cc8929fc947e373b21d5a56fac6..2099966df2411b223ec21b14f251056eeaf12f38 100644 --- a/install/tpl/mysql-virtual_recipient.cf.master +++ b/install/tpl/mysql-virtual_recipient.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_access -select_field = access -where_field = source -additional_conditions = and type = 'recipient' and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_access where source = '%s' and type = 'recipient' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_relaydomains.cf.master b/install/tpl/mysql-virtual_relaydomains.cf.master index fb7bec1a3a60d53ee9103f0a8bb32cc280bc8797..5ce2db6954429b96b9b4437f2cd9831cb002bc21 100644 --- a/install/tpl/mysql-virtual_relaydomains.cf.master +++ b/install/tpl/mysql-virtual_relaydomains.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_transport -select_field = domain -where_field = domain -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select domain from mail_transport where domain = '%s' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_relayrecipientmaps.cf.master b/install/tpl/mysql-virtual_relayrecipientmaps.cf.master index a6304fe3234ff6ff70dbb5c594b6882ad8955ea0..ea67220215dcb3ec12d0a862e78cba08592ee75d 100644 --- a/install/tpl/mysql-virtual_relayrecipientmaps.cf.master +++ b/install/tpl/mysql-virtual_relayrecipientmaps.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_relay_recipient -select_field = access -where_field = source -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_relay_recipient where source = '%s' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_sender.cf.master b/install/tpl/mysql-virtual_sender.cf.master index 0ef634aec762547e1e92113d3e6be1499c8b9a1a..1a5c4cb877626f05b6ecfa8253b4aaed26144cf4 100644 --- a/install/tpl/mysql-virtual_sender.cf.master +++ b/install/tpl/mysql-virtual_sender.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_access -select_field = access -where_field = source -additional_conditions = and type = 'sender' and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_access where source = '%s' and type = 'sender' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_sender_login_maps.cf.master b/install/tpl/mysql-virtual_sender_login_maps.cf.master index 5b7f144f8cb94c5686a388f950651a86d1c9a618..f97229d213a9a549065e2ac458f31ae85dfdf3cf 100644 --- a/install/tpl/mysql-virtual_sender_login_maps.cf.master +++ b/install/tpl/mysql-virtual_sender_login_maps.cf.master @@ -1,5 +1,7 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -query = SELECT destination FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND allow_send_as = 'y' AND server_id = {server_id} UNION SELECT email FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND server_id = {server_id}; -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT destination FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND allow_send_as = 'y' AND server_id = {server_id} + UNION + SELECT email FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND server_id = {server_id}; diff --git a/install/tpl/mysql-virtual_transports.cf.master b/install/tpl/mysql-virtual_transports.cf.master index 048a7a81ac85deec4ae936a74515dc9f5cf2748c..e9585ca6cc1b1dc848104094da890710908e00bf 100644 --- a/install/tpl/mysql-virtual_transports.cf.master +++ b/install/tpl/mysql-virtual_transports.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_transport -select_field = transport -where_field = domain -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select transport from mail_transport where domain = '%s' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_uids.cf.master b/install/tpl/mysql-virtual_uids.cf.master index da3cd7c2a0936dc181a478d568a12a3a7aed7347..de35368c0ad39dbba4ee1cfb52ed5f8a48fbab11 100644 --- a/install/tpl/mysql-virtual_uids.cf.master +++ b/install/tpl/mysql-virtual_uids.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = uid -where_field = email -additional_conditions = and postfix = 'y' and server_id = {server_id} hosts = {mysql_server_ip} +query = select uid from mail_user where email = '%s' and postfix = 'y' and server_id = {server_id} diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master index 3d00d11106d48a3e8289d6fbc7ca057bdb34620a..2680b209a2522b8ef4455ffb73f4f835c3e66477 100644 --- a/install/tpl/nginx_apps.vhost.master +++ b/install/tpl/nginx_apps.vhost.master @@ -2,7 +2,7 @@ server { listen {apps_vhost_port} {ssl_on}; listen [::]:{apps_vhost_port} {ssl_on} ipv6only=on; - {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + {ssl_comment}ssl_protocols TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; @@ -115,7 +115,7 @@ server { location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } - + location /squirrelmail { root /usr/share/; index index.php index.html index.htm; @@ -200,7 +200,7 @@ server { fastcgi_pass unix:{cgi_socket}; } - location /images/mailman { + location ^~ /images/mailman { alias /usr/share/images/mailman; } @@ -208,4 +208,28 @@ server { alias /var/lib/mailman/archives/public; autoindex on; } + + {use_rspamd}location /rspamd/ { + {use_rspamd}proxy_pass http://127.0.0.1:11334/; + {use_rspamd}rewrite ^//(.*) /$1; + {use_rspamd}proxy_set_header X-Forwarded-Proto $scheme; + {use_rspamd}proxy_set_header Host $host; + {use_rspamd}proxy_set_header X-Real-IP $remote_addr; + {use_rspamd}proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + {use_rspamd}proxy_pass_header Authorization; + {use_rspamd}client_max_body_size 0; + {use_rspamd}client_body_buffer_size 1m; + {use_rspamd}proxy_intercept_errors on; + {use_rspamd}proxy_buffering on; + {use_rspamd}proxy_buffer_size 128k; + {use_rspamd}proxy_buffers 256 16k; + {use_rspamd}proxy_busy_buffers_size 256k; + {use_rspamd}proxy_temp_file_write_size 256k; + {use_rspamd}proxy_max_temp_file_size 0; + {use_rspamd}proxy_read_timeout 300; + {use_rspamd} + {use_rspamd}location ~* ^/rspamd/(.+\.(jpg|jpeg|gif|css|png|js|ico|html?|xml|txt))$ { + {use_rspamd}alias /usr/share/rspamd/www/$1; + {use_rspamd}} + {use_rspamd}} } diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master index aad670e97a8a74d022eb3c0c11927c559bd858d6..dbe44d7064861eae187731a39e5ced7d120affd3 100644 --- a/install/tpl/nginx_ispconfig.vhost.master +++ b/install/tpl/nginx_ispconfig.vhost.master @@ -1,13 +1,13 @@ server { listen {vhost_port} {ssl_on}; listen [::]:{vhost_port} {ssl_on} ipv6only=on; - - {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + + {ssl_comment}ssl_protocols TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; {ssl_comment}ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; {ssl_comment}ssl_prefer_server_ciphers on; - + # redirect to https if accessed with http {ssl_comment}error_page 497 https://$host:{vhost_port}$request_uri; @@ -44,7 +44,7 @@ server { location ~ /\. { deny all; } - + # location /phpmyadmin { # root /usr/share/; # index index.php index.html index.htm; @@ -64,7 +64,7 @@ server { # location /phpMyAdmin { # rewrite ^/* /phpmyadmin last; # } -# +# # location /squirrelmail { # root /usr/share/; # index index.php index.html index.htm; diff --git a/install/tpl/opensuse_dovecot.conf.master b/install/tpl/opensuse_dovecot.conf.master index 9d345fa911af48198caf1d322b32ca460d99be59..4a4d5e319ca62e05a3286c250c76b0e7134ac481 100644 --- a/install/tpl/opensuse_dovecot.conf.master +++ b/install/tpl/opensuse_dovecot.conf.master @@ -1274,11 +1274,17 @@ plugin { # # Location of the active script. When ManageSieve is used this is actually # a symlink pointing to the active script in the sieve storage directory. - sieve=~/.dovecot.sieve - # + sieve=~/.sieve + # The path to the directory where the personal Sieve scripts are stored. For # ManageSieve this is where the uploaded scripts are stored. sieve_dir=~/sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 + sieve_max_redirects = 25 } # Config files can also be included. deliver doesn't support them currently. diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master index f28c1095d2792989b09e64e3fa3f403c2adca09c..9624c05684e4564f49613cf101a5eef60e2fdc8e 100644 --- a/install/tpl/opensuse_dovecot2.conf.master +++ b/install/tpl/opensuse_dovecot2.conf.master @@ -6,7 +6,10 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +ssl_prefer_server_ciphers = no +mail_plugins = quota passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql @@ -20,7 +23,15 @@ userdb { } plugin { quota = dict:user::file:/var/vmail/%d/%n/.quotausage + + # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve + sieve_after=/var/vmail/%d/%n/.ispconfig.sieve + sieve_max_script_size = 2M + sieve_max_actions = 100 + sieve_max_redirects = 25 } service auth { unix_listener /var/spool/postfix/private/auth { @@ -42,6 +53,7 @@ service lmtp { user = postfix } } +lmtp_rcpt_check_quota = yes service imap-login { client_limit = 1000 process_limit = 500 @@ -60,4 +72,55 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + mail_plugins = $mail_plugins quota + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } + +service quota-status { + executable = quota-status -p postfix + unix_listener /var/spool/postfix/private/quota-status { + group = postfix + mode = 0660 + user = postfix + } + client_limit = 1 +} +plugin { + quota_status_success = DUNNO + quota_status_nouser = DUNNO + quota_status_overquota = "552 5.2.2 Mailbox is full" +} + +imap_capability=+SEPCIAL-USE XLIST +namespace inbox { + inbox = yes + separator = . + mailbox Drafts { + special_use = \Drafts + } + mailbox Junk { + special_use = \Junk + } + mailbox Sent { + special_use = \Sent + } + mailbox "Sent Messages" { + special_use = \Sent + } + mailbox Trash { + special_use = \Trash + } +} diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 4192f988b5213775cc7b47a99b70f3add21946cc..545dcb10806b739dd99a394dc55cea986acf85f1 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -1,7 +1,7 @@ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases -virtual_alias_domains = -virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} @@ -13,7 +13,7 @@ broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting} +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert @@ -22,9 +22,9 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo +smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf smtpd_client_message_rate_limit = 100 @@ -37,8 +37,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL +smtpd_tls_mandatory_ciphers = medium +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 +tls_preempt_cipherlist = no +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/rspamd_antivirus.conf.master b/install/tpl/rspamd_antivirus.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..f88d81ac7ce94c881087b93e0d08bc2f1849f429 --- /dev/null +++ b/install/tpl/rspamd_antivirus.conf.master @@ -0,0 +1,30 @@ +clamav { + # If set force this action if any virus is found (default unset: no action is forced) + #action = "reject"; + # if `true` only messages with non-image attachments will be checked (default true) + scan_mime_parts = true; + # If `max_size` is set, messages > n bytes in size are not scanned + #max_size = 20000000; + # symbol to add (add it to metric if you want non-zero weight) + symbol = "CLAM_VIRUS"; + # type of scanner: "clamav", "fprot", "sophos" or "savapi" + type = "clamav"; + # For "savapi" you must also specify the following variable + #product_id = 12345; + # You can enable logging for clean messages + #log_clean = true; + # servers to query (if port is unspecified, scanner-specific default is used) + # can be specified multiple times to pool servers + # can be set to a path to a unix socket + # Enable this in local.d/antivirus.conf + #servers = "127.0.0.1:3310"; + servers = "/var/run/clamav/clamd.ctl"; + # if `patterns` is specified virus name will be matched against provided regexes and the related + # symbol will be yielded if a match is found. If no match is found, default symbol is yielded. + patterns { + # symbol_name = "pattern"; + JUST_EICAR = "^Eicar-Test-Signature$"; + } + # `whitelist` points to a map of IP addresses. Mail from these addresses is not scanned. + whitelist = "/etc/rspamd/antivirus.wl"; +} \ No newline at end of file diff --git a/install/tpl/rspamd_classifier-bayes.conf.master b/install/tpl/rspamd_classifier-bayes.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..1688d57e217673cdfa50ff36c31f4beb782aae70 --- /dev/null +++ b/install/tpl/rspamd_classifier-bayes.conf.master @@ -0,0 +1,3 @@ +autolearn = [-0.01, 5.00]; +per_user = true; +per_language = true; \ No newline at end of file diff --git a/install/tpl/rspamd_dkim_signing.conf.master b/install/tpl/rspamd_dkim_signing.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..ed9abe40eebb060bc0a2eeec1da55074dc4eeaf7 --- /dev/null +++ b/install/tpl/rspamd_dkim_signing.conf.master @@ -0,0 +1,3 @@ +try_fallback = false; +path_map = "/etc/rspamd/local.d/dkim_domains.map"; +selector_map = "/etc/rspamd/local.d/dkim_selectors.map"; \ No newline at end of file diff --git a/install/tpl/rspamd_greylist.conf.master b/install/tpl/rspamd_greylist.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..74ea715a22cc6fa76671fd47a3f1bf89cfe92d49 --- /dev/null +++ b/install/tpl/rspamd_greylist.conf.master @@ -0,0 +1 @@ +servers = "127.0.0.1:6379"; \ No newline at end of file diff --git a/install/tpl/rspamd_groups.conf.master b/install/tpl/rspamd_groups.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..62a986533abb66fe28203358f0d6ef5854f9e0e6 --- /dev/null +++ b/install/tpl/rspamd_groups.conf.master @@ -0,0 +1,4 @@ +group "antivirus" { + .include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/antivirus_group.conf" + .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/antivirus_group.conf" +} diff --git a/install/tpl/rspamd_milter_headers.conf.master b/install/tpl/rspamd_milter_headers.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..d399bbf4ecc37e39ff900260a4884335767e9957 --- /dev/null +++ b/install/tpl/rspamd_milter_headers.conf.master @@ -0,0 +1,2 @@ +use = ["x-spamd-bar", "x-spam-level", "authentication-results"]; +authenticated_headers = ["authentication-results"]; \ No newline at end of file diff --git a/install/tpl/rspamd_mx_check.conf.master b/install/tpl/rspamd_mx_check.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..0a628f9c8382ee1f0def03883c91b91d7701e625 --- /dev/null +++ b/install/tpl/rspamd_mx_check.conf.master @@ -0,0 +1,9 @@ +enabled = true; +servers = "localhost"; +key_prefix = "rmx"; +symbol_bad_mx = "MX_INVALID"; +symbol_no_mx = "MX_MISSING"; +symbol_good_mx = "MX_GOOD"; +expire = 86400; +expire_novalid = 7200; +greylist_invalid = false; \ No newline at end of file diff --git a/install/tpl/rspamd_neural.conf.master b/install/tpl/rspamd_neural.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..76f8a6d34479f05dfb638d736fdb5c975b31a7a0 --- /dev/null +++ b/install/tpl/rspamd_neural.conf.master @@ -0,0 +1,31 @@ +servers = 127.0.0.1:6379; +enabled = true; + +rules { + "LONG" { + train { + max_trains = 5000; + max_usages = 200; + max_iterations = 25; + learning_rate = 0.01, + spam_score = 10; + ham_score = -2; + } + symbol_spam = "NEURAL_SPAM_LONG"; + symbol_ham = "NEURAL_HAM_LONG"; + ann_expire = 100d; + } + "SHORT" { + train { + max_trains = 100; + max_usages = 2; + max_iterations = 25; + learning_rate = 0.01, + spam_score = 10; + ham_score = -2; + } + symbol_spam = "NEURAL_SPAM_SHORT"; + symbol_ham = "NEURAL_HAM_SHORT"; + ann_expire = 1d; + } +} \ No newline at end of file diff --git a/install/tpl/rspamd_neural_group.conf.master b/install/tpl/rspamd_neural_group.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..5aabdefaff0599b633b5589eb80c6c85f7e4692f --- /dev/null +++ b/install/tpl/rspamd_neural_group.conf.master @@ -0,0 +1,18 @@ +symbols = { + "NEURAL_SPAM_LONG" { + weight = 1.0; # sample weight + description = "Neural network spam (long)"; + } + "NEURAL_HAM_LONG" { + weight = -2.0; # sample weight + description = "Neural network ham (long)"; + } + "NEURAL_SPAM_SHORT" { + weight = 0.5; # sample weight + description = "Neural network spam (short)"; + } + "NEURAL_HAM_SHORT" { + weight = -1.0; # sample weight + description = "Neural network ham (short)"; + } +} diff --git a/install/tpl/rspamd_options.inc.master b/install/tpl/rspamd_options.inc.master new file mode 100644 index 0000000000000000000000000000000000000000..69e40365b7dc653b046b6e3cb3ff0539936a816e --- /dev/null +++ b/install/tpl/rspamd_options.inc.master @@ -0,0 +1,5 @@ +local_addrs = "127.0.0.0/8, ::1"; + +dns { + nameserver = ["127.0.0.1:53:10"]; +} diff --git a/install/tpl/rspamd_override_rbl.conf.master b/install/tpl/rspamd_override_rbl.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..310e722832376f6e049fc2e1ac4c4179a3c3259e --- /dev/null +++ b/install/tpl/rspamd_override_rbl.conf.master @@ -0,0 +1,53 @@ +# RBL +symbols = { + "RBL_SENDERSCORE" { + weight = 4.0; + description = "From address is listed in senderscore.com BL"; + } + "RBL_SPAMHAUS_SBL" { + weight = 2.0; + description = "From address is listed in zen sbl"; + } + "RBL_SPAMHAUS_CSS" { + weight = 2.0; + description = "From address is listed in zen css"; + } + "RBL_SPAMHAUS_XBL" { + weight = 4.0; + description = "From address is listed in zen xbl"; + } + "RBL_SPAMHAUS_XBL_ANY" { + weight = 4.0; + description = "From or receive address is listed in zen xbl (any list)"; + } + "RBL_SPAMHAUS_PBL" { + weight = 2.0; + description = "From address is listed in zen pbl (ISP list)"; + } + "RBL_SPAMHAUS_DROP" { + weight = 7.0; + description = "From address is listed in zen drop bl"; + } + "RECEIVED_SPAMHAUS_XBL" { + weight = 3.0; + description = "Received address is listed in zen xbl"; + one_shot = true; + } + "RBL_MAILSPIKE_WORST" { + weight = 2.0; + description = "From address is listed in RBL - worst possible reputation"; + } + "RBL_MAILSPIKE_VERYBAD" { + weight = 1.5; + description = "From address is listed in RBL - very bad reputation"; + } + "RBL_MAILSPIKE_BAD" { + weight = 1.0; + description = "From address is listed in RBL - bad reputation"; + } + "RBL_SEM" { + weight = 1.0; + description = "Address is listed in Spameatingmonkey RBL"; + } + # /RBL +} diff --git a/install/tpl/rspamd_override_surbl.conf.master b/install/tpl/rspamd_override_surbl.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..30676a46fde75e4e4d21bf3e5cc1e6aabc4e749d --- /dev/null +++ b/install/tpl/rspamd_override_surbl.conf.master @@ -0,0 +1,108 @@ +symbols = { + # SURBL + "PH_SURBL_MULTI" { + weight = 5.5; + description = "SURBL: Phishing sites"; + } + "MW_SURBL_MULTI" { + weight = 5.5; + description = "SURBL: Malware sites"; + } + "ABUSE_SURBL" { + weight = 5.5; + description = "SURBL: ABUSE"; + } + "CRACKED_SURBL" { + weight = 4.0; + description = "SURBL: cracked site"; + } + "RAMBLER_URIBL" { + weight = 4.5; + description = "Rambler uribl"; + one_shot = true; + } + "RAMBLER_EMAILBL" { + weight = 9.5; + description = "Rambler emailbl"; + one_shot = true; + } + "MSBL_EBL" { + weight = 7.5; + description = "MSBL emailbl"; + one_shot = true; + } + "SEM_URIBL" { + weight = 3.5; + description = "Spameatingmonkey uribl"; + } + "SEM_URIBL_FRESH15" { + weight = 3.0; + description = "Spameatingmonkey uribl. Domains registered in the last 15 days (.AERO,.BIZ,.COM,.INFO,.NAME,.NET,.PRO,.SK,.TEL,.US)"; + } + "DBL" { + weight = 0.0; + description = "DBL unknown result"; + } + "DBL_SPAM" { + weight = 6.5; + description = "DBL uribl spam"; + } + "DBL_PHISH" { + weight = 6.5; + description = "DBL uribl phishing"; + } + "DBL_MALWARE" { + weight = 6.5; + description = "DBL uribl malware"; + } + "DBL_BOTNET" { + weight = 5.5; + description = "DBL uribl botnet C&C domain"; + } + "DBL_ABUSE" { + weight = 6.5; + description = "DBL uribl abused legit spam"; + } + "DBL_ABUSE_REDIR" { + weight = 1.5; + description = "DBL uribl abused spammed redirector domain"; + } + "DBL_ABUSE_PHISH" { + weight = 7.5; + description = "DBL uribl abused legit phish"; + } + "DBL_ABUSE_MALWARE" { + weight = 7.5; + description = "DBL uribl abused legit malware"; + } + "DBL_ABUSE_BOTNET" { + weight = 5.5; + description = "DBL uribl abused legit botnet C&C"; + } + "URIBL_BLACK" { + weight = 7.5; + description = "uribl.com black url"; + } + "URIBL_RED" { + weight = 3.5; + description = "uribl.com red url"; + } + "URIBL_GREY" { + weight = 1.5; + description = "uribl.com grey url"; + one_shot = true; + } + "URIBL_SBL" { + weight = 6.5; + description = "Spamhaus SBL URIBL"; + } + "URIBL_SBL_CSS" { + weight = 6.5; + description = "Spamhaus SBL CSS URIBL"; + } + "RBL_SARBL_BAD" { + weight = 2.5; + description = "A domain listed in the mail is blacklisted in SARBL"; + } + # /SURBL +} diff --git a/install/tpl/rspamd_redis.conf.master b/install/tpl/rspamd_redis.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..b908af9f5ebe0e23293797e234eb9dd455838a01 --- /dev/null +++ b/install/tpl/rspamd_redis.conf.master @@ -0,0 +1 @@ +servers = "127.0.0.1"; \ No newline at end of file diff --git a/install/tpl/rspamd_symbols_antivirus.conf.master b/install/tpl/rspamd_symbols_antivirus.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..8c2d93d89eeacf816ad870f5bab97a7d406cc143 --- /dev/null +++ b/install/tpl/rspamd_symbols_antivirus.conf.master @@ -0,0 +1,15 @@ +subject = "***SPAM*** %s"; +symbols = { + "CLAM_VIRUS" { + weight = 50; + description = "Clamav has found a virus."; + } + "JUST_EICAR" { + weight = 50; + description = "Clamav has found a virus."; + } + "R_DUMMY" { + weight = 0.0; + description = "Dummy symbol"; + } +} \ No newline at end of file diff --git a/install/tpl/rspamd_users.conf.master b/install/tpl/rspamd_users.conf.master new file mode 120000 index 0000000000000000000000000000000000000000..3aa7af31851003f5b742ab52de226af706cf7466 --- /dev/null +++ b/install/tpl/rspamd_users.conf.master @@ -0,0 +1 @@ +../../server/conf/rspamd_users.conf.master \ No newline at end of file diff --git a/install/tpl/rspamd_users.inc.conf.master b/install/tpl/rspamd_users.inc.conf.master new file mode 120000 index 0000000000000000000000000000000000000000..30bb52fd8e22d629bca9e28459d4d04e44e08ea0 --- /dev/null +++ b/install/tpl/rspamd_users.inc.conf.master @@ -0,0 +1 @@ +../../server/conf/rspamd_users.inc.conf.master \ No newline at end of file diff --git a/install/tpl/rspamd_wblist.inc.conf.master b/install/tpl/rspamd_wblist.inc.conf.master new file mode 120000 index 0000000000000000000000000000000000000000..1ab3744b99aa456982f0a360377797543aeca60f --- /dev/null +++ b/install/tpl/rspamd_wblist.inc.conf.master @@ -0,0 +1 @@ +../../server/conf/rspamd_wblist.inc.conf.master \ No newline at end of file diff --git a/install/tpl/rspamd_worker-controller.inc.master b/install/tpl/rspamd_worker-controller.inc.master new file mode 120000 index 0000000000000000000000000000000000000000..dae19323690f604babdb0682108b49f420476fb7 --- /dev/null +++ b/install/tpl/rspamd_worker-controller.inc.master @@ -0,0 +1 @@ +../../server/conf/rspamd_worker-controller.inc.master \ No newline at end of file diff --git a/security/security_settings.ini b/install/tpl/security_settings.ini.master similarity index 100% rename from security/security_settings.ini rename to install/tpl/security_settings.ini.master diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index 406881010ebc6ca33cf74fbaebd312e9804d60e8..c500fb0cc28f1320b33b868febea26fc7e730755 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -38,6 +38,8 @@ homedir_path=/var/vmail maildir_format=maildir dkim_path=/var/lib/amavis/dkim dkim_strength=1024 +content_filter=amavis +rspamd_password= pop3_imap_daemon=courier mail_filter_syntax=maildrop mailuser_uid=5000 @@ -70,6 +72,7 @@ website_symlinks_rel=n network_filesystem=n vhost_conf_dir=/etc/apache2/sites-available vhost_conf_enabled_dir=/etc/apache2/sites-enabled +apache_init_script= nginx_vhost_conf_dir=/etc/nginx/sites-available nginx_vhost_conf_enabled_dir=/etc/nginx/sites-enabled security_level=20 @@ -91,7 +94,6 @@ php_ini_path_apache=/etc/php5/apache2/php.ini php_ini_path_cgi=/etc/php5/cgi/php.ini check_apache_config=y enable_sni=y -enable_spdy=n skip_le_check=n enable_ip_wildcard=y overtraffic_notify_admin=y @@ -102,6 +104,7 @@ php_fpm_ini_path=/etc/php5/fpm/php.ini php_fpm_pool_dir=/etc/php5/fpm/pool.d php_fpm_start_port=9010 php_fpm_socket_dir=/var/lib/php5-fpm +php_default_hide=n php_default_name=Default set_folder_permissions_on_update=n add_web_users_to_sshusers_group=y @@ -116,6 +119,8 @@ overquota_db_notify_admin=y overquota_db_notify_client=y overquota_notify_onok=n logging=yes +php_fpm_reload_mode=reload +php_fpm_default_chroot=n [dns] bind_user=root diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 42a003b9c1179f236ca2e843470bd457d158e5c7..d6dfa18f47f61ed5598c56edb8d6bc81f15732c0 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -16,6 +16,7 @@ webmail_url=/webmail dkim_path=/var/lib/amavis/dkim smtp_enabled=y smtp_host=localhost +enable_welcome_mail=y [monitor] @@ -33,6 +34,8 @@ vhost_aliasdomains=n client_username_web_check_disabled=n backups_include_into_web_quota=n reseller_can_use_options=n +web_php_options=no,fast-cgi,mod,php-fpm +show_aps_menu=n [tools] @@ -54,6 +57,7 @@ tab_change_warning=n use_loadindicator=y use_combobox=y maintenance_mode=n +maintenance_mode_exclude_ips= admin_dashlets_left= admin_dashlets_right= reseller_dashlets_left= @@ -67,3 +71,4 @@ session_timeout=0 session_allow_endless=0 min_password_length=8 min_password_strength=3 +ssh_authentication= diff --git a/install/uninstall.php b/install/uninstall.php index c565d4653d71c2667dfc6c8e6cef70fcfb502450..fdac79d61ec3800f994e8e2e4014ca5e86960399 100644 --- a/install/uninstall.php +++ b/install/uninstall.php @@ -70,31 +70,32 @@ if($do_uninstall == 'yes') { if (!$result) echo "Unable to remove the ispconfig-database-user ".$conf['db_user']." ".mysqli_error($link)."\n"; } mysqli_close($link); - + // Deleting the symlink in /var/www // Apache @unlink("/etc/apache2/sites-enabled/000-ispconfig.vhost"); @unlink("/etc/apache2/sites-available/ispconfig.vhost"); @unlink("/etc/apache2/sites-enabled/000-apps.vhost"); @unlink("/etc/apache2/sites-available/apps.vhost"); - + // nginx @unlink("/etc/nginx/sites-enabled/000-ispconfig.vhost"); @unlink("/etc/nginx/sites-available/ispconfig.vhost"); @unlink("/etc/nginx/sites-enabled/000-apps.vhost"); @unlink("/etc/nginx/sites-available/apps.vhost"); - + // Delete the ispconfig files exec('rm -rf /usr/local/ispconfig'); - + // Delete various other files @unlink("/usr/local/bin/ispconfig_update.sh"); @unlink("/usr/local/bin/ispconfig_update_from_svn.sh"); @unlink("/var/spool/mail/ispconfig"); @unlink("/var/www/ispconfig"); - @unlink("/var/www/php-fcgi-scripts/ispconfig"); + @exec('chattr -i /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); @unlink("/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter"); - + @unlink("/var/www/php-fcgi-scripts/ispconfig"); + echo "Backups in /var/backup/ and log files in /var/log/ispconfig are not deleted."; echo "Finished uninstalling.\n"; diff --git a/install/update.php b/install/update.php index 62e8d5ef4a73f4a18fd32d58108146c3cec25eee..3b3cf969ef3cefa8e8ad76c6eed31a0da75969e0 100644 --- a/install/update.php +++ b/install/update.php @@ -59,6 +59,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. error_reporting(E_ALL|E_STRICT); define('INSTALLER_RUN', true); +define('INSTALLER_UPDATE', true); //** The banner on the command line echo "\n\n".str_repeat('-', 80)."\n"; @@ -292,6 +293,22 @@ if($conf['mysql']['master_slave_setup'] == 'y') { */ checkDbHealth(); + +/* + * Check command line mysql login + */ +if( !empty($conf["mysql"]["admin_password"]) ) { + $cmd = "mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." --force -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." -D ".escapeshellarg($conf['mysql']['database'])." -e ". escapeshellarg('SHOW DATABASES'); +} else { + $cmd = "mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." --force -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -P ".escapeshellarg($conf['mysql']['port'])." -D ".escapeshellarg($conf['mysql']['database'])." -e ". escapeshellarg('SHOW DATABASES'); +} +$retval = 0; +$retout = array(); +exec($cmd, $retout, $retval); +if($retval != 0) { + die("Unable to call mysql command line with credentials from mysql_clientdb.conf\n"); +} + /* * dump the new Database and reconfigure the server.ini */ @@ -396,6 +413,12 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel $inst->configure_amavis(); } + //** Configure Rspamd + if($conf['rspamd']['installed'] == true && $inst->reconfigure_app('Rspamd', $reconfigure_services_answer)) { + swriteln('Configuring Rspamd'); + $inst->configure_rspamd(); + } + //** Configure Getmail if ($inst->reconfigure_app('Getmail', $reconfigure_services_answer)) { swriteln('Configuring Getmail'); @@ -531,6 +554,7 @@ if($reconfigure_services_answer == 'yes') { if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); + if($conf['rspamd']['installed'] == true && $conf['rspamd']['init_script'] != '') system($inst->getinitcommand($conf['rspamd']['init_script'], 'restart')); if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); if($conf['courier']['installed'] == true){ if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); @@ -543,7 +567,14 @@ if($reconfigure_services_answer == 'yes') { if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &'); } if($conf['services']['web'] || $inst->install_ispconfig_interface) { - if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart')); + if($conf['webserver']['server_type'] == 'apache') { + // If user has configured a custom Apache init script, use that. Otherwise use the default auto-detected init script + if(!empty($conf['server_config']['web']['apache_init_script'])) { + system($inst->getinitcommand($conf['server_config']['web']['apache_init_script'], 'restart')); + } elseif(!empty($conf['apache']['init_script'])) { + system($inst->getinitcommand($conf['apache']['init_script'], 'restart')); + } + } //* Reload is enough for nginx if($conf['webserver']['server_type'] == 'nginx'){ if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload')); diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index ccc80fd25435f789d1b3aec4ee148d768b9b2947..be6c15666c0d4facb9acbe2f2ebcfaab54f2ace9 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -78,7 +78,7 @@ class app { $this->uses($prop); if(property_exists($this, $prop)) return $this->{$prop}; - else return null; + else trigger_error('Undefined property ' . $prop . ' of class app', E_USER_WARNING); } public function __destruct() { @@ -248,7 +248,7 @@ class app { } $this->_language_inc = 1; } - if(isset($this->_wb[$text]) && $this->wb[$text] !== '') { + if(isset($this->_wb[$text]) && $this->_wb[$text] !== '') { $text = $this->_wb[$text]; } else { if($this->_conf['debug_language']) { @@ -333,9 +333,26 @@ class app { $this->tpl->setVar('globalsearch_noresults_limit_txt', $this->lng('globalsearch_noresults_limit_txt')); $this->tpl->setVar('globalsearch_searchfield_watermark_txt', $this->lng('globalsearch_searchfield_watermark_txt')); } + + public function is_under_maintenance() { + $system_config_misc = $this->getconf->get_global_config('misc'); + $maintenance_mode = 'n'; + $maintenance_mode_exclude_ips = []; + + if (!empty($system_config_misc['maintenance_mode'])) { + $maintenance_mode = $system_config_misc['maintenance_mode']; + } + + if (!empty($system_config_misc['maintenance_mode_exclude_ips'])) { + $maintenance_mode_exclude_ips = array_map('trim', explode(',', $system_config_misc['maintenance_mode_exclude_ips'])); + } + + return 'y' === $maintenance_mode && !in_array($_SERVER['REMOTE_ADDR'], $maintenance_mode_exclude_ips); + } private function get_cookie_domain() { - $proxy_panel_allowed = $this->getconf->get_security_config('permissions')['reverse_proxy_panel_allowed']; + $sec_config = $this->getconf->get_security_config('permissions'); + $proxy_panel_allowed = $sec_config['reverse_proxy_panel_allowed']; if ($proxy_panel_allowed == 'all') { return ''; } @@ -355,8 +372,8 @@ class app { $forwarded_host = (isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : null ); if($forwarded_host !== null && $forwarded_host !== $cookie_domain) { // Just check for complete domain name and not auto subdomains - $sql = "SELECT domain_id from web_domain where domain = '$forwarded_host'"; - $recs = $this->db->queryOneRecord($sql); + $sql = "SELECT domain_id from web_domain where domain = ?"; + $recs = $this->db->queryOneRecord($sql, $forwarded_host); if($recs !== null) { $cookie_domain = $forwarded_host; } diff --git a/interface/lib/classes/IDS/Config/Config.ini.php b/interface/lib/classes/IDS/Config/Config.ini.php index 080055298d78b6b12fa22c67a9d8a7910d4c1281..19af5d59bdd5331767abfd8f28fb46954bef08d2 100644 --- a/interface/lib/classes/IDS/Config/Config.ini.php +++ b/interface/lib/classes/IDS/Config/Config.ini.php @@ -47,6 +47,7 @@ ; exceptions[] = POST.website_symlinks ; exceptions[] = POST.vhost_conf_dir ; exceptions[] = POST.vhost_conf_enabled_dir + ; exceptions[] = POST.apache_init_script ; exceptions[] = POST.nginx_vhost_conf_dir ; exceptions[] = POST.nginx_vhost_conf_enabled_dir ; exceptions[] = POST.php_open_basedir diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index 8a764a9c5c776618156be1023cdb5ca2a9f4f590..b1ebf9d189520f667c06af8c56c3202d788635a4 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -340,6 +340,8 @@ class ApsGUIController extends ApsBase "remote_access" => $mysql_db_remote_access, "remote_ips" => $mysql_db_remote_ips, "backup_copies" => $websrv['backup_copies'], + "backup_format_web" => $websrv['backup_format_web'], + "backup_format_db" => $websrv['backup_format_db'], "active" => 'y', "backup_interval" => $websrv['backup_interval'] ); @@ -637,11 +639,27 @@ class ApsGUIController extends ApsBase // The location might be empty but the DB return must not be false! if($location_for_domain) $used_path .= $location_for_domain['value']; + // If user is trying to install into exactly the same path, give an error if($new_path == $used_path) { $temp_errstr = $app->lng('error_used_location'); break; } + + // If the new path is _below_ an existing path, give an error because the + // installation will delete the files of the existing APS installation + if (mb_substr($used_path, 0, mb_strlen($new_path)) === $new_path) { + $temp_errstr = $app->lng('error_used_location'); + break; + } + + // If the new path is _within_ an existing path, give an error. Even if + // installation would proceed fine in theory, deleting the "lower" package + // in the future would also inadvertedly delete the "nested" package + if (mb_substr($new_path, 0, mb_strlen($used_path)) === $used_path) { + $temp_errstr = $app->lng('error_used_location'); + break; + } } } } diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 6658c4c116366177ca09aefb891885cf0ae7dfa2..5daabd50b35a6ffdfc3e6933e7314c9ecd90cb99 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -141,12 +141,18 @@ class auth { } } - public function check_module_permissions($module) { + + /** + * Check that the user has access to the given module. + * + * @return boolean + */ + public function verify_module_permissions($module) { // Check if the current user has the permissions to access this module $module = trim(preg_replace('@\s+@', '', $module)); $user_modules = explode(',',$_SESSION["s"]["user"]["modules"]); + $can_use_module = false; if(strpos($module, ',') !== false){ - $can_use_module = false; $tmp_modules = explode(',', $module); if(is_array($tmp_modules) && !empty($tmp_modules)){ foreach($tmp_modules as $tmp_module){ @@ -158,17 +164,21 @@ class auth { } } } - if(!$can_use_module){ - // echo "LOGIN_REDIRECT:/index.php"; - header("Location: /index.php"); - exit; - } - } else { - if(!in_array($module,$user_modules)) { - // echo "LOGIN_REDIRECT:/index.php"; - header("Location: /index.php"); - exit; - } + } + elseif(in_array($module,$user_modules)) { + $can_use_module = true; + } + return $can_use_module; + } + + /** + * Check that the user has access to the given module, redirect and exit on failure. + */ + public function check_module_permissions($module) { + if(!$this->verify_module_permissions($module)) { + // echo "LOGIN_REDIRECT:/index.php"; + header("Location: /index.php"); + exit; } } @@ -231,12 +241,27 @@ class auth { if($charset != 'UTF-8') { $cleartext_password = mb_convert_encoding($cleartext_password, $charset, 'UTF-8'); } - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; + + if(defined('CRYPT_SHA512') && CRYPT_SHA512 == 1) { + $salt = '$6$rounds=5000$'; + $salt_length = 16; + } elseif(defined('CRYPT_SHA256') && CRYPT_SHA256 == 1) { + $salt = '$5$rounds=5000$'; + $salt_length = 16; + } else { + $salt = '$1$'; + $salt_length = 12; } - $salt.="$"; + + if(function_exists('openssl_random_pseudo_bytes')) { + $salt .= substr(bin2hex(openssl_random_pseudo_bytes($salt_length)), 0, $salt_length); + } else { + $base64_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./'; + for($n = 0; $n < $salt_length; $n++) { + $salt .= $base64_alphabet[mt_rand(0, 63)]; + } + } + $salt .= "$"; return crypt($cleartext_password, $salt); } @@ -253,16 +278,27 @@ class auth { return array('csrf_id' => $_csrf_id,'csrf_key' => $_csrf_key); } - public function csrf_token_check() { + public function csrf_token_check($method = 'POST') { global $app; - if(isset($_POST) && is_array($_POST)) { + if($method == 'POST') { + $input_vars = $_POST; + } elseif ($method == 'GET') { + $input_vars = $_GET; + } else { + $app->error('Unknown CSRF verification method.'); + } + + //print_r($input_vars); + //die(print_r($_SESSION['_csrf'])); + + if(isset($input_vars) && is_array($input_vars)) { $_csrf_valid = false; - if(isset($_POST['_csrf_id']) && isset($_POST['_csrf_key'])) { - $_csrf_id = trim($_POST['_csrf_id']); - $_csrf_key = trim($_POST['_csrf_key']); + if(isset($input_vars['_csrf_id']) && isset($input_vars['_csrf_key'])) { + $_csrf_id = trim($input_vars['_csrf_id']); + $_csrf_key = trim($input_vars['_csrf_key']); if(isset($_SESSION['_csrf']) && isset($_SESSION['_csrf'][$_csrf_id]) && isset($_SESSION['_csrf_timeout']) && isset($_SESSION['_csrf_timeout'][$_csrf_id])) { - if($_SESSION['_csrf'][$_csrf_id] === $_csrf_key && $_SESSION['_csrf_timeout'] >= time()) $_csrf_valid = true; + if($_SESSION['_csrf'][$_csrf_id] === $_csrf_key && $_SESSION['_csrf_timeout'][$_csrf_id] >= time()) $_csrf_valid = true; } } if($_csrf_valid !== true) { diff --git a/interface/lib/classes/cmstree.inc.php b/interface/lib/classes/cmstree.inc.php deleted file mode 100644 index ead780ebf26c65fd01d97a10a5f0f640ca54e9be..0000000000000000000000000000000000000000 --- a/interface/lib/classes/cmstree.inc.php +++ /dev/null @@ -1,117 +0,0 @@ -<? - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -class nodetree { - public $childs; - public $btext; - public $id; -} - -class cmstree -{ - //TODO is this used ?? - pedro - //var $_table; - - // $vars enth�lt: - // - parent :id des Elternelementes - // - type :n = node, i = item - // - doctype_id :id des Dokumententyps, wenn nicht im content Feld - // - title :Titel des Eintrages - // - status :1 = ok, d = delete - // - icon :icon im node-tree, optional - // - modul :modul des Eintrages, noch nicht verwendet - // - doc_id :id des zugeh�rigen Dokumentes - - public function node_list() - { - global $app; - - $nodes = $app->db->queryAllRecords('SELECT * FROM media_cat order by sort, name'); - - $optionlist = array(); - $my0 = new nodetree(); - - foreach($nodes as $row) { - - $id = 'my'.$row['media_cat_id']; - $btext = $row['name']; - $ordner = 'my'.$row['parent']; - if(!is_object($$id)) $$id = new nodetree(); - $$id->btext = $btext; - $$id->id = $row['media_cat_id']; - - if(is_object($$ordner)) { - $$ordner->childs[] = &$$id; - } else { - $$ordner = new nodetree(); - $$ordner->childs[] = &$$id; - } - } - - $this->ptree($my0, 0, $optionlist); - return is_array($nodes) ? $optionlist : false; - } - - private function ptree($myobj, $tiefe, &$optionlist){ - global $_SESSION; - $tiefe += 1; - $id = $myobj->id; - - if(is_array($myobj->childs) and ($_SESSION['s']['cat_open'][$id] == 1 or $tiefe <= 1)) { - foreach($myobj->childs as $val) { - // kategorie => str_repeat('- ',$tiefe) . $val->btext, - - // Ergebnisse Formatieren - /* - if($tiefe == 0) { - $kategorie = "<div class='mnuLevel".$tiefe."'><a href='index.php?pg=liste&kat=".$val->id."' class='navKategorien'>".$val->btext."</a></div>"; - } elseif ($tiefe == 1) { - $kategorie = "<div class='mnuLevel".$tiefe."'><img src='images/listenpunkt.gif'> <a href='index.php?pg=liste&kat=".$val->id."' class='navKategorien'>".$val->btext."</a></div>"; - } else { - $kategorie = "<div class='mnuLevel".$tiefe."'> <a href='index.php?pg=liste&kat=".$val->id."' class='navKategorien'>".str_repeat('- ',$tiefe - 1) . $val->btext."</a></div>"; - } - */ - $val_id = $val->id; - if($_SESSION['s']['cat_open'][$val_id] == 1) { - $kategorie = "<div class='mnuLevel".$tiefe."'> <a href='treenavi.php?kat=".$val->id."' class='navtext' onclick=\"parent.content.location='media_list.php?search_media_cat_id=".$val->id."'\" style=\"text-decoration: none;\"><img src='../themes/default/icons/folder.png' border='0'> ".$val->btext."</a></div>"; - } else { - $kategorie = "<div class='mnuLevel".$tiefe."'> <a href='treenavi.php?kat=".$val->id."' class='navtext' onclick=\"parent.content.location='media_list.php?search_media_cat_id=".$val->id."'\" style=\"text-decoration: none;\"><img src='../themes/default/icons/folder_closed.png' border='0'> ".$val->btext."</a></div>"; - } - - $optionlist[] = array( media_cat => $kategorie, - media_cat_id => $val->id, - depth => $tiefe); - $this->ptree($val, $tiefe, $optionlist); - } - } - } - -} -?> diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php index 484d0fa055afbc32843039811e2622763239d6ab..3158fdde1a0e0183548a832438793819626fd366 100644 --- a/interface/lib/classes/custom_datasource.inc.php +++ b/interface/lib/classes/custom_datasource.inc.php @@ -72,7 +72,7 @@ class custom_datasource { $client = $app->db->queryOneRecord("SELECT default_slave_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); $sql = "SELECT server_id,server_name FROM server WHERE server_id = ?"; } else { - $sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 ORDER BY server_name AND mirror_server_id = 0"; + $sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 AND mirror_server_id = 0 ORDER BY server_name"; } $records = $app->db->queryAllRecords($sql, $client['default_slave_dnsserver']); $records_new = array(); @@ -161,9 +161,10 @@ class custom_datasource { $sql = "SELECT $server_type as server_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?"; $client = $app->db->queryOneRecord($sql, $client_group_id); if($client['server_id'] > 0) { - //* Select the default server for the client - $sql = "SELECT server_id,server_name FROM server WHERE server_id = ?"; - $records = $app->db->queryAllRecords($sql, $client['server_id']); + ///* Select the available servers for the client + $clientservers = explode(',',$client['server_id']); + $sql = "SELECT server_id,server_name FROM server WHERE server_id IN ? ORDER BY server_name"; + $records = $app->db->queryAllRecords($sql,$clientservers); } else { //* Not able to find the clients defaults, use this as fallback and add a warning message to the log $app->log('Unable to find default server for client in custom_datasource.inc.php', 1); diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 7d7b56898060421241ccd396bd70fb4e30ef7ba4..014feec8c319cef6fa5585c5cc91fc3185cc5490 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -258,6 +258,8 @@ class db private function _query($sQuery = '') { global $app; + + $aArgs = func_get_args(); if ($sQuery == '') { $this->_sqlerror('Keine Anfrage angegeben / No query given'); @@ -272,7 +274,7 @@ class db if(!is_object($this->_iConnId)) { $this->_iConnId = mysqli_init(); } - if(!mysqli_real_connect($this->_isConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { + if(!mysqli_real_connect($this->_iConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { if(mysqli_connect_errno() == '111') { // server is not available if($try > 9) { @@ -297,7 +299,6 @@ class db } } while($ok == false); - $aArgs = func_get_args(); $sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs); $this->securityScan($sQuery); $this->_iQueryId = mysqli_query($this->_iConnId, $sQuery); @@ -353,10 +354,17 @@ class db * @return array result row or NULL if none found */ public function queryOneRecord($sQuery = '') { - if(!preg_match('/limit \d+\s*(,\s*\d+)?$/i', $sQuery)) $sQuery .= ' LIMIT 0,1'; - + $aArgs = func_get_args(); - $oResult = call_user_func_array(array(&$this, 'query'), $aArgs); + if(!empty($aArgs)) { + $sQuery = array_shift($aArgs); + if($sQuery && !preg_match('/limit \d+(\s*,\s*\d+)?$/i', $sQuery)) { + $sQuery .= ' LIMIT 0,1'; + } + array_unshift($aArgs, $sQuery); + } + + $oResult = call_user_func_array([&$this, 'query'], $aArgs); if(!$oResult) return null; $aReturn = $oResult->get(); @@ -709,7 +717,7 @@ class db if($diff_num > 0) { $diffstr = serialize($diffrec_full); - if(isset($_SESSION)) { + if(!empty($_SESSION['s']['user']['username'])) { $username = $_SESSION['s']['user']['username']; } else { $username = 'admin'; @@ -1300,7 +1308,7 @@ class fakedb_result { if(!is_array($this->aLimitedData)) return $aItem; - if(list($vKey, $aItem) = each($this->aLimitedData)) { + foreach($this->aLimitedData as $vKey => $aItem) { if(!$aItem) $aItem = null; } return $aItem; diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 28ab9ce384da1aad506f2bd7468caa40b0aec7d1..03e331f0f14c22db8632e191e9e6a5346401b693 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -451,9 +451,9 @@ class functions { if(file_exists($id_rsa_file)) unset($id_rsa_file); if(file_exists($id_rsa_pub_file)) unset($id_rsa_pub_file); if(!file_exists($id_rsa_file) && !file_exists($id_rsa_pub_file)) { - exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f '.$id_rsa_file.' -N ""'); + $app->system->exec_safe('ssh-keygen -t rsa -C ? -f ? -N ""', $username.'-rsa-key-'.time(), $id_rsa_file); $app->db->query("UPDATE client SET created_at = UNIX_TIMESTAMP(), id_rsa = ?, ssh_rsa = ? WHERE client_id = ?", @file_get_contents($id_rsa_file), @file_get_contents($id_rsa_pub_file), $client_id); - exec('rm -f '.$id_rsa_file.' '.$id_rsa_pub_file); + $app->system->exec_safe('rm -f ? ?', $id_rsa_file, $id_rsa_pub_file); } else { $app->log("Failed to create SSH keypair for ".$username, LOGLEVEL_WARN); } diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php index ef9e0702d212db0b3a773b4c5a0dc900af8e4153..bbb57d60147f4478ec4dca1ba1ccd859fd2edd6f 100644 --- a/interface/lib/classes/getconf.inc.php +++ b/interface/lib/classes/getconf.inc.php @@ -65,7 +65,7 @@ class getconf { } else { $app->uses('ini_parser'); $security_config_path = '/usr/local/ispconfig/security/security_settings.ini'; - if(!is_file($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); + if(!is_readable($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); $this->security_config = $app->ini_parser->parse_ini_string(file_get_contents($security_config_path)); return ($section == '') ? $this->security_config : $this->security_config[$section]; diff --git a/interface/lib/classes/ids.inc.php b/interface/lib/classes/ids.inc.php index abdf32b30251543045b0302158378748eba17d8b..6d197264178f05c533a5e5dfa1049e95e39ddcc4 100644 --- a/interface/lib/classes/ids.inc.php +++ b/interface/lib/classes/ids.inc.php @@ -68,7 +68,7 @@ class ids { // Get whitelist $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist'; - if(is_file('/usr/local/ispconfig/security/ids.whitelist.custom')) $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist.custom'; + if(is_readable('/usr/local/ispconfig/security/ids.whitelist.custom')) $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist.custom'; if(!is_file($whitelist_path)) $whitelist_path = realpath(ISPC_ROOT_PATH.'/../security/ids.whitelist'); $whitelist_lines = file($whitelist_path); @@ -91,7 +91,7 @@ class ids { // Get HTML fields $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield'; - if(is_file('/usr/local/ispconfig/security/ids.htmlfield.custom')) $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield.custom'; + if(is_readable('/usr/local/ispconfig/security/ids.htmlfield.custom')) $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield.custom'; if(!is_file($htmlfield_path)) $htmlfield_path = realpath(ISPC_ROOT_PATH.'/../security/ids.htmlfield'); $htmlfield_lines = file($htmlfield_path); diff --git a/interface/lib/classes/ispcmail.inc.php b/interface/lib/classes/ispcmail.inc.php index b818e1e44a6732db717bee6560001a6ebba9ef35..fbf5f84dcae2f0d8104f1cb540c66d5a69dadf49 100644 --- a/interface/lib/classes/ispcmail.inc.php +++ b/interface/lib/classes/ispcmail.inc.php @@ -169,7 +169,7 @@ class ispcmail { $this->smtp_host = $value; break; case 'smtp_port': - $this->smtp_port = $value; + if(intval($value) > 0) $this->smtp_port = $value; break; case 'smtp_user': $this->smtp_user = $value; @@ -586,8 +586,8 @@ class ispcmail { */ private function _smtp_login() { $this->_smtp_conn = fsockopen(($this->smtp_crypt == 'ssl' ? 'tls://' : '') . $this->smtp_host, $this->smtp_port, $errno, $errstr, 30); - $response = fgets($this->_smtp_conn, 515); if(empty($this->_smtp_conn)) return false; + $response = fgets($this->_smtp_conn, 515); //Say Hello to SMTP if($this->smtp_helo == '') $this->detectHelo(); @@ -599,10 +599,19 @@ class ispcmail { fputs($this->_smtp_conn, 'STARTTLS' . $this->_crlf); fgets($this->_smtp_conn, 515); + $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT; + + if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) { + $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; + $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT; + } stream_context_set_option($this->_smtp_conn, 'ssl', 'verify_host', false); stream_context_set_option($this->_smtp_conn, 'ssl', 'verify_peer', false); + stream_context_set_option($this->_smtp_conn, 'ssl', 'verify_peer_name', false); stream_context_set_option($this->_smtp_conn, 'ssl', 'allow_self_signed', true); - stream_socket_enable_crypto($this->_smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); + if (stream_socket_enable_crypto($this->_smtp_conn, true, $crypto_method) != true) { + return false; + } } //AUTH LOGIN diff --git a/interface/lib/classes/json_handler.inc.php b/interface/lib/classes/json_handler.inc.php index de8dd5ba0dd254053821ae910f3a868ba943597f..fb0811d31420f6dd6833857194a1914d6543f242 100644 --- a/interface/lib/classes/json_handler.inc.php +++ b/interface/lib/classes/json_handler.inc.php @@ -30,45 +30,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -class ISPConfigJSONHandler { - private $methods = array(); - private $classes = array(); - - public function __construct() { - global $app; - - // load main remoting file - $app->load('remoting'); - - // load all remote classes and get their methods - $dir = dirname(realpath(__FILE__)) . '/remote.d'; - $d = opendir($dir); - while($f = readdir($d)) { - if($f == '.' || $f == '..') continue; - if(!is_file($dir . '/' . $f) || substr($f, strrpos($f, '.')) != '.php') continue; - - $name = substr($f, 0, strpos($f, '.')); - - include $dir . '/' . $f; - $class_name = 'remoting_' . $name; - if(class_exists($class_name, false)) { - $this->classes[$class_name] = new $class_name(); - foreach(get_class_methods($this->classes[$class_name]) as $method) { - $this->methods[$method] = $class_name; - } - } - } - closedir($d); - - // add main methods - $this->methods['login'] = 'remoting'; - $this->methods['logout'] = 'remoting'; - $this->methods['get_function_list'] = 'remoting'; - - // create main class - $this->classes['remoting'] = new remoting(array_keys($this->methods)); - } - +class ISPConfigJSONHandler extends ISPConfigRemotingHandlerBase { private function _return_json($code, $message, $data = false) { $ret = new stdClass; $ret->code = $code; diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php index a13c3fdb739691b6f49f494a1d0de15f1aa406a6..86eebd3d6465922cca3f236e2dd5123209674b80 100644 --- a/interface/lib/classes/listform_actions.inc.php +++ b/interface/lib/classes/listform_actions.inc.php @@ -39,6 +39,7 @@ class listform_actions { private $sortKeys; private function _sort($aOne, $aTwo) { + $suffixes=array('k' => 1, 'M' => 1024, 'G' => 1048576, 'T' => 1099511627776); if(!is_array($aOne) || !is_array($aTwo)) return 0; if(!is_array($this->sortKeys)) $this->sortKeys = array($this->sortKeys); @@ -49,6 +50,15 @@ class listform_actions { } $a = $aOne[$sKey]; $b = $aTwo[$sKey]; + + if(preg_match('/(\d+\.?\d*) ([kMGT])B/', $a, $match)) { + $a = $match[1] * $suffixes[$match[2]]; + } + + if(preg_match('/(\d+\.?\d*) ([kMGT])B/', $b, $match)) { + $b = $match[1] * $suffixes[$match[2]]; + } + if(is_string($a)) $a = strtolower($a); if(is_string($b)) $b = strtolower($b); if($a < $b) return $sDir == 'DESC' ? 1 : -1; @@ -130,12 +140,18 @@ class listform_actions { // Getting Datasets from DB $records = $app->db->queryAllRecords($this->getQueryString($php_sort)); + $csrf_token = $app->auth->csrf_token_get($app->listform->listDef['name']); + $_csrf_id = $csrf_token['csrf_id']; + $_csrf_key = $csrf_token['csrf_key']; + $this->DataRowColor = "#FFFFFF"; $records_new = array(); if(is_array($records)) { $this->idx_key = $app->listform->listDef["table_idx"]; - foreach($records as $rec) { - $records_new[] = $this->prepareDataRow($rec); + foreach($records as $key => $rec) { + $records_new[$key] = $this->prepareDataRow($rec); + $records_new[$key]['csrf_id'] = $_csrf_id; + $records_new[$key]['csrf_key'] = $_csrf_key; } } @@ -173,10 +189,11 @@ class listform_actions { //* substitute value for select fields if(is_array($app->listform->listDef['item']) && count($app->listform->listDef['item']) > 0) { foreach($app->listform->listDef['item'] as $field) { + if($rec['active'] == 'n') $rec['warn_inactive'] = 'y'; $key = $field['field']; if(isset($field['formtype']) && $field['formtype'] == 'SELECT') { if(strtolower($rec[$key]) == 'y' or strtolower($rec[$key]) == 'n') { - // Set a additional image variable for bolean fields + // Set a additional image variable for boolean fields $rec['_'.$key.'_'] = (strtolower($rec[$key]) == 'y')?'x16/tick_circle.png':'x16/cross_circle.png'; } //* substitute value for select field @@ -264,7 +281,7 @@ class listform_actions { foreach($limits as $key => $val){ $options .= '<option value="'.$key.'" '.(isset($_SESSION['search']['limit']) && $_SESSION['search']['limit'] == $key ? 'selected="selected"':'' ).(!isset($_SESSION['search']['limit']) && $key == '15' ? 'selected="selected"':'').'>'.$val.'</option>'; } - $app->tpl->setVar('search_limit', '<select name="search_limit" class="search_limit">'.$options.'</select>'); + $app->tpl->setVar('search_limit', '<select name="search_limit" class="search_limit" style="width: 60px;">'.$options.'</select>'); $app->tpl->setVar('toolsarea_head_txt', $app->lng('toolsarea_head_txt')); $app->tpl->setVar($app->listform->wordbook); diff --git a/interface/lib/classes/plugin_backuplist.inc.php b/interface/lib/classes/plugin_backuplist.inc.php index e96be012e3d6847d43ba990cd9b79c82c3f247f3..9e21dc6ba6a59b5eef2d77af2e242a00378bbf4e 100644 --- a/interface/lib/classes/plugin_backuplist.inc.php +++ b/interface/lib/classes/plugin_backuplist.inc.php @@ -37,6 +37,34 @@ class plugin_backuplist extends plugin_base { var $formdef; var $options; + /** + * Process request to make a backup. This request is triggered manually by the user in the ISPConfig interface. + * @param string $message + * @param string $error + * @param string[] $wb language text + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @uses backup_plugin::make_backup_callback() this method is called later in the plugin to run the backup + */ + protected function makeBackup(&$message, &$error, $wb) + { + global $app; + + $mode = $_GET['make_backup']; + $action_type = ($mode == 'web') ? 'backup_web_files' : 'backup_database'; + $domain_id = intval($this->form->id); + + $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = ? AND action_param = ?"; + $tmp = $app->db->queryOneRecord($sql, $action_type, $domain_id); + if ($tmp['number'] == 0) { + $server_id = $this->form->dataRecord['server_id']; + $message .= $wb['backup_info_txt']; + $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) VALUES (?, UNIX_TIMESTAMP(), ?, ?, 'pending', '')"; + $app->db->query($sql, $server_id, $action_type, $domain_id); + } else { + $error .= $wb['backup_pending_txt']; + } + } + function onShow() { global $app; @@ -52,6 +80,10 @@ class plugin_backuplist extends plugin_base { $message = ''; $error = ''; + if (isset($_GET['make_backup'])) { + $this->makeBackup($message, $error, $wb); + } + if(isset($_GET['backup_action'])) { $backup_id = $app->functions->intval($_GET['backup_id']); @@ -137,7 +169,30 @@ class plugin_backuplist extends plugin_base { $rec["bgcolor"] = $bgcolor; $rec['date'] = date($app->lng('conf_format_datetime'), $rec['tstamp']); - $rec['backup_type'] = $wb[('backup_type_'.$rec['backup_type'])]; + $backup_format = $rec['backup_format']; + if (empty($backup_format)) { + //We have a backup from old version of ISPConfig + switch ($rec['backup_type']) { + case 'mysql': + $backup_format = 'gzip'; + break; + case 'web': + $backup_format = ($rec['backup_mode'] == 'userzip') ? 'zip' : 'tar_gzip'; + break; + default: + $app->log('Unsupported backup type "' . $rec['backup_type'] . '" for backup id ' . $rec['backup_id'], LOGLEVEL_ERROR); + break; + } + } + $rec['backup_type'] = $wb[('backup_type_' . $rec['backup_type'])]; + $backup_format = (!empty($backup_format)) ? $wb[('backup_format_' . $backup_format . '_txt')] : $wb["backup_format_unknown_txt"]; + if (empty($backup_format)) + $backup_format = $wb["backup_format_unknown_txt"]; + + $rec['backup_format'] = $backup_format; + $rec['backup_encrypted'] = empty($rec['backup_password']) ? $wb["no_txt"] : $wb["yes_txt"]; + $backup_manual_prefix = 'manual-'; + $rec['backup_job'] = (substr($rec['filename'], 0, strlen($backup_manual_prefix)) == $backup_manual_prefix) ? $wb["backup_job_manual_txt"] : $wb["backup_job_auto_txt"]; $rec['download_available'] = true; if($rec['server_id'] != $web['server_id']) $rec['download_available'] = false; diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php index bd0aa0e160105701a956f69780c95daa6b18dc2a..ced308b2e5a23f57bd1962d7a5e5df9337fac7b6 100644 --- a/interface/lib/classes/plugin_listview.inc.php +++ b/interface/lib/classes/plugin_listview.inc.php @@ -123,6 +123,10 @@ class plugin_listview extends plugin_base { $lng_file = "lib/lang/".$app->functions->check_language($_SESSION["s"]["language"])."_".$app->listform->listDef['name']."_list.lng"; include $lng_file; $listTpl->setVar($wb); + + $csrf_token = $app->auth->csrf_token_get($app->listform->listDef['name']); + $_csrf_id = $csrf_token['csrf_id']; + $_csrf_key = $csrf_token['csrf_key']; // Get the data @@ -157,6 +161,10 @@ class plugin_listview extends plugin_base { // The variable "id" contains always the index field $rec["id"] = $rec[$idx_key]; $rec["delete_confirmation"] = $wb['delete_confirmation']; + + // CSRF Token + $rec["csrf_id"] = $_csrf_id; + $rec["csrf_key"] = $_csrf_key; $records_new[] = $rec; } diff --git a/interface/lib/classes/quota_lib.inc.php b/interface/lib/classes/quota_lib.inc.php index 3946b216dd1af6cfe7da05e292a915164e5c0ffa..3bae97f046ada93cb7c701dfb5d52ffa58e7ad8f 100644 --- a/interface/lib/classes/quota_lib.inc.php +++ b/interface/lib/classes/quota_lib.inc.php @@ -71,11 +71,11 @@ class quota_lib { $sites[$i]['hard'] .= ' KB'; } - if($sites[$i]['soft'] == " KB") $sites[$i]['soft'] = $app->lng('unlimited'); - if($sites[$i]['hard'] == " KB") $sites[$i]['hard'] = $app->lng('unlimited'); + if($sites[$i]['soft'] == " KB") $sites[$i]['soft'] = $app->lng('unlimited_txt'); + if($sites[$i]['hard'] == " KB") $sites[$i]['hard'] = $app->lng('unlimited_txt'); - if($sites[$i]['soft'] == '0 B' || $sites[$i]['soft'] == '0 KB' || $sites[$i]['soft'] == '0') $sites[$i]['soft'] = $app->lng('unlimited'); - if($sites[$i]['hard'] == '0 B' || $sites[$i]['hard'] == '0 KB' || $sites[$i]['hard'] == '0') $sites[$i]['hard'] = $app->lng('unlimited'); + if($sites[$i]['soft'] == '0 B' || $sites[$i]['soft'] == '0 KB' || $sites[$i]['soft'] == '0') $sites[$i]['soft'] = $app->lng('unlimited_txt'); + if($sites[$i]['hard'] == '0 B' || $sites[$i]['hard'] == '0 KB' || $sites[$i]['hard'] == '0') $sites[$i]['hard'] = $app->lng('unlimited_txt'); /* if(!strstr($sites[$i]['used'],'M') && !strstr($sites[$i]['used'],'K')) $sites[$i]['used'].= ' B'; @@ -266,7 +266,7 @@ class quota_lib { if($used_ratio >= 1) $emails[$i]['display_colour'] = '#cc0000'; if($emails[$i]['quota'] == 0){ - $emails[$i]['quota'] = $app->lng('unlimited'); + $emails[$i]['quota'] = $app->lng('unlimited_txt'); } else { $emails[$i]['quota'] = round($emails[$i]['quota'] / 1048576, 1).' MB'; } @@ -327,7 +327,7 @@ class quota_lib { if($used_ratio >= 1) $databases[$i]['display_colour'] = '#cc0000'; if($databases[$i]['database_quota'] == 0){ - $databases[$i]['database_quota'] = $app->lng('unlimited'); + $databases[$i]['database_quota'] = $app->lng('unlimited_txt'); } else { $databases[$i]['database_quota'] = $databases[$i]['database_quota'] . ' MB'; } diff --git a/interface/lib/classes/remote.d/admin.inc.php b/interface/lib/classes/remote.d/admin.inc.php index 793f9ed33966874010ecf7f6d50c618f06d6db3d..479b991b7b77d53595a69cf67f51c39ee71840ef 100644 --- a/interface/lib/classes/remote.d/admin.inc.php +++ b/interface/lib/classes/remote.d/admin.inc.php @@ -131,11 +131,10 @@ class remoting_admin extends remoting { /** Get the values of the system configuration @param int session id - @param string section of the config field in the table. Could be 'web', 'dns', 'mail', 'dns', 'cron', etc - @param string key of the option that you want to set - @param string option value that you want to set + @param string section of the config field in the table. Could be 'web', 'dns', 'mail', 'dns', 'cron', etc + @param string|null key of the option that you want to get */ - public function system_config_get($session_id, $section, $key) { + public function system_config_get($session_id, $section, $key = null) { global $app; if(!$this->checkPerm($session_id, 'system_config_get')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php index 50dda4825577555eac85e0ca56891b866db1352f..c2f8789ed132f94d53d3b67168df2cb3cbc0ec22 100644 --- a/interface/lib/classes/remote.d/aps.inc.php +++ b/interface/lib/classes/remote.d/aps.inc.php @@ -43,8 +43,7 @@ class remoting_aps extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - - require_once '../../../lib/config.inc.php'; + $app->load('aps_crawler'); $aps = new ApsCrawler($app, true); // true = Interface mode, false = Server mode @@ -238,6 +237,9 @@ class remoting_aps extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } + + $app->uses('remoting_lib'); + $app->remoting_lib->loadUserProfile(0); $app->load('aps_guicontroller'); $gui = new ApsGUIController($app); diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php index b91909c9d3cf85aca4353217b293d09d4bebe65f..57412e5e192bef9f478c59db36c80db1fc5864f5 100644 --- a/interface/lib/classes/remote.d/client.inc.php +++ b/interface/lib/classes/remote.d/client.inc.php @@ -108,7 +108,7 @@ class remoting_client extends remoting { if(isset($rec['client_id'])) { return $app->functions->intval($rec['client_id']); } else { - throw new SoapFault('no_client_found', 'There is no sysuser account for this client ID.'); + throw new SoapFault('no_client_found', 'There is no sys_user account with this userid.'); return false; } @@ -257,7 +257,7 @@ class remoting_client extends remoting { if(@is_numeric($client_id)) { $sql = "SELECT * FROM `client_template_assigned` WHERE `client_id` = ?"; - return $app->db->queryOneRecord($sql, $client_id); + return $app->db->queryAllRecords($sql, $client_id); } else { throw new SoapFault('The ID must be an integer.'); return array(); @@ -604,11 +604,9 @@ class remoting_client extends remoting { if($user) { $saved_password = stripslashes($user['password']); - if(substr($saved_password, 0, 3) == '$1$') { - //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password, 3, 8).'$'; - - if(crypt(stripslashes($password), $salt) != $saved_password) { + if(preg_match('/^\$[156]\$/', $saved_password)) { + //* The password is crypt encrypted + if(crypt(stripslashes($password), $saved_password) !== $saved_password) { $user = false; } } else { @@ -636,11 +634,9 @@ class remoting_client extends remoting { if($user) { $saved_password = stripslashes($user['passwort']); - if(substr($saved_password, 0, 3) == '$1$') { + if(preg_match('/^\$[156]\$/', $saved_password)) { //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password, 3, 8).'$'; - - if(crypt(stripslashes($password), $salt) != $saved_password) { + if(crypt(stripslashes($password), $saved_password) != $saved_password) { $user = false; } } else { diff --git a/interface/lib/classes/remote.d/dns.inc.php b/interface/lib/classes/remote.d/dns.inc.php index 7e0b230d7f7940d7e96dc8143c0e6d8671788bc4..3129c6a3a2e44efab799c12f154c08bd5ba18251 100644 --- a/interface/lib/classes/remote.d/dns.inc.php +++ b/interface/lib/classes/remote.d/dns.inc.php @@ -56,7 +56,9 @@ class remoting_dns extends remoting { $tform_def_file = "../../web/dns/form/dns_soa.tform.php"; $app->uses('tform'); $app->tform->loadFormDef($tform_def_file); - $app->uses('tpl,validate_dns'); + $app->uses('tpl,validate_dns,remoting_lib'); + + $app->remoting_lib->loadUserProfile($client_id); //* replace template placeholders $tpl_content = $template_record['template']; @@ -195,7 +197,7 @@ class remoting_dns extends remoting { $app->remoting_lib->loadFormDef('../dns/form/dns_soa.tform.php'); return $app->remoting_lib->getDataRecord($primary_id); } - + //* Get slave zone details public function dns_slave_get($session_id, $primary_id) { global $app; @@ -209,16 +211,16 @@ class remoting_dns extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - + //* Add a slave zone - public function dns_slave_add($session_id, $client_id, $params) { + public function dns_slave_add($session_id, $client_id, $params) { if(!$this->checkPerm($session_id, 'dns_zone_add')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } return $this->insertQuery('../dns/form/dns_slave.tform.php', $client_id, $params); - } - + } + //* Update a slave zone public function dns_slave_update($session_id, $client_id, $primary_id, $params) { if(!$this->checkPerm($session_id, 'dns_zone_update')) { @@ -229,14 +231,14 @@ class remoting_dns extends remoting { return $affected_rows; } - //* Delete a slave zone - public function dns_slave_delete($session_id, $primary_id) { + //* Delete a slave zone + public function dns_slave_delete($session_id, $primary_id) { if(!$this->checkPerm($session_id, 'dns_zone_delete')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } return $this->deleteQuery('../dns/form/dns_slave.tform.php', $primary_id); - } + } //* Get record id by origin public function dns_zone_get_id($session_id, $origin) { @@ -294,12 +296,12 @@ class remoting_dns extends remoting { private function dns_rr_get($session_id, $primary_id, $rr_type = 'A') { global $app; - + $rr_type = strtolower($rr_type); if(!preg_match('/^[a-z]+$/', $rr_type)) { throw new SoapFault('permission denied', 'Invalid rr type'); } - + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_get')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); } @@ -307,14 +309,14 @@ class remoting_dns extends remoting { $app->remoting_lib->loadFormDef('../dns/form/dns_' . $rr_type . '.tform.php'); return $app->remoting_lib->getDataRecord($primary_id); } - + //* Add a record private function dns_rr_add($session_id, $client_id, $params, $update_serial=false, $rr_type = 'A') { $rr_type = strtolower($rr_type); if(!preg_match('/^[a-z]+$/', $rr_type)) { throw new SoapFault('permission denied', 'Invalid rr type'); } - + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_add')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); } @@ -330,7 +332,7 @@ class remoting_dns extends remoting { if(!preg_match('/^[a-z]+$/', $rr_type)) { throw new SoapFault('permission denied', 'Invalid rr type'); } - + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_update')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -341,7 +343,7 @@ class remoting_dns extends remoting { } return $affected_rows; } - + //* Delete a record private function dns_rr_delete($session_id, $primary_id, $update_serial=false, $rr_type = 'A') { $rr_type = strtolower($rr_type); @@ -357,9 +359,9 @@ class remoting_dns extends remoting { $affected_rows = $this->deleteQuery('../dns/form/dns_' . $rr_type . '.tform.php', $primary_id); return $affected_rows; } - + // ---------------------------------------------------------------------------------------------------------------- - + //* Get record details public function dns_aaaa_get($session_id, $primary_id) { return $this->dns_rr_get($session_id, $primary_id, 'AAAA'); @@ -426,6 +428,28 @@ class remoting_dns extends remoting { // ---------------------------------------------------------------------------------------------------------------- + //* Get record details + public function dns_caa_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'CAA'); + } + + //* Add a record + public function dns_caa_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'CAA'); + } + + //* Update a record + public function dns_caa_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'CAA'); + } + + //* Delete a record + public function dns_caa_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'CAA'); + } + + // ---------------------------------------------------------------------------------------------------------------- + //* Get record details public function dns_cname_get($session_id, $primary_id) { return $this->dns_rr_get($session_id, $primary_id, 'CNAME'); @@ -448,6 +472,28 @@ class remoting_dns extends remoting { // ---------------------------------------------------------------------------------------------------------------- + //* Get record details + public function dns_dname_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'DNAME'); + } + + //* Add a record + public function dns_dname_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'DNAME'); + } + + //* Update a record + public function dns_dname_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'DNAME'); + } + + //* Delete a record + public function dns_dname_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'DNAME'); + } + + // ---------------------------------------------------------------------------------------------------------------- + //* Get record details public function dns_hinfo_get($session_id, $primary_id) { return $this->dns_rr_get($session_id, $primary_id, 'HINFO'); @@ -492,6 +538,28 @@ class remoting_dns extends remoting { // ---------------------------------------------------------------------------------------------------------------- + //* Get record details + public function dns_naptr_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'NAPTR'); + } + + //* Add a record + public function dns_naptr_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'NAPTR'); + } + + //* Update a record + public function dns_naptr_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'NAPTR'); + } + + //* Delete a record + public function dns_naptr_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'NAPTR'); + } + + // ---------------------------------------------------------------------------------------------------------------- + //* Get record details public function dns_ns_get($session_id, $primary_id) { return $this->dns_rr_get($session_id, $primary_id, 'NS'); @@ -580,6 +648,50 @@ class remoting_dns extends remoting { // ---------------------------------------------------------------------------------------------------------------- + //* Get record details + public function dns_sshfp_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'SSHFP'); + } + + //* Add a record + public function dns_sshfp_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'SSHFP'); + } + + //* Update a record + public function dns_sshfp_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'SSHFP'); + } + + //* Delete a record + public function dns_sshfp_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'SSHFP'); + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_tlsa_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'TLSA'); + } + + //* Add a record + public function dns_tlsa_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'TLSA'); + } + + //* Update a record + public function dns_tlsa_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'TLSA'); + } + + //* Delete a record + public function dns_tlsa_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'TLSA'); + } + + // ---------------------------------------------------------------------------------------------------------------- + //* Get record details public function dns_txt_get($session_id, $primary_id) { return $this->dns_rr_get($session_id, $primary_id, 'TXT'); @@ -624,6 +736,24 @@ class remoting_dns extends remoting { + //* Get All DNS Zones Templates by etruel and thom + public function dns_templatezone_get_all($session_id) { + global $app, $conf; + if(!$this->checkPerm($session_id, 'dns_templatezone_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $sql ="SELECT * FROM dns_template"; + $result = $app->db->queryAllRecords($sql); + if(isset($result)) { + return $result; + } + else { + throw new SoapFault('template_id_error', 'There is no DNS templates.'); + return false; + } + } + /** * Get all dns records for a zone * @param int session id diff --git a/interface/lib/classes/remote.d/mail.inc.php b/interface/lib/classes/remote.d/mail.inc.php index bda7e861ed429f1c9c985c3dcf6d180aef843281..eec5ff0718c3c1afd50ead219789e85823e42033 100644 --- a/interface/lib/classes/remote.d/mail.inc.php +++ b/interface/lib/classes/remote.d/mail.inc.php @@ -205,12 +205,15 @@ class remoting_mail extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } + + // Email addresses must always be lower case + $params['email'] = strtolower($params['email']); //* Check if mail domain exists $email_parts = explode('@', $params['email']); - $tmp = $app->db->queryOneRecord("SELECT domain FROM mail_domain WHERE domain = ?", $email_parts[1]); + $tmp = $app->db->queryOneRecord("SELECT domain FROM mail_domain WHERE domain = ? AND domain NOT IN (SELECT SUBSTR(source,2) FROM mail_forwarding WHERE type = 'aliasdomain')", $email_parts[1]); if($tmp['domain'] != $email_parts[1]) { - throw new SoapFault('mail_domain_does_not_exist', 'Mail domain - '.$email_parts[1].' - does not exist.'); + throw new SoapFault('mail_domain_does_not_exist', 'Mail domain - '.$email_parts[1].' - does not exist as primary.'); return false; } @@ -234,11 +237,11 @@ class remoting_mail extends remoting { return false; } - //* Check if mail domain exists + //* Check if mail domain exists, and is not used as aliasdomain $email_parts = explode('@', $params['email']); - $tmp = $app->db->queryOneRecord("SELECT domain FROM mail_domain WHERE domain = ?", $email_parts[1]); + $tmp = $app->db->queryOneRecord("SELECT domain FROM mail_domain WHERE domain = ? AND domain NOT IN (SELECT SUBSTR(source,2) FROM mail_forwarding WHERE type = 'aliasdomain')", $email_parts[1]); if($tmp['domain'] != $email_parts[1]) { - throw new SoapFault('mail_domain_does_not_exist', 'Mail domain - '.$email_parts[1].' - does not exist.'); + throw new SoapFault('mail_domain_does_not_exist', 'Mail domain - '.$email_parts[1].' - does not exist as primary.'); return false; } @@ -710,7 +713,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* czarna lista e-mail + //* Add a new spamfilter blacklist public function mail_spamfilter_blacklist_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_add')) @@ -810,7 +813,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* polityki filtrów spamu e-mail + //* Add a spam policy public function mail_policy_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_policy_add')) @@ -860,7 +863,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* fetchmail + //* Add fetchmail public function mail_fetchmail_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_fetchmail_add')) @@ -960,7 +963,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* wpisy biaÅ‚ej listy + //* Add blacklist public function mail_blacklist_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_blacklist_add')) @@ -1010,7 +1013,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* wpisy filtrow e-mail + //* Add mail filter public function mail_filter_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_filter_add')) diff --git a/interface/lib/classes/remote.d/monitor.inc.php b/interface/lib/classes/remote.d/monitor.inc.php index d3689b94caaa0e40ea65b3b906950ab114f9688f..3df681f9ba2f0202a3e2d350e938bd1f8e6ae2e1 100644 --- a/interface/lib/classes/remote.d/monitor.inc.php +++ b/interface/lib/classes/remote.d/monitor.inc.php @@ -39,7 +39,6 @@ class remoting_monitor extends remoting { if(!$this->checkPerm($session_id, 'monitor_jobqueue_count')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; } $server_id = intval($server_id); @@ -48,7 +47,7 @@ class remoting_monitor extends remoting { $servers = $app->db->queryAllRecords("SELECT server_id, updated FROM server"); $sql = 'SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE '; foreach($servers as $sv) { - $sql .= " (datalog_id > ".$sv['updated']." AND server_id = ".$sv['server_id'].") OR "; + $sql .= " (datalog_id > ".$sv['updated']." AND server_id IN (0,".$sv['server_id'].")) OR "; } $sql = substr($sql, 0, -4); $tmp = $app->db->queryOneRecord($sql); @@ -56,7 +55,7 @@ class remoting_monitor extends remoting { } else { $server = $app->db->queryOneRecord("SELECT updated FROM server WHERE server_id = ?",$server_id); - $tmp = $app->db->queryOneRecord('SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE datalog_id > ?',$server['updated']); + $tmp = $app->db->queryOneRecord('SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE datalog_id > ? AND server_id IN ?',$server['updated'], array(0, $server_id)); return $tmp['jobqueue_count']; } } diff --git a/interface/lib/classes/remote.d/server.inc.php b/interface/lib/classes/remote.d/server.inc.php index 4962cb4c59e0a35575fcf4562c11322ae32fd07c..77649d1bb4c9385dc26cbfffdc175d79ffb026b0 100644 --- a/interface/lib/classes/remote.d/server.inc.php +++ b/interface/lib/classes/remote.d/server.inc.php @@ -288,6 +288,4 @@ class remoting_server extends remoting { return false; } } -} - -?> +} \ No newline at end of file diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php index a2f15d6f9d4f73c5bcd67c21ca407c20dfde052c..10fc028e645f80b96e2b8461f95894b1b23d9d36 100644 --- a/interface/lib/classes/remote.d/sites.inc.php +++ b/interface/lib/classes/remote.d/sites.inc.php @@ -102,7 +102,7 @@ class remoting_sites extends remoting { $app->remoting_lib->loadFormDef('../sites/form/database.tform.php'); return $app->remoting_lib->getDataRecord($primary_id); } - + /* TODO: secure queries! */ //* Add a record public function sites_database_add($session_id, $client_id, $params) @@ -130,15 +130,17 @@ class remoting_sites extends remoting { $retval = $this->insertQueryExecute($sql, $params); $app->sites_database_plugin->processDatabaseInsert($this); - + // set correct values for backup_interval and backup_copies - if(isset($params['backup_interval']) || isset($params['backup_copies'])){ + if(isset($params['backup_interval']) || isset($params['backup_copies']) || isset($params['backup_format_web']) || isset($params['backup_format_db'])){ $sql_set = array(); if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'"; if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']); + if(isset($params['backup_format_web'])) $sql_set[] = "backup_format_web = ".$app->functions->intval($params['backup_format_web']); + if(isset($params['backup_format_db'])) $sql_set[] = "backup_format_db = ".$app->functions->intval($params['backup_format_db']); $this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval, $retval, $params); } - + return $retval; } @@ -163,15 +165,17 @@ class remoting_sites extends remoting { $this->dataRecord = $params; $app->sites_database_plugin->processDatabaseUpdate($this); $retval = $this->updateQueryExecute($sql, $primary_id, $params); - + // set correct values for backup_interval and backup_copies - if(isset($params['backup_interval']) || isset($params['backup_copies'])){ + if(isset($params['backup_interval']) || isset($params['backup_copies']) || isset($params['backup_format_web']) || isset($params['backup_format_db'])){ $sql_set = array(); if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'"; if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']); + if(isset($params['backup_format_web'])) $sql_set[] = "backup_format_web = ".$app->functions->intval($params['backup_format_web']); + if(isset($params['backup_format_db'])) $sql_set[] = "backup_format_db = ".$app->functions->intval($params['backup_format_db']); $this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$primary_id, $primary_id, $params); } - + return $retval; } @@ -423,7 +427,7 @@ class remoting_sites extends remoting { $params['client_group_id'] = $rec['groupid']; } - //* Set a few params to "not empty" values which get overwritten by the sites_web_domain_plugin + //* Set a few params to "not empty" values which get overwritten by the sites_web_vhost_domain_plugin if($params['document_root'] == '') $params['document_root'] = '-'; if($params['system_user'] == '') $params['system_user'] = '-'; if($params['system_group'] == '') $params['system_group'] = '-'; @@ -448,7 +452,7 @@ class remoting_sites extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + if($params['log_retention'] == '') $params['log_retention'] = 30; //* Set a few defaults for nginx servers @@ -520,7 +524,7 @@ class remoting_sites extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + if($params['log_retention'] == '') $params['log_retention'] = 30; //* Set a few defaults for nginx servers @@ -592,7 +596,7 @@ class remoting_sites extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + if($params['log_retention'] == '') $params['log_retention'] = 30; //* Set a few defaults for nginx servers @@ -876,7 +880,7 @@ class remoting_sites extends remoting { $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); $params = $app->remoting_lib->getDataRecord($primary_id); $params['active'] = $status; - + $affected_rows = $this->updateQuery('../sites/form/web_vhost_domain.tform.php', 0, $primary_id, $params); return $affected_rows; } else { @@ -901,57 +905,57 @@ class remoting_sites extends remoting { $all = $app->db->queryAllRecords($sql, $client_id); return $all; } - + //** backup functions ----------------------------------------------------------------------------------- public function sites_web_domain_backup_list($session_id, $site_id = null) { global $app; - + if(!$this->checkPerm($session_id, 'sites_web_domain_backup')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + $result = $app->db->queryAllRecords("SELECT * FROM web_backup".(($site_id != null)?' WHERE parent_domain_id = ?':''), $site_id); return $result; } - + //* Backup download and restoration by Abdi Joseph public function sites_web_domain_backup($session_id, $primary_id, $action_type) { global $app; - + if(!$this->checkPerm($session_id, 'sites_web_domain_backup')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + //*Set variables $backup_record = $app->db->queryOneRecord("SELECT * FROM `web_backup` WHERE `backup_id`= ?", $primary_id); $server_id = $backup_record['server_id']; - + //*Set default action state $action_state = "pending"; $tstamp = time(); - + //* Basic validation of variables if ($server_id <= 0) { throw new SoapFault('invalid_backup_id', "Invalid or non existant backup_id $primary_id"); return false; } - + if ($action_type != 'backup_download' and $action_type != 'backup_restore' and $action_type != 'backup_delete') { throw new SoapFault('invalid_action', "Invalid action_type $action_type"); return false; } - + //* Validate instance $instance_record = $app->db->queryOneRecord("SELECT * FROM `sys_remoteaction` WHERE `action_param`= ? and `action_type`= ? and `action_state`= ?", $primary_id, $action_type, 'pending'); if ($instance_record['action_id'] >= 1) { throw new SoapFault('duplicate_action', "There is already a pending $action_type action"); return false; } - + //* Save the record if ($app->db->query("INSERT INTO `sys_remoteaction` SET `server_id` = ?, `tstamp` = ?, `action_type` = ?, `action_param` = ?, `action_state` = ?", $server_id, $tstamp, $action_type, $primary_id, $action_state)) { return true; @@ -959,65 +963,115 @@ class remoting_sites extends remoting { return false; } } - + //** quota functions ----------------------------------------------------------------------------------- public function quota_get_by_user($session_id, $client_id) { global $app; $app->uses('quota_lib'); - + if(!$this->checkPerm($session_id, 'quota_get_by_user')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + return $app->quota_lib->get_quota_data($client_id, false); } - + public function trafficquota_get_by_user($session_id, $client_id, $lastdays = 0) { global $app; $app->uses('quota_lib'); - + if(!$this->checkPerm($session_id, 'trafficquota_get_by_user')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } if ($client_id != null) $client_id = $app->functions->intval($client_id); - + return $app->quota_lib->get_trafficquota_data($client_id, $lastdays); } - + public function ftptrafficquota_data($session_id, $client_id, $lastdays = 0) { global $app; $app->uses('quota_lib'); - + if(!$this->checkPerm($session_id, 'trafficquota_get_by_user')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } if ($client_id != null) $client_id = $app->functions->intval($client_id); - + return $app->quota_lib->get_ftptrafficquota_data($client_id, $lastdays); } - + public function databasequota_get_by_user($session_id, $client_id) { global $app; $app->uses('quota_lib'); - + if(!$this->checkPerm($session_id, 'databasequota_get_by_user')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - + return $app->quota_lib->get_databasequota_data($client_id, false); } - - + + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_webdav_user_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_webdav_user_get')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../sites/form/webdav_user.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_webdav_user_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_webdav_user_add')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/webdav_user.tform.php', $client_id, $params); + } + + //* Update a record + public function sites_webdav_user_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_webdav_user_update')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/webdav_user.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + //* Delete a record + public function sites_webdav_user_delete($session_id, $primary_id) + { + global $app; + if(!$this->checkPerm($session_id, 'sites_webdav_user_delete')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $affected_rows = $this->deleteQuery('../sites/form/webdav_user.tform.php', $primary_id); + return $affected_rows; + } + + } ?> diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 6e551355a690536aa8e938395c110476914ceb3d..47aa517de8d76e347ead06db8a6ea7c12c6996d2 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -72,9 +72,7 @@ class remoting { global $app, $conf; // Maintenance mode - $app->uses('ini_parser,getconf'); - $server_config_array = $app->getconf->get_global_config('misc'); - if($server_config_array['maintenance_mode'] == 'y'){ + if($app->is_under_maintenance()){ throw new SoapFault('maintenance_mode', 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.'); return false; } @@ -99,28 +97,22 @@ class remoting { if($user) { $saved_password = stripslashes($user['passwort']); - if(substr($saved_password, 0, 3) == '$1$') { + if(preg_match('/^\$[156]\$/', $saved_password)) { //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password, 3, 8).'$'; - - if(crypt(stripslashes($password), $salt) != $saved_password) { + if(crypt(stripslashes($password), $saved_password) != $saved_password) { throw new SoapFault('client_login_failed', 'The login failed. Username or password wrong.'); - return false; } } else { //* The password is md5 encrypted if(md5($password) != $saved_password) { throw new SoapFault('client_login_failed', 'The login failed. Username or password wrong.'); - return false; } } } else { throw new SoapFault('client_login_failed', 'The login failed. Username or password wrong.'); - return false; } if($user['active'] != 1) { throw new SoapFault('client_login_failed', 'The login failed. User is blocked.'); - return false; } // now we need the client data diff --git a/interface/lib/classes/remoting_handler_base.inc.php b/interface/lib/classes/remoting_handler_base.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..6393959df8b2c38e5f206f0ab5841a63a397ac4c --- /dev/null +++ b/interface/lib/classes/remoting_handler_base.inc.php @@ -0,0 +1,75 @@ +<?php + +/* +Copyright (c) 2020, ISPConfig +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class ISPConfigRemotingHandlerBase +{ + protected $methods = array(); + protected $classes = array(); + + public function __construct() + { + global $app; + + // load main remoting file + $app->load('remoting'); + + // load all remoting classes and get their methods + $this->load_remoting_classes(realpath(__DIR__) . '/remote.d/*.inc.php'); + + // load all remoting classes from modules + $this->load_remoting_classes(realpath(__DIR__) . '/../../web/*/lib/classes/remote.d/*.inc.php'); + + // add main methods + $this->methods['login'] = 'remoting'; + $this->methods['logout'] = 'remoting'; + $this->methods['get_function_list'] = 'remoting'; + + // create main class + $this->classes['remoting'] = new remoting(array_keys($this->methods)); + } + + private function load_remoting_classes($glob_pattern) + { + $files = glob($glob_pattern); + + foreach ($files as $file) { + $name = str_replace('.inc.php', '', basename($file)); + $class_name = 'remoting_' . $name; + + include_once $file; + if(class_exists($class_name, false)) { + $this->classes[$class_name] = new $class_name(); + foreach(get_class_methods($this->classes[$class_name]) as $method) { + $this->methods[$method] = $class_name; + } + } + } + } +} diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index 62ccd506c889002cc99066e8f68ed7998d93528c..6f310284dc6ca052f9b86cd5515987f194ad2ff0 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -309,6 +309,7 @@ class remoting_lib extends tform_base { $username = $params["username"]; $clear_password = $params["password"]; $language = $params['language']; + $modules = $params['modules']; $client_id = $app->functions->intval($client_id); if(!isset($params['_ispconfig_pw_crypted']) || $params['_ispconfig_pw_crypted'] != 1) $password = $app->auth->crypt_password(stripslashes($clear_password)); @@ -327,8 +328,14 @@ class remoting_lib extends tform_base { $params[] = $language; } + $modulesstring = ''; + if (!empty($modules)) { + $modulesstring = ', modules = ?'; + $params[] = $modules; + } + $params[] = $client_id; - $sql = "UPDATE sys_user set username = ? $pwstring $langstring WHERE client_id = ?"; + $sql = "UPDATE sys_user set username = ? $pwstring $langstring $modulesstring WHERE client_id = ?"; $app->db->query($sql, true, $params); } diff --git a/interface/lib/classes/rest_handler.inc.php b/interface/lib/classes/rest_handler.inc.php index ceaa7c63be32fc95198769c0398a6f46cc1e4b31..ae3e443d48848e924e830e74fc2748ecd0fc8473 100644 --- a/interface/lib/classes/rest_handler.inc.php +++ b/interface/lib/classes/rest_handler.inc.php @@ -30,46 +30,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -class ISPConfigRESTHandler { - private $methods = array(); - private $classes = array(); - +class ISPConfigRESTHandler extends ISPConfigRemotingHandlerBase { private $api_version = 1; - - public function __construct() { - global $app; - - // load main remoting file - $app->load('remoting'); - - // load all remote classes and get their methods - $dir = dirname(realpath(__FILE__)) . '/remote.d'; - $d = opendir($dir); - while($f = readdir($d)) { - if($f == '.' || $f == '..') continue; - if(!is_file($dir . '/' . $f) || substr($f, strrpos($f, '.')) != '.php') continue; - - $name = substr($f, 0, strpos($f, '.')); - - include $dir . '/' . $f; - $class_name = 'remoting_' . $name; - if(class_exists($class_name, false)) { - $this->classes[$class_name] = new $class_name(); - foreach(get_class_methods($this->classes[$class_name]) as $method) { - $this->methods[$method] = $class_name; - } - } - } - closedir($d); - - // add main methods - $this->methods['login'] = 'remoting'; - $this->methods['logout'] = 'remoting'; - $this->methods['get_function_list'] = 'remoting'; - - // create main class - $this->classes['remoting'] = new remoting(array_keys($this->methods)); - } private function _return_error($code, $codename, $message) { header('HTTP/1.1 ' . $code . ' ' . $codename); diff --git a/interface/lib/classes/simplepie.inc.php b/interface/lib/classes/simplepie.inc.php index 626e801e426242351a7e29034808486800332ac6..a2b80ed25b71755c81e56722f453d85d95207630 100644 --- a/interface/lib/classes/simplepie.inc.php +++ b/interface/lib/classes/simplepie.inc.php @@ -735,7 +735,7 @@ class simplepie * @param string $cache_location This is where you want the cache to be stored. * @param int $cache_duration This is the number of seconds that you want to store the cache file for. */ - function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) + function __construct($feed_url = null, $cache_location = null, $cache_duration = null) { // Other objects, instances created here so we can set options on them $this->sanitize = new SimplePie_Sanitize; @@ -3165,7 +3165,7 @@ class SimplePie_Item var $feed; var $data = array(); - function SimplePie_Item($feed, $data) + function __construct($feed, $data) { $this->feed = $feed; $this->data = $data; @@ -5789,7 +5789,7 @@ class SimplePie_Source var $item; var $data = array(); - function SimplePie_Source($item, $data) + function __construct($item, $data) { $this->item = $item; $this->data = $data; @@ -6344,7 +6344,7 @@ class SimplePie_Author var $email; // Constructor, used to input the data - function SimplePie_Author($name = null, $link = null, $email = null) + function __construct($name = null, $link = null, $email = null) { $this->name = $name; $this->link = $link; @@ -6402,7 +6402,7 @@ class SimplePie_Category var $label; // Constructor, used to input the data - function SimplePie_Category($term = null, $scheme = null, $label = null) + function __construct($term = null, $scheme = null, $label = null) { $this->term = $term; $this->scheme = $scheme; @@ -6484,7 +6484,7 @@ class SimplePie_Enclosure var $width; // Constructor, used to input the data - function SimplePie_Enclosure($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null) + function __construct($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null) { $this->bitrate = $bitrate; $this->captions = $captions; @@ -7419,7 +7419,7 @@ class SimplePie_Caption var $text; // Constructor, used to input the data - function SimplePie_Caption($type = null, $lang = null, $startTime = null, $endTime = null, $text = null) + function __construct($type = null, $lang = null, $startTime = null, $endTime = null, $text = null) { $this->type = $type; $this->lang = $lang; @@ -7503,7 +7503,7 @@ class SimplePie_Credit var $name; // Constructor, used to input the data - function SimplePie_Credit($role = null, $scheme = null, $name = null) + function __construct($role = null, $scheme = null, $name = null) { $this->role = $role; $this->scheme = $scheme; @@ -7560,7 +7560,7 @@ class SimplePie_Copyright var $label; // Constructor, used to input the data - function SimplePie_Copyright($url = null, $label = null) + function __construct($url = null, $label = null) { $this->url = $url; $this->label = $label; @@ -7604,7 +7604,7 @@ class SimplePie_Rating var $value; // Constructor, used to input the data - function SimplePie_Rating($scheme = null, $value = null) + function __construct($scheme = null, $value = null) { $this->scheme = $scheme; $this->value = $value; @@ -7649,7 +7649,7 @@ class SimplePie_Restriction var $value; // Constructor, used to input the data - function SimplePie_Restriction($relationship = null, $type = null, $value = null) + function __construct($relationship = null, $type = null, $value = null) { $this->relationship = $relationship; $this->type = $type; @@ -7715,7 +7715,7 @@ class SimplePie_File var $error; var $method = SIMPLEPIE_FILE_SOURCE_NONE; - function SimplePie_File($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) + function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) { if (class_exists('idna_convert')) { @@ -8036,7 +8036,7 @@ class SimplePie_HTTP_Parser * @access public * @param string $data Input data */ - function SimplePie_HTTP_Parser($data) + function __construct($data) { $this->data = $data; $this->data_length = strlen($this->data); @@ -8512,7 +8512,7 @@ class SimplePie_gzdecode * * @access public */ - function SimplePie_gzdecode($data) + function __construct($data) { $this->compressed_data = $data; $this->compressed_size = strlen($data); @@ -8705,7 +8705,7 @@ class SimplePie_Cache * * @access private */ - function SimplePie_Cache() + function __construct() { trigger_error('Please call SimplePie_Cache::create() instead of the constructor', E_USER_ERROR); } @@ -8743,7 +8743,7 @@ class SimplePie_Cache_File var $extension; var $name; - function SimplePie_Cache_File($location, $filename, $extension) + function __construct($location, $filename, $extension) { $this->location = $location; $this->filename = $filename; @@ -8905,7 +8905,7 @@ class SimplePie_Cache_MySQL extends SimplePie_Cache_DB var $options; var $id; - function SimplePie_Cache_MySQL($mysql_location, $name, $extension) + function __construct($mysql_location, $name, $extension) { $host = $mysql_location->get_host(); if (SimplePie_Misc::stripos($host, 'unix(') === 0 && substr($host, -1) === ')') @@ -11532,7 +11532,7 @@ class SimplePie_Decode_HTML_Entities * @access public * @param string $data Input data */ - function SimplePie_Decode_HTML_Entities($data) + function __construct($data) { $this->data = $data; } @@ -11795,7 +11795,7 @@ class SimplePie_IRI * @param string $iri * @return SimplePie_IRI */ - function SimplePie_IRI($iri) + function __construct($iri) { $iri = (string) $iri; if ($iri !== '') @@ -13184,7 +13184,7 @@ class SimplePie_Parse_Date * * @access private */ - function SimplePie_Parse_Date() + function __construct() { $this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')'; $this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')'; @@ -13658,7 +13658,7 @@ class SimplePie_Content_Type_Sniffer * @access public * @param SimplePie_Content_Type_Sniffer $file Input file */ - function SimplePie_Content_Type_Sniffer($file) + function __construct($file) { $this->file = $file; } @@ -13990,7 +13990,7 @@ class SimplePie_XML_Declaration_Parser * @access public * @param string $data Input data */ - function SimplePie_XML_Declaration_Parser($data) + function __construct($data) { $this->data = $data; $this->data_length = strlen($this->data); @@ -14259,7 +14259,7 @@ class SimplePie_Locator var $max_checked_feeds = 10; var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer'; - function SimplePie_Locator(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File', $max_checked_feeds = 10, $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer') + function __construct(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File', $max_checked_feeds = 10, $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer') { $this->file =& $file; $this->file_class = $file_class; diff --git a/interface/lib/classes/sites_database_plugin.inc.php b/interface/lib/classes/sites_database_plugin.inc.php index 89cb7ce9c278a649d610a2a8ef4891cafbb47ebd..faf3fa30f7f36904a821c42280c7e52219aaf2be 100644 --- a/interface/lib/classes/sites_database_plugin.inc.php +++ b/interface/lib/classes/sites_database_plugin.inc.php @@ -45,10 +45,12 @@ class sites_database_plugin { //* The Database user shall be owned by the same group then the website $sys_groupid = $app->functions->intval($web['sys_groupid']); $backup_interval = $web['backup_interval']; + $backup_format_web = $web['backup_format_web']; + $backup_format_db = $web['backup_format_db']; $backup_copies = $app->functions->intval($web['backup_copies']); - $sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ? WHERE database_id = ?"; - $app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $form_page->id); + $sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ?, backup_format_web = ?, backup_format_db = ? WHERE database_id = ?"; + $app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $backup_format_web, $backup_format_db, $form_page->id); } } diff --git a/interface/lib/classes/soap_handler.inc.php b/interface/lib/classes/soap_handler.inc.php index 704e21b20ba282fc45d661dd2d1b78c66981e0ba..16693e12c92e0d032dbe93dca0950cb186150bf1 100644 --- a/interface/lib/classes/soap_handler.inc.php +++ b/interface/lib/classes/soap_handler.inc.php @@ -30,45 +30,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -class ISPConfigSoapHandler { - private $methods = array(); - private $classes = array(); - - public function __construct() { - global $app; - - // load main remoting file - $app->load('remoting'); - - // load all remote classes and get their methods - $dir = dirname(realpath(__FILE__)) . '/remote.d'; - $d = opendir($dir); - while($f = readdir($d)) { - if($f == '.' || $f == '..') continue; - if(!is_file($dir . '/' . $f) || substr($f, strrpos($f, '.')) != '.php') continue; - - $name = substr($f, 0, strpos($f, '.')); - - include_once $dir . '/' . $f; - $class_name = 'remoting_' . $name; - if(class_exists($class_name, false)) { - $this->classes[$class_name] = new $class_name(); - foreach(get_class_methods($this->classes[$class_name]) as $method) { - $this->methods[$method] = $class_name; - } - } - } - closedir($d); - - // add main methods - $this->methods['login'] = 'remoting'; - $this->methods['logout'] = 'remoting'; - $this->methods['get_function_list'] = 'remoting'; - - // create main class - $this->classes['remoting'] = new remoting(array_keys($this->methods)); - } - +class ISPConfigSoapHandler extends ISPConfigRemotingHandlerBase { public function __call($method, $params) { if(array_key_exists($method, $this->methods) == false) { throw new SoapFault('invalid_method', 'Method ' . $method . ' does not exist'); diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php index cef9424a75d61203e57060fb8aee39eb85a14435..d6b0ef149e285dbe3e3c438cff36bbe44daddac8 100644 --- a/interface/lib/classes/system.inc.php +++ b/interface/lib/classes/system.inc.php @@ -31,12 +31,26 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class system { var $client_service = null; + private $_last_exec_out = null; + private $_last_exec_retcode = null; public function has_service($userid, $service) { global $app; if(!preg_match('/^[a-z]+$/', $service)) $app->error('Invalid service '.$service); + // Check the servers table to see which kinds of servers we actually have enabled. + // simple query cache + if($this->server_count === null) { + $this->server_count = $app->db->queryOneRecord("SELECT SUM(mail_server) as mail, SUM(web_server) AS web, SUM(dns_server) AS dns, SUM(file_server) AS file, + SUM(db_server) AS db, SUM(vserver_server) AS vserver, SUM(proxy_server) AS proxy, SUM(firewall_server) AS firewall, SUM(xmpp_server) AS xmpp + FROM `server` WHERE mirror_server_id = 0"); + } + // Check if we have the service enabled. + if ($this->server_count[$service] == 0) { + return FALSE; + } + if(isset($_SESSION['s']['user']) && $_SESSION['s']['user']['typ'] == 'admin') return true; //* We do not check admin-users // simple query cache @@ -52,8 +66,73 @@ class system { return false; } } -} //* End Class -?> + public function is_blacklisted_web_path($path) { + $blacklist = array('bin', 'cgi-bin', 'dev', 'etc', 'home', 'lib', 'lib64', 'log', 'ssl', 'usr', 'var', 'proc', 'net', 'sys', 'srv', 'sbin', 'run'); + + $path = ltrim($path, '/'); + $parts = explode('/', $path); + if(in_array(strtolower($parts[0]), $blacklist, true)) { + return true; + } + + return false; + } + + public function last_exec_out() { + return $this->_last_exec_out; + } + + public function last_exec_retcode() { + return $this->_last_exec_retcode; + } + + public function exec_safe($cmd) { + $arg_count = func_num_args(); + $args = func_get_args(); + if($arg_count != substr_count($cmd, '?') + 1) { + trigger_error('Placeholder count not matching argument list.', E_USER_WARNING); + return false; + } + if($arg_count > 1) { + array_shift($args); + + $pos = 0; + $a = 0; + foreach($args as $value) { + $a++; + + $pos = strpos($cmd, '?', $pos); + if($pos === false) { + break; + } + $value = escapeshellarg($value); + $cmd = substr_replace($cmd, $value, $pos, 1); + $pos += strlen($value); + } + } + $this->_last_exec_out = null; + $this->_last_exec_retcode = null; + return exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); + } + + public function system_safe($cmd) { + call_user_func_array(array($this, 'exec_safe'), func_get_args()); + return implode("\n", $this->_last_exec_out); + } + + //* Check if a application is installed + public function is_installed($appname) { + $this->exec_safe('which ? 2> /dev/null', $appname); + $out = $this->last_exec_out(); + $returncode = $this->last_exec_retcode(); + if(isset($out[0]) && stristr($out[0], $appname) && $returncode == 0) { + return true; + } else { + return false; + } + } + +} //* End Class diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php index f277c51274f3e8e4f9c5f03814f07367c7a8fcf2..d83ec0d3d78a89bebedb1e1011158ed22aae7b5c 100644 --- a/interface/lib/classes/tform_actions.inc.php +++ b/interface/lib/classes/tform_actions.inc.php @@ -297,6 +297,9 @@ class tform_actions { */ function onDelete() { global $app, $conf, $list_def_file, $tform_def_file; + + // Check CSRF Token + $app->auth->csrf_token_check('GET'); include_once $list_def_file; diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 36de1371ab25fabe07d908f431ce8bb9016a8833..bd9f70a626ef308391f5a0f8ef3ae04a35507311 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -152,9 +152,9 @@ class tform_base { $wb = $app->functions->array_merge($wb_global, $wb); } if(isset($wb_global)) unset($wb_global); - + $this->wordbook = $wb; - + $app->plugin->raiseEvent($_SESSION['s']['module']['name'].':'.$app->tform->formDef['name'] . ':on_after_formdef', $this); $this->dateformat = $app->lng('conf_format_dateshort'); @@ -323,7 +323,7 @@ class tform_base { return $this->getAuthSQL('r', $matches[1]); } */ - + /** * Get the key => value array of a form filled from a datasource definitiom * @@ -336,69 +336,84 @@ class tform_base { } //* If the parameter 'valuelimit' is set - function applyValueLimit($limit, $values) { + function applyValueLimit($limit, $values, $current_value = '') { global $app; - $limit_parts = explode(':', $limit); + // we mas have multiple limits, therefore we explode by ; first + // Example: "system:sites:web_php_options;client:web_php_options" + $limits = explode(';',$limit); - //* values are limited to a comma separated list - if($limit_parts[0] == 'list') { - $allowed = explode(',', $limit_parts[1]); - } - //* values are limited to a field in the client settings - if($limit_parts[0] == 'client') { - if($_SESSION["s"]["user"]["typ"] == 'admin') { - return $values; - } else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - $allowed = explode(',', $client['lm']); + foreach($limits as $limit) { + + $limit_parts = explode(':', $limit); + + //* values are limited to a comma separated list + if($limit_parts[0] == 'list') { + $allowed = explode(',', $limit_parts[1]); } - } - //* values are limited to a field in the reseller settings - if($limit_parts[0] == 'reseller') { - if($_SESSION["s"]["user"]["typ"] == 'admin') { - return $values; - } else { - //* Get the limits of the client that is currently logged in - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - //echo "SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; - //* If the client belongs to a reseller, we will check against the reseller Limit too - if($client['parent_client_id'] != 0) { - - //* first we need to know the groups of this reseller - $tmp = $app->db->queryOneRecord("SELECT userid, groups FROM sys_user WHERE client_id = ?", $client['parent_client_id']); - $reseller_groups = $tmp["groups"]; - $reseller_userid = $tmp["userid"]; - - // Get the limits of the reseller of the logged in client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $reseller = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM client WHERE client_id = ?", $client['parent_client_id']); - $allowed = explode(',', $reseller['lm']); - } else { + //* values are limited to a field in the client settings + if($limit_parts[0] == 'client') { + if($_SESSION["s"]["user"]["typ"] == 'admin') { return $values; + } else { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + $allowed = explode(',', $client['lm']); } - } // end if admin - } // end if reseller - - //* values are limited to a field in the system settings - if($limit_parts[0] == 'system') { - $app->uses('getconf'); - $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); - $tmp_key = $limit_parts[2]; - $allowed = $tmp_conf[$tmp_key]; - } + } + + //* values are limited to a field in the reseller settings + if($limit_parts[0] == 'reseller') { + if($_SESSION["s"]["user"]["typ"] == 'admin') { + return $values; + } else { + //* Get the limits of the client that is currently logged in + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + //echo "SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; + //* If the client belongs to a reseller, we will check against the reseller Limit too + if($client['parent_client_id'] != 0) { + + //* first we need to know the groups of this reseller + $tmp = $app->db->queryOneRecord("SELECT userid, groups FROM sys_user WHERE client_id = ?", $client['parent_client_id']); + $reseller_groups = $tmp["groups"]; + $reseller_userid = $tmp["userid"]; + + // Get the limits of the reseller of the logged in client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $reseller = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM client WHERE client_id = ?", $client['parent_client_id']); + $allowed = explode(',', $reseller['lm']); + } else { + return $values; + } + } // end if admin + } // end if reseller + + //* values are limited to a field in the system settings + if($limit_parts[0] == 'system') { + $app->uses('getconf'); + $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); + $tmp_key = $limit_parts[2]; + $allowed = $allowed = explode(',',$tmp_conf[$tmp_key]); + } + + // add the current value to the allowed array + $allowed[] = $current_value; + + // remove all values that are not allowed + $values_new = array(); + foreach($values as $key => $val) { + if(in_array($key, $allowed)) $values_new[$key] = $val; + } + + $values = $values_new; - $values_new = array(); - foreach($values as $key => $val) { - if(in_array($key, $allowed)) $values_new[$key] = $val; } - return $values_new; + return $values; } @@ -423,7 +438,7 @@ class tform_base { $csrf_token = $app->auth->csrf_token_get($this->formDef['name']); $_csrf_id = $csrf_token['csrf_id']; $_csrf_value = $csrf_token['csrf_key']; - + $this->formDef['tabs'][$tab]['fields']['_csrf_id'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -439,7 +454,7 @@ class tform_base { $record['_csrf_id'] = $_csrf_id; $record['_csrf_key'] = $_csrf_value; /* CSRF PROTECTION */ - + $new_record = array(); if($action == 'EDIT') { $record = $this->decode($record, $tab); @@ -464,7 +479,7 @@ class tform_base { // If a limitation for the values is set if(isset($field['valuelimit']) && is_array($field["value"])) { - $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"]); + $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"], $val); } switch ($field['formtype']) { @@ -574,7 +589,7 @@ class tform_base { $new_record[$key] = $this->_getDateHTML($key, $dt_value); break; - + default: if(isset($record[$key])) { $new_record[$key] = $app->functions->htmlentities($record[$key]); @@ -599,7 +614,7 @@ class tform_base { // If a limitation for the values is set if(isset($field['valuelimit']) && is_array($field["value"])) { - $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"]); + $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"], $field['default']); } switch ($field['formtype']) { @@ -686,7 +701,7 @@ class tform_base { $new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds); break; - + case 'DATE': $dt_value = (isset($field['default'])) ? $field['default'] : 0; @@ -735,7 +750,7 @@ class tform_base { unset($_POST); unset($record); } - + if(isset($_SESSION['_csrf_timeout']) && is_array($_SESSION['_csrf_timeout'])) { $to_unset = array(); foreach($_SESSION['_csrf_timeout'] as $_csrf_id => $timeout) { @@ -752,7 +767,7 @@ class tform_base { } /* CSRF PROTECTION */ } - + $new_record = array(); if(is_array($record)) { foreach($fields as $key => $field) { @@ -1050,6 +1065,29 @@ class tform_base { } unset($error); break; + case 'ISEMAILADDRESS': + $error = false; + if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n'; + if($validator['allowempty'] == 'y' && $field_value == '') { + //* Do nothing + } else { + if(function_exists('filter_var')) { + if(filter_var($field_value, FILTER_VALIDATE_EMAIL) === false) { + $error = true; + } + if ($error) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; + } else { + $this->errorMessage .= $errmsg."<br />\r\n"; + } + } + + } else $this->errorMessage .= "function filter_var missing <br />\r\n"; + } + unset($error); + break; case 'ISINT': if(function_exists('filter_var') && $field_value < PHP_INT_MAX) { //if($field_value != '' && filter_var($field_value, FILTER_VALIDATE_INT, array("options" => array('min_range'=>0))) === false) { @@ -1183,7 +1221,7 @@ class tform_base { } } break; - + case 'ISDATETIME': /* Checks a datetime value against the date format of the current language */ if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n'; @@ -1201,7 +1239,7 @@ class tform_base { } } break; - + case 'RANGE': //* Checks if the value is within the given range or above / below a value //* Range examples: < 10 = ":10", between 2 and 10 = "2:10", above 5 = "5:". @@ -1266,7 +1304,7 @@ class tform_base { $sql_update = ''; $record = $this->encode($record, $tab, true); - + if(($this->primary_id_override > 0)) { $sql_insert_key .= '`'.$this->formDef["db_table_idx"].'`, '; $sql_insert_val .= $this->primary_id_override.", "; diff --git a/interface/lib/classes/validate_autoresponder.inc.php b/interface/lib/classes/validate_autoresponder.inc.php index 8fefa33b301ad707c3eca7ada45591122f979a6d..48ee3778833f90625d2629b7740c04f192da2678 100755 --- a/interface/lib/classes/validate_autoresponder.inc.php +++ b/interface/lib/classes/validate_autoresponder.inc.php @@ -31,37 +31,23 @@ include_once 'validate_datetime.inc.php'; class validate_autoresponder extends validate_datetime { - function start_date($field_name, $field_value, $validator) - { - global $app; - - // save field value for later use in end_date() - $this->start_date = $field_value; - - if($_POST['autoresponder'] == 'y' && $field_value == '') { - // we need a start date when autoresponder is on - return $app->tform->lng($validator['errmsg']).'<br />'; - } - } - function end_date($field_name, $field_value, $validator) { global $app; - $start_date = $this->start_date; - //$start_date = $app->tform_actions->dataRecord['autoresponder_start_date']; + $start_date = $app->tform_actions->dataRecord['autoresponder_start_date']; // Parse date $datetimeformat = (isset($app->remoting_lib) ? $app->remoting_lib->datetimeformat : $app->tform->datetimeformat); - $start_date_array = date_parse_from_format($datetimeformat,$start_date); - $end_date_array = date_parse_from_format($datetimeformat,$field_value); + $start_date_array = date_parse_from_format($datetimeformat, $start_date); + $end_date_array = date_parse_from_format($datetimeformat, $field_value); //calculate timestamps $start_date_tstamp = mktime($start_date_array['hour'], $start_date_array['minute'], $start_date_array['second'], $start_date_array['month'], $start_date_array['day'], $start_date_array['year']); $end_date_tstamp = mktime($end_date_array['hour'], $end_date_array['minute'], $end_date_array['second'], $end_date_array['month'], $end_date_array['day'], $end_date_array['year']); - // End date has to be > start date - if($end_date_tstamp <= $start_date_tstamp && ($start_date || $field_value)) { + // If both are set, end date has to be > start date + if($start_date && $field_value && $end_date_tstamp <= $start_date_tstamp) { return $app->tform->lng($validator['errmsg']).'<br />'; } } diff --git a/interface/lib/classes/validate_cron.inc.php b/interface/lib/classes/validate_cron.inc.php index 9a2af803663f84f1b93734890b1da9edf2ee1cb2..888fdd5cb718c2d084aa6db8a49b2851cd03aedd 100644 --- a/interface/lib/classes/validate_cron.inc.php +++ b/interface/lib/classes/validate_cron.inc.php @@ -52,7 +52,7 @@ class validate_cron { if($parsed["scheme"] != "http" && $parsed["scheme"] != "https") return $this->get_error($validator['errmsg']); - if(preg_match("'^([a-z0-9][a-z0-9_\-]{0,62}\.)+([A-Za-z0-9\-]{2,30})$'i", $parsed["host"]) == false) return $this->get_error($validator['errmsg']); + if(preg_match("'^([a-z0-9][a-z0-9_\-]{0,62}\.)+([A-Za-z0-9\-]{2,63})$'i", $parsed["host"]) == false) return $this->get_error($validator['errmsg']); } if(strpos($field_value, "\n") !== false || strpos($field_value, "\r") !== false || strpos($field_value, chr(0)) !== false) { return $this->get_error($validator['errmsg']); diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php index 443fe76d7ff7d2012c1c10db90198bfc1024a52e..3fbc28a0a1928809fab86c49b0cdb3117a1f81a4 100644 --- a/interface/lib/classes/validate_dkim.inc.php +++ b/interface/lib/classes/validate_dkim.inc.php @@ -49,10 +49,13 @@ class validate_dkim { * Validator function for private DKIM-Key */ function check_private_key($field_name, $field_value, $validator) { + global $app; + $dkim_enabled=$_POST['dkim']; if ($dkim_enabled == 'y') { if (empty($field_value)) return $this->get_error($validator['errmsg']); - exec('echo '.escapeshellarg($field_value).'|openssl rsa -check', $output, $result); + $app->system->exec_safe('echo ?|openssl rsa -check', $field_value); + $result = $app->system->last_exec_retcode(); if($result != 0) return $this->get_error($validator['errmsg']); } } diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index 57187805cf926289f450b31088cf3540b36a7fb8..d8c87e09f1d6f8b41cf6a0be6e6bf66058515f79 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -51,7 +51,7 @@ class validate_domain { $result = $this->_check_unique($field_value); if(!$result) return $this->get_error('domain_error_unique'); - + $pattern = '/\.acme\.invalid$/'; if(preg_match($pattern, $field_value)) return $this->get_error('domain_error_acme_invalid'); } @@ -68,7 +68,7 @@ class validate_domain { $result = $this->_check_unique($field_value); if(!$result) return $this->get_error('domain_error_unique'); - + $pattern = '/\.acme\.invalid$/'; if(preg_match($pattern, $field_value)) return $this->get_error('domain_error_acme_invalid'); } @@ -83,7 +83,7 @@ class validate_domain { $result = $this->_check_unique($field_value); if(!$result) return $this->get_error('domain_error_unique'); - + $pattern = '/\.acme\.invalid$/'; if(preg_match($pattern, $field_value)) return $this->get_error('domain_error_acme_invalid'); } @@ -98,7 +98,7 @@ class validate_domain { } else { $check_domain = $_POST['domain']; } - + $app->uses('ini_parser,getconf'); $settings = $app->getconf->get_global_config('domains'); if ($settings['use_domain_module'] == 'y') { @@ -111,26 +111,26 @@ class validate_domain { $result = $this->_check_unique($field_value . '.' . $check_domain, true); if(!$result) return $this->get_error('domain_error_autosub'); } - + /* Check apache directives */ function web_apache_directives($field_name, $field_value, $validator) { global $app; - + if(trim($field_value) != '') { $security_config = $app->getconf->get_security_config('ids'); - + if($security_config['apache_directives_scan_enabled'] == 'yes') { - + // Get blacklist $blacklist_path = '/usr/local/ispconfig/security/apache_directives.blacklist'; if(is_file('/usr/local/ispconfig/security/apache_directives.blacklist.custom')) $blacklist_path = '/usr/local/ispconfig/security/apache_directives.blacklist.custom'; if(!is_file($blacklist_path)) $blacklist_path = realpath(ISPC_ROOT_PATH.'/../security/apache_directives.blacklist'); - + $directives = explode("\n",$field_value); $regex = explode("\n",file_get_contents($blacklist_path)); $blocked = false; $blocked_line = ''; - + if(is_array($directives) && is_array($regex)) { foreach($directives as $directive) { $directive = trim($directive); @@ -144,31 +144,31 @@ class validate_domain { } } } - + if($blocked === true) { return $this->get_error('apache_directive_blocked_error').' '.$blocked_line; } } - + /* Check nginx directives */ function web_nginx_directives($field_name, $field_value, $validator) { global $app; - + if(trim($field_value) != '') { $security_config = $app->getconf->get_security_config('ids'); - + if($security_config['nginx_directives_scan_enabled'] == 'yes') { - + // Get blacklist $blacklist_path = '/usr/local/ispconfig/security/nginx_directives.blacklist'; if(is_file('/usr/local/ispconfig/security/nginx_directives.blacklist.custom')) $blacklist_path = '/usr/local/ispconfig/security/nginx_directives.blacklist.custom'; if(!is_file($blacklist_path)) $blacklist_path = realpath(ISPC_ROOT_PATH.'/../security/nginx_directives.blacklist'); - + $directives = explode("\n",$field_value); $regex = explode("\n",file_get_contents($blacklist_path)); $blocked = false; $blocked_line = ''; - + if(is_array($directives) && is_array($regex)) { foreach($directives as $directive) { $directive = trim($directive); @@ -182,16 +182,16 @@ class validate_domain { } } } - + if($blocked === true) { return $this->get_error('nginx_directive_blocked_error').' '.$blocked_line; } } - + /* internal validator function to match regexp */ function _regex_validate($domain_name, $allow_wildcard = false) { - $pattern = '/^' . ($allow_wildcard == true ? '(\*\.)?' : '') . '[\w\.\-]{1,255}\.[a-zA-Z0-9\-]{2,30}$/'; + $pattern = '/^' . ($allow_wildcard == true ? '(\*\.)?' : '') . '[\w\.\-]{1,255}\.[a-zA-Z0-9\-]{2,63}$/'; return preg_match($pattern, $domain_name); } @@ -229,8 +229,8 @@ class validate_domain { $domain_params[] = $aliassubdomain['domain']; } } - - + + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (d.domain = ?" . $additional_sql1 . ") AND d.server_id = ? AND d.domain_id != ?" . ($primary_id ? " AND d.parent_domain_id != ?" : ""); $params = array_merge(array($domain_name), $domain_params, array($domain['server_id'], $primary_id, $primary_id)); $checks = $app->db->queryAllRecords($qrystr, true, $params); @@ -242,7 +242,7 @@ class validate_domain { if($domain['ipv6_address'] != '' && $check['ipv6_address'] == $domain['ipv6_address']) return false; } } - + if($only_domain == false) { $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (CONCAT(d.subdomain, '.', d.domain) = ?" . $additional_sql2 . ") AND d.server_id = ? AND d.domain_id != ?" . ($primary_id ? " AND d.parent_domain_id != ?" : ""); $params = array_merge(array($domain_name), $domain_params, array($domain['server_id'], $primary_id, $primary_id)); @@ -256,7 +256,7 @@ class validate_domain { } } } - + return true; } @@ -274,6 +274,6 @@ class validate_domain { } return true; // admin may always add wildcard domain } - + } diff --git a/interface/lib/classes/validate_server_directive_snippets.inc.php b/interface/lib/classes/validate_server_directive_snippets.inc.php new file mode 100755 index 0000000000000000000000000000000000000000..751400766cfd78a0d8d67e7016dc81b04ad7d723 --- /dev/null +++ b/interface/lib/classes/validate_server_directive_snippets.inc.php @@ -0,0 +1,52 @@ +<?php + +/* +Copyright (c) 2020, Florian Schaal, schaal @it UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class validate_server_directive_snippets { + + function get_error($errmsg) { + global $app; + + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + + function validate_snippet($field_name, $field_value, $validator) { + global $app; + $type=(isset($app->remoting_lib->dataRecord['type']))?$app->remoting_lib->dataRecord['type']:$_POST['type']; + $types = array('apache','nginx','php','proxy'); + if(!in_array($type,$types)) return $this->get_error('directive_snippets_invalid_type'); + $check = $app->db->queryAllRecords('SELECT * FROM directive_snippets WHERE name = ? AND type = ?', $field_value, $type); + if(!empty($check)) return $this->get_error('directive_snippets_name_error_unique'); + } + +} diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index 25dd92083138df99e34cf3d1f6cb5057af80c3b1..f8fd2b5a500479b4dff5741a0ded9410f648db78 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index ff1e39fe34d9ba526550d6276e425f8d12d9a3a4..049807e66da3712e215a7b6f62734ebaecdef900 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Ðеограничен'; ?> diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index 7db654bd05b2ecd8cccdddc501d0f0a7bb56d5e1..3bab13ab3a40eb40f83e06798bf32d1332f9ffce 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -1,45 +1,48 @@ <?php -$wb['conf_format_dateshort'] = 'd/m/Y'; +$wb['conf_format_dateshort'] = 'd-m-Y'; +$wb['conf_format_dateshort_human_readable'] = 'dd-mm-yyyy'; $wb['conf_format_datelong'] = 'l dS de F Y'; $wb['conf_format_timeshort'] = 'H:i'; $wb['conf_format_timelong'] = 'H:i:s'; -$wb['conf_format_datetime'] = 'd/m/Y H:i'; +$wb['conf_format_datetime'] = 'd-m-Y H:i'; $wb['number_format_decimals'] = '4'; $wb['number_format_decimals_client'] = '2'; $wb['number_format_dec_point'] = '.'; $wb['number_format_thousands_sep'] = '.'; $wb['error_301'] = 'Módulo não permitido para o usuário atual.'; -$wb['error_302'] = 'Módulo é inválido.'; -$wb['error_1001'] = 'Usuário ou senha em branco!'; -$wb['error_1002'] = 'Usuário ou senha incorretos!'; -$wb['error_1003'] = 'Usuário inativo!'; -$wb['delete_confirmation'] = 'Tem certeza de que deseja remover este registro?'; -$wb['error_no_view_permission'] = 'Você não tem permissão para visualizar este registro ou o mesmo não existe!'; +$wb['error_302'] = 'Módulo inválido.'; +$wb['error_1001'] = 'Usuário e/ou senha está em branco!'; +$wb['error_1002'] = 'Usuário e/ou senha incorretos!'; +$wb['error_1003'] = 'Usuário desabilitado!'; +$wb['delete_confirmation'] = 'Você tem certeza que deseja remover o registro?'; +$wb['error_no_view_permission'] = 'Você não tem permissão para visualizar este registro ou o registro não existe!'; $wb['error_no_delete_permission'] = 'Você não tem permissão para remover este registro!'; $wb['page_txt'] = 'Página'; $wb['page_of_txt'] = 'de'; -$wb['page_next_txt'] = 'Próximo'; -$wb['page_back_txt'] = 'Voltar'; +$wb['page_and_txt'] = 'e'; +$wb['page_next_txt'] = 'Próxima'; +$wb['page_back_txt'] = 'Anterior'; $wb['delete_txt'] = 'Remover'; $wb['filter_txt'] = 'Filtrar'; $wb['add_new_record_txt'] = 'Adicionar novo registro'; $wb['btn_save_txt'] = 'Salvar'; -$wb['btn_cancel_txt'] = 'Voltar'; -$wb['toolsarea_head_txt'] = 'Extras'; -$wb['page_and_txt'] = 'e'; +$wb['btn_cancel_txt'] = 'Cancelar'; $wb['top_menu_system'] = 'Sistema'; $wb['top_menu_client'] = 'Clientes'; -$wb['top_menu_email'] = 'e-Mails'; +$wb['top_menu_email'] = 'e-Mail'; $wb['top_menu_monitor'] = 'Monitor'; $wb['top_menu_sites'] = 'Sites'; $wb['top_menu_dns'] = 'DNS'; -$wb['top_menu_tools'] = 'Extras'; +$wb['top_menu_tools'] = 'Ferramentas'; $wb['top_menu_help'] = 'Ajuda'; -$wb['top_menu_billing'] = 'Faturas'; +$wb['top_menu_billing'] = 'Faturamento'; +$wb['top_menu_mailuser'] = 'Contas de e-mail'; $wb['top_menu_domain'] = 'DomÃnios'; $wb['top_menu_dashboard'] = 'InÃcio'; -$wb['latest_news_txt'] = 'Últimas notÃcias'; $wb['top_menu_vm'] = 'VPS'; +$wb['toolsarea_head_txt'] = 'Ferramentas'; +$wb['latest_news_txt'] = 'Novidades'; +$wb['logout_txt'] = 'Sair'; $wb['daynamesmin_su'] = 'Do'; $wb['daynamesmin_mo'] = 'Se'; $wb['daynamesmin_tu'] = 'Te'; @@ -68,27 +71,24 @@ $wb['monthnamesshort_nov'] = 'Nov'; $wb['monthnamesshort_dec'] = 'Dez'; $wb['datepicker_nextText'] = 'Próximo'; $wb['datepicker_prevText'] = 'Anterior'; -$wb['logout_txt'] = 'Sair'; -$wb['conf_format_dateshort_human_readable'] = 'dd-mm-aaaa'; -$wb['submit_confirmation'] = 'Você tem certeza que gostaria de executar esta ação?'; -$wb['top_menu_mailuser'] = 'e-Mails'; +$wb['submit_confirmation'] = 'Você tem certeza que deseja realizar esta ação?'; $wb['globalsearch_resultslimit_of_txt'] = 'de'; $wb['globalsearch_resultslimit_results_txt'] = 'resultados'; $wb['globalsearch_noresults_text_txt'] = 'Sem resultados.'; $wb['globalsearch_noresults_limit_txt'] = '0 resultados'; $wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar'; $wb['globalsearch_suggestions_text_txt'] = 'Sugestões'; -$wb['global_tabchange_warning_txt'] = 'As alterações efetuadas nesta aba terão efeito após você pressionar OK. Se cancelar, as alterações serão descartadas.'; -$wb['global_tabchange_discard_txt'] = 'Você não salvou as alterações nesta aba. As alterações serão descartadas se continuar.'; -$wb['datalog_changes_txt'] = 'As seguintes alterações ainda não foram realizadas em todos os servidores.'; -$wb['datalog_changes_end_txt'] = 'Gravar as atualizações pode demorar alguns minutos. Por favor, seja paciente.'; +$wb['global_tabchange_warning_txt'] = 'Para alterar dados nesta aba clique OK. Cancelar descarta todas as alterações.'; +$wb['global_tabchange_discard_txt'] = 'Você não salvou as alterações nesta aba. Todas as alterações serão descartadas caso prossiga.'; +$wb['datalog_changes_txt'] = 'As alterações ainda não propagaram em todos os servidores:'; +$wb['datalog_changes_end_txt'] = 'Gravar alterações pode levar alguns minutos. Por favor, seja paciente.'; $wb['datalog_status_i_web_database'] = 'Adicionar novo banco de dados'; $wb['datalog_status_u_web_database'] = 'Atualizar banco de dados'; $wb['datalog_status_d_web_database'] = 'Remover banco de dados'; -$wb['datalog_status_i_web_database_user'] = 'Adicionar usuário do banco de dados'; -$wb['datalog_status_u_web_database_user'] = 'Atualizar usuário do banco de dados'; -$wb['datalog_status_d_web_database_user'] = 'Remover usuário do banco de dados'; -$wb['datalog_status_i_web_domain'] = 'Adicionar novo site'; +$wb['datalog_status_i_web_database_user'] = 'Adicionar novo usuário de banco de dados'; +$wb['datalog_status_u_web_database_user'] = 'Atualizar usuário de banco de dados'; +$wb['datalog_status_d_web_database_user'] = 'Remover usuário de banco de dados'; +$wb['datalog_status_i_web_domain'] = 'Adicionar site'; $wb['datalog_status_u_web_domain'] = 'Atualizar site'; $wb['datalog_status_d_web_domain'] = 'Remover site'; $wb['datalog_status_i_ftp_user'] = 'Adicionar usuário ftp'; @@ -100,9 +100,12 @@ $wb['datalog_status_d_mail_domain'] = 'Remover domÃnio de e-mail'; $wb['datalog_status_i_mail_user'] = 'Adicionar conta de e-mail'; $wb['datalog_status_u_mail_user'] = 'Atualizar conta de e-mail'; $wb['datalog_status_d_mail_user'] = 'Remover conta de e-mail'; -$wb['datalog_status_i_mail_forwarding'] = 'Adicionar encaminhamento de e-mail'; -$wb['datalog_status_u_mail_forwarding'] = 'Atualizar encaminhamento de e-mail'; -$wb['datalog_status_d_mail_forwarding'] = 'Remover encaminhamento de e-mail'; +$wb['datalog_status_i_spamfilter_users'] = 'Adicionar filtros anti-spam'; +$wb['datalog_status_u_spamfilter_users'] = 'Atualizar filtros anti-spam'; +$wb['datalog_status_d_spamfilter_users'] = 'Remover filtros anti-spam'; +$wb['datalog_status_i_mail_forwarding'] = 'Adicionar endereço de e-mail'; +$wb['datalog_status_u_mail_forwarding'] = 'Atualizar endereço de e-mail'; +$wb['datalog_status_d_mail_forwarding'] = 'Remover endereço de e-mail'; $wb['datalog_status_i_dns_rr'] = 'Adicionar registro dns'; $wb['datalog_status_u_dns_rr'] = 'Atualizar registro dns'; $wb['datalog_status_d_dns_rr'] = 'Remover registro dns'; @@ -112,50 +115,48 @@ $wb['datalog_status_d_dns_soa'] = 'Remover zona dns'; $wb['datalog_status_i_cron'] = 'Adicionar tarefa no cron'; $wb['datalog_status_u_cron'] = 'Atualizar tarefa no cron'; $wb['datalog_status_d_cron'] = 'Remover tarefa no cron'; -$wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de e-mails'; -$wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de e-mails'; -$wb['datalog_status_d_mail_get'] = 'Remover conta de busca de e-mails'; +$wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de e-mail'; +$wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de e-mail'; +$wb['datalog_status_d_mail_get'] = 'Remover conta de busca de e-mail'; $wb['datalog_status_i_mail_mailinglist'] = 'Adicionar lista de e-mails'; $wb['datalog_status_u_mail_mailinglist'] = 'Atualizar lista de e-mails'; $wb['datalog_status_d_mail_mailinglist'] = 'Remover lista de e-mails'; -$wb['datalog_status_i_shell_user'] = 'Adicionar usuário shell'; -$wb['datalog_status_u_shell_user'] = 'Atualizar usuário shell'; -$wb['datalog_status_d_shell_user'] = 'Remover usuário shell'; +$wb['datalog_status_i_shell_user'] = 'Adicionar usuário do shell'; +$wb['datalog_status_u_shell_user'] = 'Atualizar usuário do shell'; +$wb['datalog_status_d_shell_user'] = 'Remover usuário do shell'; $wb['datalog_status_i_web_folder'] = 'Adicionar pasta protegida'; $wb['datalog_status_u_web_folder'] = 'Atualizar pasta protegida'; $wb['datalog_status_d_web_folder'] = 'Remover pasta protegida'; $wb['datalog_status_i_web_folder_user'] = 'Adicionar usuário de pasta protegida'; $wb['datalog_status_u_web_folder_user'] = 'Atualizar usuário de pasta protegida'; $wb['datalog_status_d_web_folder_user'] = 'Remover usuário de pasta protegida'; -$wb['datalog_status_i_spamfilter_users'] = 'Adicionar configurações de filtro anti-spam'; -$wb['datalog_status_u_spamfilter_users'] = 'Atualizar configurações de filtro anti-spam'; -$wb['datalog_status_d_spamfilter_users'] = 'Remover configurações de filtro anti-spam'; +$wb['datalog_status_i_xmpp_domain'] = 'Adicionar domÃnio xmpp'; +$wb['datalog_status_u_xmpp_domain'] = 'Atualizar domÃnio xmpp'; +$wb['datalog_status_d_xmpp_domain'] = 'Remover domÃnio xmpp'; +$wb['datalog_status_i_xmpp_user'] = 'Adicionar usuário xmpp'; +$wb['datalog_status_u_xmpp_user'] = 'Atualizar usuário xmpp'; +$wb['datalog_status_d_xmpp_user'] = 'Remover usuário xmpp'; +$wb['err_csrf_attempt_blocked'] = 'Tentativa de CSRF bloqueada.'; $wb['login_as_txt'] = 'Acessar como'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; $wb['no_destination_perm'] = 'Você não tem permissão para este destino.'; -$wb['client_you_are_locked'] = 'Você não tem permissão para alterar quaisquer configurações.'; +$wb['client_you_are_locked'] = 'Você não tem permissão para alterar nenhuma configuração.'; $wb['gender_m_txt'] = 'Sr.'; $wb['gender_f_txt'] = 'Sra.'; $wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'Este cliente possui registros no módulo de faturamento, portanto não pode ser removido.'; $wb['yes_txt'] = 'Sim'; $wb['no_txt'] = 'Não'; +$wb['None'] = 'Nenhum'; $wb['strength_1'] = 'Fraca'; $wb['strength_2'] = 'Razoável'; $wb['strength_3'] = 'Boa'; $wb['strength_4'] = 'Forte'; $wb['strength_5'] = 'Muito Forte'; -$wb['weak_password_txt'] = 'A senha escolhida não corresponde à s diretrizes de segurança. São necessários no mÃnimo {chars} caracteres e dificuldade {strength}.'; -$wb['weak_password_length_txt'] = 'A senha escolhida não corresponde à s diretrizes de segurança. São necessários no mÃnimo {chars} caracteres.'; -$wb['security_check1_txt'] = 'Verifique se há permissão de segurança:'; -$wb['security_check2_txt'] = 'falha'; -$wb['err_csrf_attempt_blocked'] = 'CSRF temporariamente bloqueado.'; +$wb['weak_password_txt'] = 'A senha configurada não obedece as diretivas de segurança. A senha deve possuir ao menos {chars} caracteres e ao menos um caractere maiúsculoe um caractere especial e dificuldade "{strength}".'; +$wb['weak_password_length_txt'] = 'A senha configurada não obedece as diretivas de segurança. A senha deve possuir ao menos {chars} de comprimento.'; +$wb['security_check1_txt'] = 'Verifique as permissões de segurança:'; +$wb['security_check2_txt'] = 'falhou.'; $wb['select_directive_snippet_txt'] = 'Diretiva de trechos de código'; $wb['select_master_directive_snippet_txt'] = 'Diretiva mestre de trechos de código'; -$wb['None'] = 'Nenhum'; -$wb['datalog_status_i_xmpp_domain'] = 'Adicionar domÃnio XMPP'; -$wb['datalog_status_u_xmpp_domain'] = 'Atualizar domÃnio XMPP'; -$wb['datalog_status_d_xmpp_domain'] = 'Remover domÃnio XMPP'; -$wb['datalog_status_i_xmpp_user'] = 'Adicionar usuário XMPP'; -$wb['datalog_status_u_xmpp_user'] = 'Atualizar usuário XMPP'; -$wb['datalog_status_d_xmpp_user'] = 'Remover usuário XMPP'; +$wb['unlimited_txt'] = 'Ilimitado'; ?> diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng index c39cd0db272fcd0861f0fad0b5d448a6a119c202..6d48482cfc5f5c97825505de23a7fb80abd07aea 100644 --- a/interface/lib/lang/ca.lng +++ b/interface/lib/lang/ca.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Illimité'; ?> diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index 6bd61dd6d970c365f39c0445af0224c9033d928b..93eeb671e5ffc32a0f9e19d647f42cbfcf569ece 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -33,7 +33,7 @@ $wb['top_menu_monitor'] = 'Monitor'; $wb['top_menu_sites'] = 'Stránky'; $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Nástroje'; -$wb['top_menu_help'] = 'Pomoc'; +$wb['top_menu_help'] = 'Podpora'; $wb['toolsarea_head_txt'] = 'Nástroje'; $wb['top_menu_billing'] = 'Fakturace'; $wb['top_menu_domain'] = 'Doména'; @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Smazat XMPP doménu'; $wb['datalog_status_i_xmpp_user'] = 'VytvoÅ™it XMPP uživatele'; $wb['datalog_status_u_xmpp_user'] = 'Aktualizovat XMPP uživatele'; $wb['datalog_status_d_xmpp_user'] = 'Smazat XMPP uživatele'; +$wb['unlimited_txt'] = 'neomezeno'; ?> diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 61551ceeab566d7472f5d4f41687703edf63a34a..54091c14170786b83b4d68c79b801d3dff280c56 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -158,4 +158,5 @@ $wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:'; $wb['security_check2_txt'] = 'fehlgeschlagen.'; $wb['select_directive_snippet_txt'] = 'Direktiven Schnipsel'; $wb['select_master_directive_snippet_txt'] = 'Master Direktiven Schnipsel'; +$wb['unlimited_txt'] = 'unlimitiert'; ?> diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng index 798d2ccd451ef6d6f3d02cb7fbe4869de621754d..cbb9fc5efdc46db92761845cca3164f8224c08c1 100644 --- a/interface/lib/lang/dk.lng +++ b/interface/lib/lang/dk.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Ubegrænset'; ?> diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 382bf4a75839c737702cb9124cd900d739c044f8..3e6c60c90f451a81acfed2b2e904c3df6074d422 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'ΑπεÏιόÏιστα'; ?> diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index 66f4ee3811efc6c82b08b4338cfafc33c5013d9e..b5b2ebcdae470767a4fe90494fca53fe974236e6 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -159,4 +159,5 @@ $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; $wb['select_directive_snippet_txt'] = 'Directive Snippets'; $wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets'; -?> \ No newline at end of file +$wb['unlimited_txt'] = "Unlimited"; +?> diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index 3b1bae0b469eb7e9e1a904c6d41e320e0b980efc..b78499f80022dc44300273382d58c10dd86ae090 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Ilimitado'; ?> diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng old mode 100755 new mode 100644 index d4c23ca777a6388718c07c4be4f6883b99392476..27749510bb0096803b629935fec60b6e23afcd3c --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index 3e9bfa8daa4521f3c5a568df8ff0e4a6932115a3..c302b32faa302e897af10b0aae59e993fbc0af48 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Illimité'; ?> diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 310371be479f1ea8d250aa7956dd7da305318817..3be5dc7e16ea3dfbdc161ac8d1196ccb368f87c3 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'neograniÄeno'; ?> diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index dd4cce79b3bffd015b61ffc7c06379148e78b677..3fc91bd60095011e8d867cc26b0a963c0e847ce4 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Korlátlan'; ?> diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index bd90fd5a1b5e10cb294cec6ff7486a3365bb61e4..13fbff1a0800e7484f367858a26b809409f96916 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Tak terbatas'; ?> diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 33d16c3d5f66d055bfabf69dc69e4dbc7a16ae51..4a85a58e09266d2db52c2aaeff90667b9db77ef3 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'illimitati'; ?> diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index 2a56e77399dc0a7d9f98fabba751d7e909082525..bb1290173c6a83bbcbceba6c2ff00f23442b99b5 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index 888f9c020098702b7d3c1e4b8e9a956419bbee71..a733142d49100c3b025c69ce20b387f00c74ecb9 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Ongelimiteerd'; ?> diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index b5b62c816dd9a20b699ee7eaef9bc076d7af3c6b..ffbac09ef4008cf2bbbd0a0456a99ff758d6a9c5 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'nielimitowane'; ?> diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index 7845520a5bb8db428dab5d281e2bfe476eb725c3..195da8e61926311839005a8b7bf6be3ad1bd319c 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index 613f2377a12bfe152ad2bcc0764ed4480cc8ac51..1365a54172f3098dc1e8d5eba983730a46bc8c02 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index e5e8ce627824d16df119106f9ec94c5dce8e8bce..19cdcf8a047170d3f36b310801ae3a1ffcd40318 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Удалить домен XMPP'; $wb['datalog_status_i_xmpp_user'] = 'Создать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ XMPP'; $wb['datalog_status_u_xmpp_user'] = 'Обновить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ XMPP'; $wb['datalog_status_d_xmpp_user'] = 'Удалить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ XMPP'; +$wb['unlimited_txt'] = 'Безлимитный'; ?> diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index b6767144df9eaaca9528a3666128a2a6af85f114..2d3146f03389ae3acae8fd72c36a1f5c1c89b386 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Obegränsat'; ?> diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index 6b4ef7676f8f38e29409f6b649a3b063670c6853..ece15b3a22865520884ac048cd12e0ba679504aa 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -158,4 +158,5 @@ $wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 115bc890bb97fb7536a4960bc705b0e05d37a46c..31e5f2fbef4e7c47d45321d8bcc3cd08c1701cee 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -36,10 +36,10 @@ $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Araçlar'; $wb['top_menu_help'] = 'Yardım'; $wb['top_menu_billing'] = 'Faturalama'; -$wb['top_menu_mailuser'] = 'Posta Kullanıcısı'; +$wb['top_menu_mailuser'] = 'E-posta Kullanıcısı'; $wb['top_menu_domain'] = 'Alan Adları'; $wb['top_menu_dashboard'] = 'Açılış'; -$wb['top_menu_vm'] = 'SSunucu'; +$wb['top_menu_vm'] = 'sSunucu'; $wb['toolsarea_head_txt'] = 'Araçlar'; $wb['latest_news_txt'] = 'Haberler'; $wb['logout_txt'] = 'Oturumu Kapat'; @@ -74,65 +74,72 @@ $wb['datepicker_prevText'] = 'Önceki'; $wb['submit_confirmation'] = 'Bu iÅŸlemi yapmak istiyor musunuz?'; $wb['globalsearch_resultslimit_of_txt'] = '/'; $wb['globalsearch_resultslimit_results_txt'] = 'sonuç'; -$wb['globalsearch_noresults_text_txt'] = 'Sonuç yok.'; +$wb['globalsearch_noresults_text_txt'] = 'Uygun bir sonuç bulunamadı.'; $wb['globalsearch_noresults_limit_txt'] = '0 sonuç'; $wb['globalsearch_searchfield_watermark_txt'] = 'Arama'; $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; -$wb['global_tabchange_warning_txt'] = 'Bu sekmedeki deÄŸiÅŸiklikler Tamam düğmesine tıklandığında kaydedilir. İptal düğmesine tıklandığında yoksayılır.'; -$wb['global_tabchange_discard_txt'] = 'Bu sekmede kaydedilmemiÅŸ deÄŸiÅŸiklikler var. Devam ederseniz deÄŸiÅŸiklikler yoksayılacak.'; +$wb['global_tabchange_warning_txt'] = 'Bu sekmedeki deÄŸiÅŸiklikler Tamam düğmesine tıklandığında kaydedilir. İptal düğmesine tıklandığında yok sayılır.'; +$wb['global_tabchange_discard_txt'] = 'Bu sekmede kaydedilmemiÅŸ deÄŸiÅŸiklikler var. Devam ederseniz deÄŸiÅŸiklikler yok sayılacak.'; + $wb['datalog_changes_txt'] = 'Åžu deÄŸiÅŸiklikler henüz tüm sunuculara dağıtılmadı:'; $wb['datalog_changes_end_txt'] = 'Güncellemelerin kaydedilmesi bir dakika kadar sürecek. Lütfen bekleyin.'; -$wb['datalog_status_i_web_database'] = 'Veritabanı ekle'; -$wb['datalog_status_u_web_database'] = 'Veritabanını güncelle'; -$wb['datalog_status_d_web_database'] = 'Veritabanını sil'; -$wb['datalog_status_i_web_database_user'] = 'Veritabanı kullanıcısı ekle'; -$wb['datalog_status_u_web_database_user'] = 'Veritabanı kullanıcısını güncelle'; -$wb['datalog_status_d_web_database_user'] = 'Veritabanı kullanıcısını sil'; -$wb['datalog_status_i_web_domain'] = 'Web sitesi ekle'; -$wb['datalog_status_u_web_domain'] = 'Web sitesi ayarlarını güncelle'; -$wb['datalog_status_d_web_domain'] = 'Web sitesini sil'; -$wb['datalog_status_i_ftp_user'] = 'FTP kullanıcısı ekle'; -$wb['datalog_status_u_ftp_user'] = 'FTP kullanıcısını güncelle'; -$wb['datalog_status_d_ftp_user'] = 'FTP kullanıcısını sil'; -$wb['datalog_status_i_mail_domain'] = 'E-posta alan adı ekle'; -$wb['datalog_status_u_mail_domain'] = 'E-posta alan adını güncelle'; -$wb['datalog_status_d_mail_domain'] = 'E-posta alan adını sil'; -$wb['datalog_status_i_mail_user'] = 'E-posta kullanıcısı ekle'; -$wb['datalog_status_u_mail_user'] = 'E-posta kullanıcısını güncelle'; -$wb['datalog_status_d_mail_user'] = 'E-posta kullanıcısını sil'; -$wb['datalog_status_i_spamfilter_users'] = 'Spam süzgeci ayarları ekle'; -$wb['datalog_status_u_spamfilter_users'] = 'Spam süzgeci ayarlarını güncelle'; -$wb['datalog_status_d_spamfilter_users'] = 'Spam süzgeci ayarlarını sil'; -$wb['datalog_status_i_mail_forwarding'] = 'E-posta adresi ekle'; -$wb['datalog_status_u_mail_forwarding'] = 'E-posta adresini güncelle'; -$wb['datalog_status_d_mail_forwarding'] = 'E-posta adresini sil'; -$wb['datalog_status_i_dns_rr'] = 'DNS kaydı ekle'; -$wb['datalog_status_u_dns_rr'] = 'DNS kaydını güncelle'; -$wb['datalog_status_d_dns_rr'] = 'DNS kaydını sil'; -$wb['datalog_status_i_dns_soa'] = 'DNS bölgesi ekle'; -$wb['datalog_status_u_dns_soa'] = 'DNS bölgesini güncelle'; -$wb['datalog_status_d_dns_soa'] = 'DNS bölgesini sil'; -$wb['datalog_status_i_cron'] = 'Zamanlanmış görev ekle'; -$wb['datalog_status_u_cron'] = 'Zamanlanmış görevi güncelle'; -$wb['datalog_status_d_cron'] = 'Zamanlanmış görevi sil'; -$wb['datalog_status_i_mail_get'] = 'E-posta alma hesabı ekle'; -$wb['datalog_status_u_mail_get'] = 'E-posta alma hesabını güncelle'; -$wb['datalog_status_d_mail_get'] = 'E-posta alma hesabını sil'; -$wb['datalog_status_i_mail_mailinglist'] = 'E-posta listesi ekle'; -$wb['datalog_status_u_mail_mailinglist'] = 'E-posta listesini güncelle'; -$wb['datalog_status_d_mail_mailinglist'] = 'E-posta listesini sil'; -$wb['datalog_status_i_shell_user'] = 'Kabuk kullanıcısı ekle'; -$wb['datalog_status_u_shell_user'] = 'Kabuk kullanıcısını güncelle'; -$wb['datalog_status_d_shell_user'] = 'Kabuk kullanıcısını sil'; -$wb['datalog_status_i_web_folder'] = 'Klasör koruması ekle'; -$wb['datalog_status_u_web_folder'] = 'Klasör korumasını güncelle'; -$wb['datalog_status_d_web_folder'] = 'Klasör korumasını sil'; -$wb['datalog_status_i_web_folder_user'] = 'Klasör koruma kullanıcısı ekle'; -$wb['datalog_status_u_web_folder_user'] = 'Klasör koruma kullanıcısını güncelle'; -$wb['datalog_status_d_web_folder_user'] = 'Klasör koruma kullanıcısını sil'; +$wb['datalog_status_i_web_database'] = 'Veritabanı Ekle'; +$wb['datalog_status_u_web_database'] = 'Veritabanını Güncelle'; +$wb['datalog_status_d_web_database'] = 'Veritabanını Sil'; +$wb['datalog_status_i_web_database_user'] = 'Veritabanı Kullanıcısı Ekle'; +$wb['datalog_status_u_web_database_user'] = 'Veritabanı Kullanıcısını Güncelle'; +$wb['datalog_status_d_web_database_user'] = 'Veritabanı Kullanıcısını Sil'; +$wb['datalog_status_i_web_domain'] = 'Web Sitesi Ekle'; +$wb['datalog_status_u_web_domain'] = 'Web Sitesi Ayarlarını Güncelle'; +$wb['datalog_status_d_web_domain'] = 'Web Sitesini Sil'; +$wb['datalog_status_i_ftp_user'] = 'FTP Kullanıcısı Ekle'; +$wb['datalog_status_u_ftp_user'] = 'FTP Kullanıcısını Güncelle'; +$wb['datalog_status_d_ftp_user'] = 'FTP Kullanıcısını Sil'; +$wb['datalog_status_i_mail_domain'] = 'E-posta Etki Alanı Ekle'; +$wb['datalog_status_u_mail_domain'] = 'E-posta Etki Alanını Güncelle'; +$wb['datalog_status_d_mail_domain'] = 'E-posta Etki Alanını Sil'; +$wb['datalog_status_i_mail_user'] = 'E-posta Kullanıcısı Ekle'; +$wb['datalog_status_u_mail_user'] = 'E-posta Kullanıcısını Güncelle'; +$wb['datalog_status_d_mail_user'] = 'E-posta Kullanıcısını Sil'; +$wb['datalog_status_i_spamfilter_users'] = 'Spam Süzgeci Ayarları Ekle'; +$wb['datalog_status_u_spamfilter_users'] = 'Spam Süzgeci Ayarlarını Güncelle'; +$wb['datalog_status_d_spamfilter_users'] = 'Spam Süzgeci Ayarlarını Sil'; +$wb['datalog_status_i_mail_forwarding'] = 'E-posta Adresi Ekle'; +$wb['datalog_status_u_mail_forwarding'] = 'E-posta Adresini Güncelle'; +$wb['datalog_status_d_mail_forwarding'] = 'E-posta Adresini Sil'; +$wb['datalog_status_i_dns_rr'] = 'DNS Kaydı Ekle'; +$wb['datalog_status_u_dns_rr'] = 'DNS Kaydını Güncelle'; +$wb['datalog_status_d_dns_rr'] = 'DNS Kaydını Sil'; +$wb['datalog_status_i_dns_soa'] = 'DNS Bölgesi Ekle'; +$wb['datalog_status_u_dns_soa'] = 'DNS Bölgesini Güncelle'; +$wb['datalog_status_d_dns_soa'] = 'DNS Bölgesini Sil'; +$wb['datalog_status_i_cron'] = 'Zamanlanmış Görev Ekle'; +$wb['datalog_status_u_cron'] = 'Zamanlanmış Görevi Güncelle'; +$wb['datalog_status_d_cron'] = 'Zamanlanmış Görevi Sil'; +$wb['datalog_status_i_mail_get'] = 'E-posta Alma Hesabı Ekle'; +$wb['datalog_status_u_mail_get'] = 'E-posta Alma Hesabını Güncelle'; +$wb['datalog_status_d_mail_get'] = 'E-posta Alma Hesabını Sil'; +$wb['datalog_status_i_mail_mailinglist'] = 'E-posta Listesi Ekle'; +$wb['datalog_status_u_mail_mailinglist'] = 'E-posta Listesini Güncelle'; +$wb['datalog_status_d_mail_mailinglist'] = 'E-posta Listesini Sil'; +$wb['datalog_status_i_shell_user'] = 'Kabuk Kullanıcısı Ekle'; +$wb['datalog_status_u_shell_user'] = 'Kabuk Kullanıcısını Güncelle'; +$wb['datalog_status_d_shell_user'] = 'Kabuk Kullanıcısını Sil'; +$wb['datalog_status_i_web_folder'] = 'Klasör Koruması Ekle'; +$wb['datalog_status_u_web_folder'] = 'Klasör Korumasını Güncelle'; +$wb['datalog_status_d_web_folder'] = 'Klasör Korumasını Sil'; +$wb['datalog_status_i_web_folder_user'] = 'Klasör Koruma Kullanıcısı Ekle'; +$wb['datalog_status_u_web_folder_user'] = 'Klasör Koruma Kullanıcısını Güncelle'; +$wb['datalog_status_d_web_folder_user'] = 'Klasör Koruma Kullanıcısını Sil'; +$wb['datalog_status_i_xmpp_domain'] = 'XMPP etki alanı ekle'; +$wb['datalog_status_u_xmpp_domain'] = 'XMPP etki alanını düzenle'; +$wb['datalog_status_d_xmpp_domain'] = 'XMPP etki alanını sil'; +$wb['datalog_status_i_xmpp_user'] = 'XMPP kullanıcısı ekle'; +$wb['datalog_status_u_xmpp_user'] = 'XMPP kullanıcısını güncelle'; +$wb['datalog_status_d_xmpp_user'] = 'XMPP kullanıcısını sil'; $wb['err_csrf_attempt_blocked'] = 'CSRF giriÅŸimi engellendi.'; $wb['login_as_txt'] = 'Müşteri adıyla oturum aç'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; $wb['no_destination_perm'] = 'Bu hedef için izniniz yok.'; $wb['client_you_are_locked'] = 'Herhangi bir ayarı deÄŸiÅŸtirme izniniz yok.'; $wb['gender_m_txt'] = 'Bay'; @@ -146,16 +153,11 @@ $wb['strength_2'] = 'Yeterli'; $wb['strength_3'] = 'İyi'; $wb['strength_4'] = 'Güçlü'; $wb['strength_5'] = 'Çok Güçlü'; -$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun deÄŸil. Parola en az {chars} karakter uzunluÄŸunda ve \\"{strength}\\" güçlüğünde olmalı.'; +$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun deÄŸil. Parola en az {chars} karakter uzunluÄŸunda ve "{strength}" güçlüğünde olmalı.'; $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun deÄŸil. Parola en az {chars} karakter uzunluÄŸunda olmalı.'; $wb['security_check1_txt'] = 'Güvenlik iznini denetle:'; $wb['security_check2_txt'] = 'baÅŸarısız.'; -$wb['select_directive_snippet_txt'] = 'Directive Snippets'; -$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets'; -$wb['datalog_status_i_xmpp_domain'] = 'Create XMPP domain'; -$wb['datalog_status_u_xmpp_domain'] = 'Update XMPP domain'; -$wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; -$wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; -$wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; -$wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['select_directive_snippet_txt'] = 'Yönerge Kod Parçaları'; +$wb['select_master_directive_snippet_txt'] = 'Ana Komut Parçaları'; +$wb['unlimited_txt'] = 'Sınırsız'; ?> diff --git a/interface/lib/plugins/mail_mail_domain_plugin.inc.php b/interface/lib/plugins/mail_mail_domain_plugin.inc.php index df6e3ffeb0b7da88a1fce62bee20e4e84d683ed2..598fe74f09bb75c843b4a9a66a322e454a471957 100644 --- a/interface/lib/plugins/mail_mail_domain_plugin.inc.php +++ b/interface/lib/plugins/mail_mail_domain_plugin.inc.php @@ -116,6 +116,16 @@ class mail_mail_domain_plugin { $app->db->query("UPDATE spamfilter_users SET email=REPLACE(email, ?, ?), sys_userid = ?, sys_groupid = ? WHERE email LIKE ?", $page_form->oldDataRecord['domain'], $domain, $client_user_id, $sys_groupid, "%@" . $page_form->oldDataRecord['domain']); } // end if domain name changed + + //* Force-update the aliases (required for spamfilter changes) + $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source LIKE ? OR destination LIKE ?", "%@" . $domain, "%@" . $domain); + + if(is_array($forwardings)) { + foreach($forwardings as $rec) { + $app->db->datalogUpdate('mail_forwarding', array("source" => $rec['source']), 'forwarding_id', $rec['forwarding_id'],true); + } + } + } } diff --git a/interface/lib/plugins/mail_user_filter_plugin.inc.php b/interface/lib/plugins/mail_user_filter_plugin.inc.php index 5afd1c004494fc96062d253d3aa8f8779e6a235b..ccf58b853c0bb3b9da0224b527558507f4a62ead 100644 --- a/interface/lib/plugins/mail_user_filter_plugin.inc.php +++ b/interface/lib/plugins/mail_user_filter_plugin.inc.php @@ -55,9 +55,9 @@ class mail_user_filter_plugin { /* - function to create the mail filter rule and insert it into the custom rules - field when a new mail filter is added or modified. - */ + * Render the mail filter rule in the desired format and insert it into the custom rules + * field when a new mail filter is added or modified. + */ function mail_user_filter_edit($event_name, $page_form) { global $app, $conf; @@ -80,7 +80,7 @@ class mail_user_filter_plugin { } } - // We did not found our rule, so we add it now as first rule. + // We did not find our rule, so we add it now as first rule. if($found == false && $page_form->dataRecord["active"] == 'y') { $new_rule = $this->mail_user_filter_get_rule($page_form); $out = $new_rule . $out; @@ -91,6 +91,9 @@ class mail_user_filter_plugin { } + /* + * Remove the rendered filter from custom_mailfilter when a mail_user_filter is deleted. + */ function mail_user_filter_del($event_name, $page_form) { global $app, $conf; diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php index 2d1ce3794ac2407f67a73c28c79dc6ab124505bd..3f9b0db5b6b7ef92fcbaf112ca4ea092d22872fb 100644 --- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php +++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php @@ -249,18 +249,22 @@ class sites_web_vhost_domain_plugin { } //* Change database backup options when web backup options have been changed - if(isset($page_form->dataRecord['backup_interval']) && ($page_form->dataRecord['backup_interval'] != $page_form->oldDataRecord['backup_interval'] || $page_form->dataRecord['backup_copies'] != $page_form->oldDataRecord['backup_copies'])) { + if(isset($page_form->dataRecord['backup_interval']) && ($page_form->dataRecord['backup_interval'] != $page_form->oldDataRecord['backup_interval'] || $page_form->dataRecord['backup_copies'] != $page_form->oldDataRecord['backup_copies'] || $page_form->dataRecord['backup_format_web'] != $page_form->oldDataRecord['backup_format_web'] || $page_form->dataRecord['backup_format_db'] != $page_form->oldDataRecord['backup_format_db'])) { //* Update all databases $backup_interval = $page_form->dataRecord['backup_interval']; $backup_copies = $app->functions->intval($page_form->dataRecord['backup_copies']); + $backup_format_web = $page_form->dataRecord['backup_format_web']; + $backup_format_db = $page_form->dataRecord['backup_format_db']; $records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE parent_domain_id = ".$page_form->id); foreach($records as $rec) { - $app->db->datalogUpdate('web_database', array("backup_interval" => $backup_interval, "backup_copies" => $backup_copies), 'database_id', $rec['database_id']); + $app->db->datalogUpdate('web_database', array("backup_interval" => $backup_interval, "backup_copies" => $backup_copies, "backup_format_web" => $backup_format_web, "backup_format_db" => $backup_format_db), 'database_id', $rec['database_id']); } unset($records); unset($rec); unset($backup_copies); unset($backup_interval); + unset($backup_format_web); + unset($backup_format_db); } //* Change vhost subdomain and alias ip/ipv6 if domain ip/ipv6 has changed diff --git a/interface/web/admin/directive_snippets_edit.php b/interface/web/admin/directive_snippets_edit.php index b12da0a79bf28f000b0c11103db13482557608ad..e22a7cf42a2d7903121f6c87873c19a06f93a71f 100644 --- a/interface/web/admin/directive_snippets_edit.php +++ b/interface/web/admin/directive_snippets_edit.php @@ -75,6 +75,7 @@ class page_action extends tform_actions { $app->tpl->setVar("snippet", $this->dataRecord['snippet'], true); } } + $app->tpl->setVar("is_master", $is_master); parent::onShowEnd(); @@ -82,15 +83,41 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; - + if($this->id > 0){ $record = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ?", $this->id); if($record['master_directive_snippets_id'] > 0){ unset($app->tform->formDef["tabs"]['directive_snippets']['fields']['name'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['type'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['snippet'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['required_php_snippets']); } + + if(isset($this->dataRecord['update_sites'])) { + parent::onSubmit(); + } else { + $app->db->query('UPDATE directive_snippets SET name = ?, type = ?, snippet = ?, customer_viewable = ?, required_php_snippets = ?, active = ? WHERE directive_snippets_id = ?', $this->dataRecord['name'], $this->dataRecord['type'], $this->dataRecord['snippet'], $this->dataRecord['customer_viewable'], implode(',', $this->dataRecord['required_php_snippets']), $this->dataRecord['active'], $this->id); + + if($_REQUEST["next_tab"] == '') { + $list_name = $_SESSION["s"]["form"]["return_to"]; + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"]; + $_SESSION["s"]["form"]["return_to"] = ''; + session_write_close(); + header($redirect); + } elseif (isset($_SESSION["s"]["form"]["return_to_url"]) && $_SESSION["s"]["form"]["return_to_url"] != '') { + $redirect = $_SESSION["s"]["form"]["return_to_url"]; + $_SESSION["s"]["form"]["return_to_url"] = ''; + session_write_close(); + header("Location: ".$redirect); + exit; + } else { + header("Location: ".$app->tform->formDef['list_default']); + } + exit; + } + } + unset($record); } - + parent::onSubmit(); } diff --git a/interface/web/admin/form/directive_snippets.tform.php b/interface/web/admin/form/directive_snippets.tform.php index 544cb8b85537df42206ea5c861f20d0050bfb69b..bf7f2b7fe52d1effbbd810d46ab254104e282fb7 100644 --- a/interface/web/admin/form/directive_snippets.tform.php +++ b/interface/web/admin/form/directive_snippets.tform.php @@ -66,10 +66,9 @@ $form["tabs"]['directive_snippets'] = array ( 'name' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directive_snippets_name_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'directive_snippets_name_error_unique'), + 'validators' => array ( + 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'directive_snippets_name_empty'), + 1 => array ( 'type' => 'CUSTOM', 'class' => 'validate_server_directive_snippets', 'function' => 'validate_snippet'), ), 'filters' => array( 0 => array( 'event' => 'SAVE', @@ -111,6 +110,12 @@ $form["tabs"]['directive_snippets'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'update_sites' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), 'required_php_snippets' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOXARRAY', @@ -123,7 +128,7 @@ $form["tabs"]['directive_snippets'] = array ( 'separator' => ',', ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/admin/form/firewall.tform.php b/interface/web/admin/form/firewall.tform.php index ce7d2dbd09f1c891a78a17471e18b27f9fc906e2..e136b345be40b4cc6e48d0c16d1f98d1ef48a104 100644 --- a/interface/web/admin/form/firewall.tform.php +++ b/interface/web/admin/form/firewall.tform.php @@ -79,7 +79,7 @@ $form["tabs"]['firewall'] = array ( 'regex' => '/^[\s0-9\,\:]{0,255}$/', 'errmsg'=> 'tcp_ports_error_regex'), ), - 'default' => '20,21,22,25,53,80,110,143,443,587,993,995,3306,8080,8081,10000', + 'default' => '20,21,22,25,53,80,110,143,443,465,587,993,995,3306,8080,8081,10000', 'value' => '', 'width' => '30', 'maxlength' => '255' @@ -103,7 +103,7 @@ $form["tabs"]['firewall'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/admin/form/remote_user.tform.php b/interface/web/admin/form/remote_user.tform.php index 895d9418a9489e95466272cb5d6e44ed17cb0b67..9263266a27f6ca902f21cfbd57556d16a6f768af 100644 --- a/interface/web/admin/form/remote_user.tform.php +++ b/interface/web/admin/form/remote_user.tform.php @@ -45,7 +45,7 @@ if(is_array($modules)) { } } -$form["title"] = "Remote user"; +$form["title"] = "remote_user_txt"; $form["description"] = ""; $form["name"] = "remote_user"; $form["action"] = "remote_user_edit.php"; @@ -63,7 +63,7 @@ $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete $form["tabs"]['remote_user'] = array ( - 'title' => "Remote User", + 'title' => "remote_user_txt", 'width' => 100, 'template' => "templates/remote_user_edit.htm", 'fields' => array ( @@ -151,7 +151,7 @@ $form["tabs"]['remote_user'] = array ( ) //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/admin/form/server.tform.php b/interface/web/admin/form/server.tform.php index 95dca6c33b5cb552b29692b3c0f27f2e76924024..f205758a8dfc30017fd406c7362db06a0c958e56 100644 --- a/interface/web/admin/form/server.tform.php +++ b/interface/web/admin/form/server.tform.php @@ -135,7 +135,7 @@ $form["tabs"]['services'] = array ( 'value' => array(0 => 'No', 1 => 'Yes') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -160,7 +160,7 @@ $form["tabs"]['config'] = array ( 'maxlength' => '' ), ################################## - # ENDE Datatable fields + # END Datatable fields ################################## ) ); diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index e0cf897abd1f066afba44f40d16c0703044649ac..de2caf175023ca6718a1ae4c753a7f5980f6b998 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -33,7 +33,7 @@ */ -$form["title"] = "Server Config"; +$form["title"] = "server_config"; $form["description"] = ""; $form["name"] = "server_config"; $form["action"] = "server_config_edit.php"; @@ -131,7 +131,7 @@ $form["tabs"]['server'] = array( 'validators' => array( 0 => array('type' => 'NOTEMPTY', 'errmsg' => 'hostname_error_empty'), 1 => array ('type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,63}$/', 'errmsg'=> 'hostname_error_regex'), ), 'value' => '', @@ -413,7 +413,7 @@ $form["tabs"]['server'] = array( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -466,6 +466,29 @@ $form["tabs"]['mail'] = array( 'width' => '40', 'maxlength' => '255' ), + 'content_filter' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'rspamd', + 'value' => array('amavisd' => 'Amavisd', 'rspamd' => 'Rspamd') + ), + 'rspamd_password' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'TRIM'), + ), + ), + 'rspamd_available' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'dkim_path' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -676,7 +699,7 @@ $form["tabs"]['mail'] = array( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -704,7 +727,7 @@ $form["tabs"]['getmail'] = array( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -797,6 +820,28 @@ $form["tabs"]['web'] = array( 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'vhost_proxy_protocol_enabled' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'vhost_proxy_protocol_http_port' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '880', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'vhost_proxy_protocol_https_port' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '8443', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), 'vhost_conf_dir' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -825,6 +870,18 @@ $form["tabs"]['web'] = array( 'width' => '40', 'maxlength' => '255' ), + 'apache_init_script' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'REGEX', + 'regex' => '/^(|[a-zA-Z0-9\.\-\_]{1,128})$/', + 'errmsg' => 'apache_init_script_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), 'nginx_enable_pagespeed' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -1094,6 +1151,12 @@ $form["tabs"]['web'] = array( 'width' => '40', 'maxlength' => '255' ), + 'php_default_hide' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'php_default_name' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -1211,6 +1274,12 @@ $form["tabs"]['web'] = array( 'value' => array('no' => 'disabled_txt', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM'), 'searchable' => 2 ), + 'php_fpm_default_chroot' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'php_fpm_incron_reload' => array( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -1248,15 +1317,6 @@ $form["tabs"]['web'] = array( 'width' => '40', 'maxlength' => '255' ), - 'enable_spdy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array ( - 0 => 'n', - 1 => 'y' - ) - ), 'apps_vhost_enabled' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -1376,8 +1436,16 @@ $form["tabs"]['web'] = array( 1 => 'y' ) ), + 'php_fpm_reload_mode' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'reload', + 'value' => array('reload' => 'Reload', 'restart' => 'Restart'), + 'width' => '40', + 'maxlength' => '255' + ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -1467,7 +1535,7 @@ $form["tabs"]['dns'] = array( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -1584,7 +1652,7 @@ $form["tabs"]['fastcgi'] = array( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -1747,7 +1815,7 @@ $form["tabs"]['jailkit'] = array( 'maxlength' => '1000' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -1810,7 +1878,7 @@ $form["tabs"]['ufw_firewall'] = array ( 'value' => array('low' => 'low', 'medium' => 'medium', 'high' => 'high') ) ################################## - # ENDE Datatable fields + # END Datatable fields ################################## ) ); @@ -1839,7 +1907,7 @@ $form["tabs"]['vlogger'] = array( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -1897,7 +1965,7 @@ $form["tabs"]['cron'] = array( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -1941,8 +2009,14 @@ $form["tabs"]['rescue'] = array( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); -?> + +/*$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); +if(!isset($mail_config['rspamd_available']) || $mail_config['rspamd_available'] != 'y') { + $form['tabs']['mail']['fields']['content_filter']['default'] = 'amavisd'; + unset($form['tabs']['mail']['fields']['content_filter']['value']['rspamd']); + unset($form['tabs']['mail']['fields']['rspamd_password']); +}*/ diff --git a/interface/web/admin/form/server_ip.tform.php b/interface/web/admin/form/server_ip.tform.php index cd7190ebc6923c74d82f8abddd3aa2421e8f381f..d86dbb753568f035144de4e7c087ca1469e570e6 100644 --- a/interface/web/admin/form/server_ip.tform.php +++ b/interface/web/admin/form/server_ip.tform.php @@ -64,8 +64,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -$form["title"] = "IP Addresses"; -$form["description"] = "Form to edit system IP Addresses"; +$form["title"] = "server_ip_edit_title"; +$form["description"] = "server_ip_edit_desc"; $form["name"] = "server_ip"; $form["action"] = "server_ip_edit.php"; $form["db_table"] = "server_ip"; diff --git a/interface/web/admin/form/server_ip_map.tform.php b/interface/web/admin/form/server_ip_map.tform.php index 4f7ed3d28c55e3744605d2d390da8e0eeec1006a..2374ca0ce0e59d3bb32a4579147472e3cc6bedd4 100644 --- a/interface/web/admin/form/server_ip_map.tform.php +++ b/interface/web/admin/form/server_ip_map.tform.php @@ -28,8 +28,8 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -$form["title"] = "IPv4 Address mapping"; -$form["description"] = "Form to map IPv4-addresses for Web-Server"; +$form["title"] = "server_ip_map_title"; +$form["description"] = "server_ip_map_desc"; $form["name"] = "server_ip_map"; $form["action"] = "server_ip_map_edit.php"; $form["db_table"] = "server_ip_map"; @@ -46,7 +46,7 @@ $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete $form["tabs"]['server_ip_map'] = array ( - 'title' => "IP Address Mapping", + 'title' => "server_ip_map_title", 'width' => 80, 'template' => "templates/server_ip_map_edit.htm", 'fields' => array ( diff --git a/interface/web/admin/form/server_php.tform.php b/interface/web/admin/form/server_php.tform.php index 67e54ec6b5dacd7d085100e11dcd60d400b347be..6d443e8d50a939f5807e1ec2c9d08de382e9ba04 100644 --- a/interface/web/admin/form/server_php.tform.php +++ b/interface/web/admin/form/server_php.tform.php @@ -174,7 +174,7 @@ $form["tabs"]['php_fastcgi'] = array( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -230,7 +230,7 @@ $form["tabs"]['php_fpm'] = array( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index d718e4ef8221fe73788d8ab6fc2eaec82a692c75..4dd069b613a99aa7bc694ceba6d656a785172fcc 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -33,7 +33,7 @@ */ -$form["title"] = "System Config"; +$form["title"] = "system_config_title"; $form["description"] = "system_config_desc_txt"; $form["name"] = "system_config"; $form["action"] = "system_config_edit.php"; @@ -200,8 +200,37 @@ $form["tabs"]['sites'] = array ( 'value' => '', 'name' => 'default_dbserver' ), + 'disable_client_remote_dbserver' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'default_remote_dbserver' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_database', + 'function' => 'valid_ip_list', + 'errmsg' => 'database_remote_error_ips'), + ), + 'default' => '', + 'value' => '', + 'width' => '60', + 'searchable' => 2 + ), + 'web_php_options' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'web_php_options_notempty'), + ), + 'default' => '', + 'separator' => ',', + 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM') + ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -387,7 +416,7 @@ $form["tabs"]['mail'] = array ( 'name' => 'default_mailserver' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -423,7 +452,7 @@ $form["tabs"]['dns'] = array ( 'name' => 'default_slave_dnsserver' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -453,7 +482,7 @@ $form["tabs"]['domains'] = array ( 'value' => '' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -596,6 +625,20 @@ $form["tabs"]['misc'] = array ( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'maintenance_mode_exclude_ips' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( + 0 => array ( + 'type' => 'ISIP', + 'allowempty' => true, + 'separator' => ',', + 'errmsg'=> 'maintenance_mode_exclude_ips_error_isip' + ), + ), + 'default' => '', + 'value' => '' + ), 'admin_dashlets_left' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -723,9 +766,15 @@ $form["tabs"]['misc'] = array ( 'formtype' => 'SELECT', 'default' => '', 'value' => array('' => 'None', '1' => 'strength_1', '2' => 'strength_2', '3' => 'strength_3', '4' => 'strength_4', '5' => 'strength_5') + ), + 'ssh_authentication' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('' => 'ssh_authentication_password_key', 'password' => 'ssh_authentication_password', 'key' => 'ssh_authentication_key') ) //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -747,4 +796,3 @@ $form['tabs']['dns_ca'] = array ( ) ); -?> diff --git a/interface/web/admin/form/users.tform.php b/interface/web/admin/form/users.tform.php index 6a23559f1273b5113bb0165a3862905b5ab3b582..1aab0a42985bb8b28932393366e4de14d67f8aa2 100644 --- a/interface/web/admin/form/users.tform.php +++ b/interface/web/admin/form/users.tform.php @@ -60,8 +60,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -$form['title'] = 'Users'; -$form['description'] = 'Form to edit systemusers.'; +$form['title'] = 'users_txt'; +//$form['description'] = 'Form to edit systemusers.'; $form['name'] = 'users'; $form['action'] = 'users_edit.php'; $form['db_table'] = 'sys_user'; @@ -129,7 +129,7 @@ if(is_array($tmp_records)) { } $form['tabs']['users'] = array ( - 'title' => 'Users', + 'title' => 'users_txt', 'width' => 80, 'template' => 'templates/users_user_edit.htm', 'fields' => array ( @@ -199,6 +199,12 @@ $form['tabs']['users'] = array ( 'startmodule' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'startmodule_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'startmodule_regex'), + ), 'regex' => '', 'errmsg' => '', 'default' => '', diff --git a/interface/web/admin/lib/lang/ar_directive_snippets.lng b/interface/web/admin/lib/lang/ar_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ar_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ar_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ar_remote_user.lng b/interface/web/admin/lib/lang/ar_remote_user.lng index d0504005e310ec5464c4c9fda2eb637bd008f75a..98670aea070653a7d752c9724c08db8efbf97196 100644 --- a/interface/web/admin/lib/lang/ar_remote_user.lng +++ b/interface/web/admin/lib/lang/ar_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Username'; $wb['password_txt'] = 'Password'; $wb['function_txt'] = 'Functions'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 00e94f766b0cd61c2cd51ad93363c10bd290370d..4123c113d18a4a8d298321fc5610dc805425659b 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'Website basedir'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_note_txt'] = 'Leaving this empty will auto-detect the Apache init script'; +$wb['apache_init_script_error_regex'] = 'Invalid apache init script.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['CA_path_txt'] = 'CA Path'; $wb['CA_pass_txt'] = 'CA passphrase'; $wb['ufw_enable_txt'] = 'Enable'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ar_server_ip.lng b/interface/web/admin/lib/lang/ar_server_ip.lng index 88d8a2f6043c7655289f1cc985fa40a20aa36393..1947d3ec371178e804086ad8b872b8bdeccb538f 100644 --- a/interface/web/admin/lib/lang/ar_server_ip.lng +++ b/interface/web/admin/lib/lang/ar_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP Address'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/ar_server_ip_map.lng b/interface/web/admin/lib/lang/ar_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/ar_server_ip_map.lng +++ b/interface/web/admin/lib/lang/ar_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/ar_server_php_list.lng b/interface/web/admin/lib/lang/ar_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/ar_server_php_list.lng +++ b/interface/web/admin/lib/lang/ar_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index 6bebcf39ada5f9a2eac4ca9b21011f0d4eb440e2..b871fc930c23eb9327f607d14d2d44f702479975 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.'; $wb['dbname_prefix_txt'] = 'Database name prefix'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ar_users.lng b/interface/web/admin/lib/lang/ar_users.lng index dcbc4f4727145c78a9a6a70b4ac3cca5b3ecc0c7..dd4ef0143de1544544ac635454cd3dc9040bbddf 100644 --- a/interface/web/admin/lib/lang/ar_users.lng +++ b/interface/web/admin/lib/lang/ar_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Username'; $wb['username_err'] = 'The username is too long or contains invalid characters.'; $wb['username_empty'] = 'The username is empty.'; diff --git a/interface/web/admin/lib/lang/bg_directive_snippets.lng b/interface/web/admin/lib/lang/bg_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/bg_directive_snippets.lng +++ b/interface/web/admin/lib/lang/bg_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/bg_remote_user.lng b/interface/web/admin/lib/lang/bg_remote_user.lng index 6eac31e4fe33008bf87047588e55969d450fa76c..f52283d908f6b746aeea7234ea80b828e2e197be 100644 --- a/interface/web/admin/lib/lang/bg_remote_user.lng +++ b/interface/web/admin/lib/lang/bg_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'ПотребителÑко име'; $wb['password_txt'] = 'Парола'; $wb['function_txt'] = 'Функции'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias функции'; $wb['DNS cname functions'] = 'DNS cname функции'; $wb['DNS hinfo functions'] = 'DNS hinfo функции'; $wb['DNS mx functions'] = 'DNS mx функции'; +$wb['DNS naptr functions'] = 'DNS naptr функции'; $wb['DNS ns functions'] = 'DNS ns функции'; $wb['DNS ptr functions'] = 'DNS ptr функции'; $wb['DNS rp functions'] = 'DNS rp функции'; diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 7c6ae9f2dc6380c7da80d6f06f7626e44c6db620..463d1c7b2a2e0c08b40bbe929412c8794c115869 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -7,6 +10,9 @@ $wb['website_symlinks_txt'] = 'Website symlinks'; $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init Ñкрипт'; +$wb['apache_init_script_note_txt'] = 'ОÑтавÑнето на това празно ще открие автоматично Ñкрипта за Apache init'; +$wb['apache_init_script_error_regex'] = 'Ðевалиден Apache Ñкрипт за задейÑтване.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° бекъп'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_ip.lng b/interface/web/admin/lib/lang/bg_server_ip.lng index 733757775479d18b80bda5618fb57e95b86fb0c6..70f428a6342becd816ccf937523ee4be4ed4226c 100644 --- a/interface/web/admin/lib/lang/bg_server_ip.lng +++ b/interface/web/admin/lib/lang/bg_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Сървър'; $wb['ip_address_txt'] = 'IP адреÑ'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/bg_server_ip_map.lng b/interface/web/admin/lib/lang/bg_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/bg_server_ip_map.lng +++ b/interface/web/admin/lib/lang/bg_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/bg_server_php_list.lng b/interface/web/admin/lib/lang/bg_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/bg_server_php_list.lng +++ b/interface/web/admin/lib/lang/bg_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 8c3444e9cb8e234c6d4ac66d732e20476cffdc67..cf8e8c8273fc278b01ec2ef873e60b2445d9b94b 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['warning'] = 'Редактирай тези променливи внимателно! Ðе премахвай префикÑите на ÑиÑтемата.'; $wb['dbname_prefix_txt'] = 'Име на префикÑа в базата данни'; $wb['dbuser_prefix_txt'] = 'ПотребителÑки Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð² базата данни'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'ÐдминиÑтраторÑки емаил'; $wb['admin_name_txt'] = 'ÐдминиÑтраторÑки имена'; $wb['system_config_desc_txt'] = ''; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/bg_users.lng b/interface/web/admin/lib/lang/bg_users.lng index e8dc631a59b6d652228c0eb9d311c93cdc63daba..801d9e70a693b63b0e68dd29122529a49422e0d9 100644 --- a/interface/web/admin/lib/lang/bg_users.lng +++ b/interface/web/admin/lib/lang/bg_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'ПотребителÑко име'; $wb['username_err'] = 'ПотребителÑкото име е твърде дълго или Ñъдържа непозволени Ñимволи.'; $wb['username_empty'] = 'Полето Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñкото име е празно.'; diff --git a/interface/web/admin/lib/lang/br.lng b/interface/web/admin/lib/lang/br.lng index c4df3fe58bcaf2acb7aa86fb208e245366be4383..b558a1510ea75b28c592710886d259ca93be5366 100644 --- a/interface/web/admin/lib/lang/br.lng +++ b/interface/web/admin/lib/lang/br.lng @@ -1,8 +1,8 @@ <?php -$wb['1001'] = 'Usuário ou senha está em branco.'; -$wb['1002'] = 'Usuário ou senha errados.'; +$wb['error_1001'] = 'Usuário ou senha está em branco.'; +$wb['error_1002'] = 'Usuário ou senha é inválido.'; $wb['Groups'] = 'Grupos'; -$wb['groups_description'] = 'Edição dos grupos de usuários do sistema'; +$wb['groups_description'] = 'Editar grupos e usuários do sistema.'; $wb['Servers'] = 'Servidores'; $wb['Config'] = 'Configuração'; $wb['Add user'] = 'Adicionar usuário'; @@ -11,30 +11,36 @@ $wb['Add group'] = 'Adicionar grupo'; $wb['Edit group'] = 'Editar grupo'; $wb['Edit server'] = 'Editar servidor'; $wb['Sync. Now'] = 'Sincronizar agora'; -$wb['DB Sync.'] = 'Sincronizar banco de dados'; -$wb['User Management'] = 'Gerenciamento de usuários'; -$wb['CP Users'] = 'Usuários do painel'; +$wb['DB Sync.'] = 'Sincronização do BD.'; +$wb['User Management'] = 'Gerência de usuário'; +$wb['CP Users'] = 'Usuários ISPConfig'; $wb['Remote Users'] = 'Usuários remotos'; $wb['System'] = 'Sistema'; $wb['Server Services'] = 'Serviços do servidor'; $wb['Services'] = 'Serviços'; $wb['Server Config'] = 'Configuração do servidor'; -$wb['Mail'] = 'E-mails'; +$wb['Server'] = 'Servidor'; +$wb['Mail'] = 'e-Mail'; $wb['Getmail'] = 'Getmail'; -$wb['Web'] = 'Sites'; +$wb['Web'] = 'Web'; $wb['FastCGI'] = 'FastCGI'; $wb['Jailkit'] = 'Jailkit'; $wb['Rescue'] = 'Manutenção'; -$wb['Server IP addresses'] = 'Endereço IP do servidor'; +$wb['Server IP addresses'] = 'Endereços IP do servidor'; +$wb['Server IPv4 mapping'] = 'Mapeamento IPv4 do servidor'; $wb['Additional PHP Versions'] = 'Versões adicionais do php'; +$wb['Directive Snippets'] = 'Diretiva de trechos de código'; $wb['Firewall'] = 'Firewall'; $wb['Interface'] = 'Interface'; $wb['Interface Config'] = 'Configuração principal'; +$wb['Sites'] = 'Sites'; +$wb['DNS'] = 'DNS'; $wb['Domains'] = 'DomÃnios'; $wb['Misc'] = 'Diversos'; -$wb['Software'] = 'Software'; +$wb['Software'] = 'APPs e complementos'; $wb['Repositories'] = 'Repositórios'; $wb['Packages'] = 'Pacotes'; +$wb['Updates'] = 'Atualizações'; $wb['Language Editor'] = 'Editor de idiomas'; $wb['Languages'] = 'Idiomas'; $wb['New Language'] = 'Novo idioma'; @@ -42,11 +48,6 @@ $wb['Merge'] = 'Mesclar'; $wb['Export'] = 'Exportar'; $wb['Import'] = 'Importar'; $wb['Remote Actions'] = 'Ações remotas'; -$wb['Do OS-Update'] = 'Atualização do SO'; -$wb['Do ISPConfig-Update'] = 'Atualização do ISPConfig'; -$wb['Directive Snippets'] = 'Diretivas de trechos de código'; -$wb['Sites'] = 'Sites'; -$wb['DNS'] = 'DNS'; -$wb['Server'] = 'Servidor'; -$wb['Updates'] = 'Atualizações'; +$wb['Do OS-Update'] = 'Atualizar sistema operacional'; +$wb['Do ISPConfig-Update'] = 'Atualizar o ISPConfig'; ?> diff --git a/interface/web/admin/lib/lang/br_directive_snippets.lng b/interface/web/admin/lib/lang/br_directive_snippets.lng index ae56153844be644104305f26eff795c5ddeb05fb..bc94b85b7d5919bc99d71d746fbb8accbedf4cec 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets.lng @@ -2,11 +2,12 @@ $wb['Directive Snippets'] = 'Diretiva de trechos de código'; $wb['name_txt'] = 'Nome da diretiva'; $wb['type_txt'] = 'Tipo'; -$wb['snippet_txt'] = 'Diretiva'; +$wb['snippet_txt'] = 'Trecho de código'; $wb['active_txt'] = 'Ativo'; -$wb['directive_snippets_name_empty'] = 'Por favor, insira um nome para a diretiva'; -$wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva de trechos de código com este nome.'; +$wb['directive_snippets_name_empty'] = 'Por favor, insira um nome para a diretiva.'; +$wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva com este nome.'; $wb['variables_txt'] = 'Variáveis'; -$wb['customer_viewable_txt'] = 'Visualizada pelo cliente'; -$wb['required_php_snippets_txt'] = 'Diretiva obrigatória para PHP'; +$wb['customer_viewable_txt'] = 'Visualização personalizada'; +$wb['required_php_snippets_txt'] = 'Trecho de código exige php'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/br_directive_snippets_list.lng b/interface/web/admin/lib/lang/br_directive_snippets_list.lng index 8e08580ad2c1a431ad9e14fe8dc331c81452683c..70af844dd6fe7bba21c201e79ce7c9427e0a95d6 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Diretivas de trechos de código'; +$wb['list_head_txt'] = 'Diretiva de trechos de código'; $wb['active_txt'] = 'Ativo'; $wb['name_txt'] = 'Nome da diretiva'; $wb['type_txt'] = 'Tipo'; -$wb['add_new_record_txt'] = 'Adicionar nova diretiva'; +$wb['add_new_record_txt'] = 'Adicionar diretiva'; $wb['customer_viewable_txt'] = 'VisÃvel para o cliente'; ?> diff --git a/interface/web/admin/lib/lang/br_firewall.lng b/interface/web/admin/lib/lang/br_firewall.lng index 0bd3cdc74f50647b023bf2f0cc5bda9eb91911e4..da0936b007ed9c79766690839374599ecd208e37 100644 --- a/interface/web/admin/lib/lang/br_firewall.lng +++ b/interface/web/admin/lib/lang/br_firewall.lng @@ -1,11 +1,11 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['tcp_port_txt'] = 'Portas TCP abertas'; -$wb['udp_port_txt'] = 'Portas UDP abertas'; +$wb['tcp_port_txt'] = 'Portas tcp abertas'; +$wb['udp_port_txt'] = 'Portas udp abertas'; $wb['tcp_port_help_txt'] = 'Separado por vÃrgula'; $wb['udp_port_help_txt'] = 'Separado por vÃrgula'; $wb['active_txt'] = 'Ativo'; -$wb['firewall_error_unique'] = 'Já existe uma regra de firewall para este servidor!'; -$wb['tcp_ports_error_regex'] = 'Caractere não permitido para definição de porta tcp. São permitidos somente números, \':\' e \',\'.'; -$wb['udp_ports_error_regex'] = 'Caractere não permitido para definição de porta udp. São permitidos somente números, \':\' e \',\'.'; +$wb['firewall_error_unique'] = 'Já existe uma regra de firewall idêntica para este servidor.'; +$wb['tcp_ports_error_regex'] = 'Caractere não permitido para configuração de porta tcp: Caracteres permitidos são números, ":" e ",".'; +$wb['udp_ports_error_regex'] = 'Caractere não permitido para configuração de porta udp: Caracteres permitidos são números, ":" e ",".'; ?> diff --git a/interface/web/admin/lib/lang/br_firewall_list.lng b/interface/web/admin/lib/lang/br_firewall_list.lng index 8ff52ee2410f4e0732f2e55ab8c4f27d6deb8f4f..94ef3aab7d61e48ec2d428211bb97357bb00072a 100644 --- a/interface/web/admin/lib/lang/br_firewall_list.lng +++ b/interface/web/admin/lib/lang/br_firewall_list.lng @@ -4,5 +4,5 @@ $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['tcp_port_txt'] = 'Portas tcp abertas'; $wb['udp_port_txt'] = 'Portas udp abertas'; -$wb['add_new_record_txt'] = 'Adicionar regra de firewall'; +$wb['add_new_record_txt'] = 'Adicionar nova regra'; ?> diff --git a/interface/web/admin/lib/lang/br_groups.lng b/interface/web/admin/lib/lang/br_groups.lng index 735bd864a9243321619bc99026faa376424f5b3d..22a1a5c63dda5fd91fdd9435c0c4ab51b447678f 100644 --- a/interface/web/admin/lib/lang/br_groups.lng +++ b/interface/web/admin/lib/lang/br_groups.lng @@ -1,5 +1,5 @@ <?php $wb['description_txt'] = 'Descrição'; $wb['name_txt'] = 'Grupo'; -$wb['name_err'] = 'O nome do grupo deve conter de 1 a 30 caracteres!'; +$wb['name_err'] = 'O grupo deve conter no mÃnimo 1 e no máximo 30 caracteres.'; ?> diff --git a/interface/web/admin/lib/lang/br_groups_list.lng b/interface/web/admin/lib/lang/br_groups_list.lng index f31a85d12618761f6358e1b0cafc1d8f2a5c8a54..74a414f52d54be8206805124d1ebbae0cf54537f 100644 --- a/interface/web/admin/lib/lang/br_groups_list.lng +++ b/interface/web/admin/lib/lang/br_groups_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Grupos de usuários do sistema'; +$wb['list_head_txt'] = 'Grupos'; $wb['description_txt'] = 'Descrição'; $wb['name_txt'] = 'Grupo'; -$wb['add_new_record_txt'] = 'Adicionar novo Grupo'; -$wb['warning_txt'] = '<b>AVISO:</b> Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de clientes ou revendas. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!'; +$wb['add_new_record_txt'] = 'Adicionar novo grupo'; +$wb['warning_txt'] = '<b>ALERTA:</b> Não editar ou alterar qualquer configuração de usuário aqui. Use o módulo de clientes e revendas para isso. Editar ou alterar usuários ou grupos aqui pode causar perda de dados!'; ?> diff --git a/interface/web/admin/lib/lang/br_iptables.lng b/interface/web/admin/lib/lang/br_iptables.lng index e44fcf1e68b74fc2942adc9349ec3714af11ccd4..f899d53178891b5e0c96685bbd6c1890b247accf 100644 --- a/interface/web/admin/lib/lang/br_iptables.lng +++ b/interface/web/admin/lib/lang/br_iptables.lng @@ -1,13 +1,13 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['multiport_txt'] = 'Múltiplas portas'; -$wb['singleport_txt'] = 'Porta simples'; +$wb['multiport_txt'] = 'Multi-portas'; +$wb['singleport_txt'] = 'Portas simples'; $wb['protocol_txt'] = 'Protocolo'; $wb['table_txt'] = 'Tabela'; $wb['target_txt'] = 'Alvo'; $wb['state_txt'] = 'Estado'; -$wb['destination_ip_txt'] = 'Endereço IP de destino'; -$wb['source_ip_txt'] = 'Endereço IP de origem'; +$wb['destination_ip_txt'] = 'Endereço de destino'; +$wb['source_ip_txt'] = 'Endereço de origem'; $wb['active_txt'] = 'Ativo'; -$wb['iptables_error_unique'] = 'Já existe um registro de firewall igual para este servidor.'; +$wb['iptables_error_unique'] = 'Já existe uma regra de firewall idêntica para este servidor.'; ?> diff --git a/interface/web/admin/lib/lang/br_iptables_list.lng b/interface/web/admin/lib/lang/br_iptables_list.lng index 2cd7fdfb53b4f6785098c0b4979b22ff978927d5..3326ac060aa85f4cb29484fe0337bfcefa872aa3 100644 --- a/interface/web/admin/lib/lang/br_iptables_list.lng +++ b/interface/web/admin/lib/lang/br_iptables_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Firewall'; -$wb['add_new_rule_txt'] = 'Adicionar nova regra'; +$wb['add_new_rule_txt'] = 'Adicionar regra de firewall'; $wb['server_id_txt'] = 'Servidor'; $wb['multiport_txt'] = 'Multi portas'; $wb['singleport_txt'] = 'Porta simples'; @@ -8,8 +8,8 @@ $wb['protocol_txt'] = 'Protocolo'; $wb['table_txt'] = 'Tabela'; $wb['target_txt'] = 'Alvo'; $wb['state_txt'] = 'Estado'; -$wb['destination_ip_txt'] = 'Endereço IP de destino'; -$wb['source_ip_txt'] = 'Endereço IP de origem'; +$wb['destination_ip_txt'] = 'Endereço de destino'; +$wb['source_ip_txt'] = 'Endereço de origem'; $wb['active_txt'] = 'Ativo'; -$wb['iptables_error_unique'] = 'Já existe um registro de firewall igual para este servidor.'; +$wb['iptables_error_unique'] = 'Já existe uma regra idêntica para este servidor.'; ?> diff --git a/interface/web/admin/lib/lang/br_language_add.lng b/interface/web/admin/lib/lang/br_language_add.lng index eaa080819915c12a88633cdd287bc273a138b194..f63441c55dea31b4a503f78a564a5ceb514a9cfe 100644 --- a/interface/web/admin/lib/lang/br_language_add.lng +++ b/interface/web/admin/lib/lang/br_language_add.lng @@ -1,8 +1,8 @@ <?php $wb['list_head_txt'] = 'Adicionar novo idioma'; -$wb['language_select_txt'] = 'Selecionar o idioma base'; +$wb['language_select_txt'] = 'Selecionar idioma base'; $wb['language_new_txt'] = 'Novo idioma'; -$wb['language_new_hint_txt'] = '2 letras código ISO 639-1 (veja http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; +$wb['language_new_hint_txt'] = '2 caracteres ISO 639-1 para o código do idioma (veja em http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; $wb['btn_save_txt'] = 'Adicionar novo conjunto de idiomas'; $wb['btn_cancel_txt'] = 'Voltar'; ?> diff --git a/interface/web/admin/lib/lang/br_language_complete.lng b/interface/web/admin/lib/lang/br_language_complete.lng index 84d5e3393cc5a23142c2f3cd4a00c11e9464cd7e..cb0ea2eb241110c83d7d0630f5c5166c137d3db1 100644 --- a/interface/web/admin/lib/lang/br_language_complete.lng +++ b/interface/web/admin/lib/lang/br_language_complete.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Mesclar idioma'; +$wb['list_head_txt'] = 'Mesclar idiomas'; $wb['list_desc_txt'] = 'Mesclar o arquivo de idioma selecionado com o arquivo de idioma principal (em inglês). <br />Isto permite completar qualquer falha de tradução, com o arquivo principal original em inglês.'; $wb['language_select_txt'] = 'Selecionar idioma'; $wb['btn_save_txt'] = 'Mesclar arquivos agora'; diff --git a/interface/web/admin/lib/lang/br_language_edit.lng b/interface/web/admin/lib/lang/br_language_edit.lng index 887080b6d58f0d0d9b140df5cdb950fed1f63ee4..ed0e6bb84d57124d82ebd3cee9a2a62e1acb4762 100644 --- a/interface/web/admin/lib/lang/br_language_edit.lng +++ b/interface/web/admin/lib/lang/br_language_edit.lng @@ -1,6 +1,6 @@ <?php -$wb['list_head_txt'] = 'Editor de idiomas'; -$wb['language_select_txt'] = 'Selecione o idioma'; +$wb['list_head_txt'] = 'Editor de arquivos de idiomas'; +$wb['language_select_txt'] = 'Selecionar idioma'; $wb['module_txt'] = 'Módulo'; $wb['lang_file_txt'] = 'Arquivo de idioma'; $wb['btn_save_txt'] = 'Salvar'; diff --git a/interface/web/admin/lib/lang/br_language_export.lng b/interface/web/admin/lib/lang/br_language_export.lng index d4846613899570de4ac7fcb7dd1bb0c4c12710ac..7d75f7b6dd90483fd3db5ccfddb4befd9953b58f 100644 --- a/interface/web/admin/lib/lang/br_language_export.lng +++ b/interface/web/admin/lib/lang/br_language_export.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Exportar arquivos de idioma'; -$wb['language_select_txt'] = 'Selecione o idioma'; -$wb['btn_save_txt'] = 'Exportar idioma selecionado para um arquivo'; +$wb['language_select_txt'] = 'Selecionar idioma'; +$wb['btn_save_txt'] = 'Exportar arquivo de idioma selecionado'; $wb['btn_cancel_txt'] = 'Voltar'; ?> diff --git a/interface/web/admin/lib/lang/br_language_import.lng b/interface/web/admin/lib/lang/br_language_import.lng index e99756b376af951c2dafc08f22b9f078e8047d2b..99db3398125213340740f71d3a97dd7020c6bd8e 100644 --- a/interface/web/admin/lib/lang/br_language_import.lng +++ b/interface/web/admin/lib/lang/br_language_import.lng @@ -1,9 +1,9 @@ <?php $wb['list_head_txt'] = 'Importar arquivo de idioma'; -$wb['language_import_txt'] = 'Buscar arquivo de idioma'; +$wb['list_desc_txt'] = 'ALERTA: Não importe arquivos de idioma de origem desconhecida.'; +$wb['language_import_txt'] = 'Selecionar arquivo de idioma'; $wb['btn_save_txt'] = 'Importar arquivo de idioma selecionado'; -$wb['language_overwrite_txt'] = 'Sobrescrever o arquivo se existir.'; +$wb['language_overwrite_txt'] = 'Sobrescrever arquivo, se existir.'; $wb['btn_cancel_txt'] = 'Voltar'; $wb['ignore_version_txt'] = 'Ignorar verificação da versão do ISPConfig'; -$wb['list_desc_txt'] = 'ATENÇÃO: Não importe arquivos de idioma de fontes desconhecidas.'; ?> diff --git a/interface/web/admin/lib/lang/br_language_list.lng b/interface/web/admin/lib/lang/br_language_list.lng index cd00833419a3aef6a99b87f0c0d4e668bb2576ca..37941c4472d18eda4e1ce419a55e81e6d63ae0e5 100644 --- a/interface/web/admin/lib/lang/br_language_list.lng +++ b/interface/web/admin/lib/lang/br_language_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Editor de arquivo de idioma'; -$wb['language_select_txt'] = 'Selecione o idioma'; +$wb['list_head_txt'] = 'Editor de arquivos de idioma'; +$wb['language_select_txt'] = 'Selecionar idioma'; $wb['module_txt'] = 'Módulo'; -$wb['lang_file_txt'] = 'Arquido de idioma'; +$wb['lang_file_txt'] = 'Arquivo de idioma'; $wb['lang_file_date_txt'] = 'Última modificação'; ?> diff --git a/interface/web/admin/lib/lang/br_package_install.lng b/interface/web/admin/lib/lang/br_package_install.lng index 5b54c3080a049d334f22d959cbb248462779963c..bbe518549aed1e40a5cf8395cbf2110b21508a9e 100644 --- a/interface/web/admin/lib/lang/br_package_install.lng +++ b/interface/web/admin/lib/lang/br_package_install.lng @@ -1,7 +1,7 @@ <?php $wb['repo_name_txt'] = 'Repositório'; $wb['repo_url_txt'] = 'URL'; -$wb['repo_username_txt'] = 'Usuário (opcional)'; +$wb['repo_username_txt'] = 'Usário (opcional)'; $wb['repo_password_txt'] = 'Senha (opcional)'; $wb['active_txt'] = 'Ativo'; ?> diff --git a/interface/web/admin/lib/lang/br_remote_action.lng b/interface/web/admin/lib/lang/br_remote_action.lng index e06a6382b95629d8e08b4468d05bd441b86b41d5..80d3a05c53a19e767bd43ed2ea1d9cd4b3651173 100644 --- a/interface/web/admin/lib/lang/br_remote_action.lng +++ b/interface/web/admin/lib/lang/br_remote_action.lng @@ -1,12 +1,12 @@ <?php -$wb['select_server_txt'] = 'Selecione o Servidor'; +$wb['select_server_txt'] = 'Selecionar servidor'; $wb['btn_do_txt'] = 'Executar ação'; -$wb['do_osupdate_caption'] = 'Atualização do sistema operacional no servidor'; -$wb['do_osupdate_desc'] = 'Este comando fará um aptitude -y upgrade no servidor selecionado.<br><br><strong>UTILIZE POR SUA CONTA E RISCO!</strong>'; -$wb['do_ispcupdate_caption'] = 'Atualização do ISPConfig 3 no servidor'; -$wb['do_ispcupdate_desc'] = 'Esta ação fará uma atualização do ISPConfig3 no servidor selecionado.<br><br><strong>UTILIZE POR SUA CONTA E RISCO!</strong>'; -$wb['action_scheduled'] = 'Esta ação está agendada para execução'; +$wb['do_osupdate_caption'] = 'Atualizar sistema operacional no servidor remoto'; +$wb['do_osupdate_desc'] = 'Esta ação fará o comando \'aptitude -y upgrade\' no servidor selecionado.<br><br><strong>UTILIZE POR SUA CONTA E RISCO!</strong>'; +$wb['do_ispcupdate_caption'] = 'Atualizar ISPConfig 3 - Atualizar o servidor remoto'; +$wb['do_ispcupdate_desc'] = 'Esta ação atualizará o ISPConfig3 no servidor selecionado.<br><br><strong>UTILIZE POR SUA CONTA E RISCO!</strong>'; +$wb['action_scheduled'] = 'A ação foi agendada.'; $wb['select_all_server'] = 'Todos os servidores'; $wb['ispconfig_update_title'] = 'Instruções de atualização do ISPConfig'; -$wb['ispconfig_update_text'] = 'Acesse como root no shell do seu servidor e execute os seguintes comandos<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />para iniciar a atualização do ISPConfig.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Clique aqui para instruções detalhadas sobre atualização</a>'; +$wb['ispconfig_update_text'] = 'Acesse com o usuário root no shell do servidor e execute o comando<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />para iniciar a atualização do ISPConfig.<br /><br /><a href=\'http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\' target=\'_blank\'>Clique aqui para instruções detalhadas</a>'; ?> diff --git a/interface/web/admin/lib/lang/br_remote_user.lng b/interface/web/admin/lib/lang/br_remote_user.lng index 95657a283d4c41f737d5915bec2529742bd6a787..520b95e18f4caf7fe7609586b22452416d15eaf4 100644 --- a/interface/web/admin/lib/lang/br_remote_user.lng +++ b/interface/web/admin/lib/lang/br_remote_user.lng @@ -1,50 +1,70 @@ <?php -$wb['username_txt'] = 'Nome do usuário'; +$wb['remote_user_txt'] = 'Remote User'; +$wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; $wb['function_txt'] = 'Funções'; -$wb['username_error_unique'] = 'O nome de usuário deve ser exclusivo'; -$wb['username_error_empty'] = 'O nome de usuário não pode estar em branco'; -$wb['password_error_empty'] = 'A senha não pode estar em branco'; +$wb['username_error_unique'] = 'Nome do usuário deve ser exclusivo.'; +$wb['username_error_empty'] = 'Nome do usuário está em branco.'; +$wb['password_error_empty'] = 'Senha do usuário está em branco.'; $wb['password_strength_txt'] = 'Dificuldade da senha'; +$wb['Server functions'] = 'Funções de servidor'; +$wb['Record permission changes'] = 'Permissões de alteração de registros'; +$wb['Domaintool functions'] = 'Funções ferramentas de domÃnios'; +$wb['Quota functions'] = 'Funções de cotas'; $wb['Mail domain functions'] = 'Funções de domÃnios de e-mail'; -$wb['Mail user functions'] = 'Funções de usuários de e-mail'; -$wb['Mail alias functions'] = 'Funções de apelidos de domÃnio de e-mail'; -$wb['Mail forward functions'] = 'Funções de encaminhamento de e-mail'; -$wb['Mail catchall functions'] = 'Funções de de contas cata tudo'; -$wb['Mail transport functions'] = 'Funções de transporte de e-mail'; -$wb['Mail whitelist functions'] = 'Funções de lista branca de e-mail'; -$wb['Mail blacklist functions'] = 'Funções de lista negra de e-mail'; -$wb['Mail spamfilter user functions'] = 'Funções de filtros anti-spam para contas de e-mail'; -$wb['Mail spamfilter policy functions'] = 'Funções de polÃtica de anti-spam para contas de e-mail'; +$wb['Mail domain alias functions'] = 'Funções de alias de domÃnios de e-mail'; +$wb['Mail mailinglist functions'] = 'Funções de lista de e-mails'; +$wb['Mail user functions'] = 'Funções de contas de e-mails'; +$wb['Mail alias functions'] = 'Funções de alias de e-mails'; +$wb['Mail forward functions'] = 'Funções de encaminhamento de e-mails'; +$wb['Mail relay functions'] = 'Funções de retransmissão de e-mails'; +$wb['Mail catchall functions'] = 'Funções de contas cata-tudo'; +$wb['Mail transport functions'] = 'Funções de transporte de e-mails'; +$wb['Mail whitelist functions'] = 'Funções de lista branca'; +$wb['Mail blacklist functions'] = 'Funções de lista negra'; +$wb['Mail spamfilter user functions'] = 'Funções de filtros anti-spam'; +$wb['Mail spamfilter policy functions'] = 'Funções de polÃticas anti-spam'; $wb['Mail fetchmail functions'] = 'Funções de contas de busca de e-mails'; -$wb['Mail user filter functions'] = 'Funções de filtro de e-mails para contas de e-mail'; -$wb['Mail filter functions'] = 'Funções de filtros de e-mail'; +$wb['Mail spamfilter whitelist functions'] = 'Funções de lista branca de e-mails'; +$wb['Mail spamfilter blacklist functions'] = 'Funções de lista negra de e-mails'; +$wb['Mail user filter functions'] = 'Funções de filtros de e-mails para contas de e-mails'; +$wb['Mail Backup functions'] = 'Funções de backup de e-mails'; +$wb['Mail filter functions'] = 'Funções de filtros de e-mails'; +$wb['Monitor functions'] = 'Funções de monitoramento'; $wb['Client functions'] = 'Funções de cliente'; -$wb['Sites cron functions'] = 'Funções de tarefas no cron para sites'; -$wb['Sites database functions'] = 'Funções de banco de dados para sites'; -$wb['Sites FTP-User functions'] = 'Funções de usuários ftp para sites'; -$wb['Sites Shell-User functions'] = 'Funções de usuários shell para sites'; +$wb['Sites cron functions'] = 'Funções de tarefas no cron'; +$wb['Sites database functions'] = 'Funções de banco de dados'; +$wb['Sites Protected folder functions'] = 'Funções de pastas protegidas'; +$wb['Sites FTP-User functions'] = 'Funções de usuários ftp'; +$wb['Sites Shell-User functions'] = 'Funções de usuários do shell'; $wb['Sites Domain functions'] = 'Funções de domÃnios de sites'; -$wb['Sites Aliasdomain functions'] = 'Função de apelidos de domÃnio de sites'; -$wb['Sites Subdomain functions'] = 'Função de subdomÃnio de sites'; -$wb['DNS zone functions'] = 'Funções de zona dns'; +$wb['Sites Backup functions'] = 'Funções de backup de sites'; +$wb['Sites Aliasdomain functions'] = 'Funções de alias de domÃnios de sites'; +$wb['Sites Subdomain functions'] = 'Funções de subdomÃnios de sites'; +$wb['Sites APS functions'] = 'Funções de apps e complementos'; +$wb['Sites WebDAV-User functions'] = 'Funções de usuários webdav'; +$wb['DNS zone functions'] = 'Funções de zonas dns'; $wb['DNS a functions'] = 'Funções de registro A dns'; $wb['DNS aaaa functions'] = 'Funções de registro AAAA dns'; -$wb['DNS alias functions'] = 'Funções de registro Alias dns'; -$wb['DNS cname functions'] = 'Funções de registro CNAME dns'; -$wb['DNS hinfo functions'] = 'Funções de registro HINFO dns'; -$wb['DNS mx functions'] = 'Funções de registro MX dns'; -$wb['DNS ns functions'] = 'Funções de registro NS dns'; -$wb['DNS ptr functions'] = 'Funções de registro PTR dns'; -$wb['DNS rp functions'] = 'Funções de registro RP dns'; -$wb['DNS srv functions'] = 'Funções de registro SRV dns'; -$wb['DNS txt functions'] = 'Funções de registro TXT dns'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['remote_access_txt'] = 'Acesso remoto'; -$wb['remote_ips_txt'] = 'Endereço(s) IPs ou nome do servidor com acesso remoto (separado por vÃrgula ou em branco para qualquer <i>um</i>)'; -$wb['remote_user_error_ips'] = 'Ao menos um endereço IP ou nome do servidor é inválido.'; -$wb['Mail mailing list functions'] = 'Mail mailinglist functions'; +$wb['DNS alias functions'] = 'Funções de ALIAS dns'; +$wb['DNS cname functions'] = 'Funções de CNAME dns'; +$wb['DNS hinfo functions'] = 'Funções de HINFO dns'; +$wb['DNS mx functions'] = 'Funções de MX dns'; +$wb['DNS ns functions'] = 'Funções de NS dns'; +$wb['DNS naptr functions'] = 'Funções de NAPTR dns'; +$wb['DNS ptr functions'] = 'Funções de PTR dns'; +$wb['DNS rp functions'] = 'Funções de RP dns'; +$wb['DNS srv functions'] = 'Funções de SVR dns'; +$wb['DNS txt functions'] = 'Funções de TXT dns'; +$wb['DNS ds functions'] = 'Funções de DS dns'; +$wb['DNS loc functions'] = 'Funções de LOC dns'; +$wb['DNS tlsa functions'] = 'Funções de TLSA dns'; +$wb['OpenVZ VM functions'] = 'Funções do openvz'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['remote_access_txt'] = 'Acesso Remoto'; +$wb['remote_ips_txt'] = 'Endereços IPs ou nome(s) do(s) host(s) para acesso remoto (separado por vÃrgula e deixar em branco para <i>qualquer um</i>)'; +$wb['remote_user_error_ips'] = 'Ao menos um endereço IP ou nome do host informado é inválido.'; ?> diff --git a/interface/web/admin/lib/lang/br_remote_user_list.lng b/interface/web/admin/lib/lang/br_remote_user_list.lng index f95d782ce6c4e83f98bfe17c95beb71abcdd4e41..0f0381a6f4a87b81abc7b6672669a835c5ea79d7 100644 --- a/interface/web/admin/lib/lang/br_remote_user_list.lng +++ b/interface/web/admin/lib/lang/br_remote_user_list.lng @@ -1,7 +1,7 @@ <?php $wb['list_head_txt'] = 'Usuários remotos'; -$wb['list_desc_txt'] = ''; +$wb['list_desc_txt'] = 'Usuário remoto'; $wb['add_new_record_txt'] = 'Adicionar novo usuário'; -$wb['parent_remote_userid_txt'] = 'ID'; -$wb['username_txt'] = 'Nome do usuário'; +$wb['parent_remote_userid_txt'] = 'ID do usuário'; +$wb['username_txt'] = 'Nome'; ?> diff --git a/interface/web/admin/lib/lang/br_server.lng b/interface/web/admin/lib/lang/br_server.lng index 930b990f42f8cb1e7b98561a27708a8f3b47bc5e..a896d0b49ae377aad39c6737e51ebca246aaf1ff 100644 --- a/interface/web/admin/lib/lang/br_server.lng +++ b/interface/web/admin/lib/lang/br_server.lng @@ -2,15 +2,15 @@ $wb['config_txt'] = 'Configuração'; $wb['server_name_txt'] = 'Nome do servidor'; $wb['mail_server_txt'] = 'Servidor de e-mails'; -$wb['web_server_txt'] = 'Servidor de páginas'; +$wb['web_server_txt'] = 'Servidor web'; $wb['dns_server_txt'] = 'Servidor dns'; -$wb['file_server_txt'] = 'Servidor de arquivo'; +$wb['file_server_txt'] = 'Servidor ftp'; $wb['db_server_txt'] = 'Servidor de banco de dados'; -$wb['vserver_server_txt'] = 'Servidor virtual'; -$wb['active_txt'] = 'Ativo'; -$wb['mirror_server_id_txt'] = 'É um espelho de servidor?'; -$wb['- None -'] = '- Nenhum -'; +$wb['vserver_server_txt'] = 'Servidor de virtualização'; $wb['proxy_server_txt'] = 'Servidor proxy'; -$wb['firewall_server_txt'] = 'Servidor de firewall'; -$wb['xmpp_server_txt'] = 'Servidor XMPP'; +$wb['firewall_server_txt'] = 'Servidor firewall'; +$wb['active_txt'] = 'Ativo'; +$wb['mirror_server_id_txt'] = 'É um espelho de servidor'; +$wb['- None -'] = '-Nenhum-'; +$wb['xmpp_server_txt'] = 'Servidor xmpp'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 9175790eb3368adace0196698b12053a21f9a751..65a2dc4fd754a3086d8c386b57936931dd5e3d55 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -1,297 +1,313 @@ <?php -$wb['jailkit_chroot_home_txt'] = 'Raiz do chroot jailkit'; -$wb['jailkit_chroot_app_sections_txt'] = 'Aplicações no jailkit chroot (sessões)'; -$wb['jailkit_chroot_app_programs_txt'] = 'Aplicações no jailkit em ambiente chroot'; +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; +$wb['ufw_enable_txt'] = 'Habilitar'; +$wb['ufw_manage_builtins_txt'] = 'Gerenciar regras embutidas'; +$wb['ufw_ipv6_txt'] = 'Habilitar IPv6'; +$wb['ufw_default_input_policy_txt'] = 'PolÃtica de entrada padrão'; +$wb['ufw_default_output_policy_txt'] = 'PolÃtica de saÃda padrão'; +$wb['ufw_default_forward_policy_txt'] = 'PolÃtica de encaminhamento padrão'; +$wb['ufw_default_application_policy_txt'] = 'PolÃtica de aplicações padrão'; +$wb['ufw_log_level_txt'] = 'NÃvel do log'; +$wb['jailkit_chroot_home_txt'] = 'Diretório em chroot do jailkit'; +$wb['jailkit_chroot_app_sections_txt'] = 'Seções de aplicações em chroot no jailkit'; +$wb['jailkit_chroot_app_programs_txt'] = 'Aplicações em chroot no jailkit'; +$wb['jailkit_chroot_cron_programs_txt'] = 'Tarefas de aplicações em chroot no jailkit'; $wb['website_path_txt'] = 'Caminho do site'; -$wb['website_symlinks_txt'] = 'Site symlinks: links simbólicos'; -$wb['website_symlinks_rel_txt'] = 'Criar links simbólicos relativos'; -$wb['website_basedir_txt'] = 'Site basedir: Diretório base '; -$wb['vhost_conf_dir_txt'] = 'Diretório de configuração para vhost'; -$wb['vhost_conf_enabled_dir_txt'] = 'Diretório de configuração para vhost ativo'; +$wb['website_symlinks_txt'] = 'Links simbólicos de sites'; +$wb['website_symlinks_rel_txt'] = 'Adicionar links simbólicos relativos'; +$wb['website_basedir_txt'] = 'Diretório base - site'; +$wb['website_autoalias_txt'] = 'Auto alias - site'; +$wb['website_autoalias_note_txt'] = 'Ãrea reservada:'; +$wb['vhost_conf_dir_txt'] = 'Diretório de configuração vhost'; +$wb['vhost_conf_enabled_dir_txt'] = 'Diretório de configuração vhost habilitado'; +$wb['apache_init_script_txt'] = 'Script de inicialização do Apache'; +$wb['apache_init_script_note_txt'] = 'Deixando esta vontade vazio detectar automaticamente o script de inicialização do Apache'; +$wb["apache_init_script_error_regex"] = 'Script de inicialização do Apache inválido.'; $wb['getmail_config_dir_txt'] = 'Diretório de configuração do getmail'; -$wb['fastcgi_starter_path_txt'] = 'FastCGI: Caminho do diretório do scritp de inicialização'; -$wb['fastcgi_starter_script_txt'] = 'FastCGI: Script de inicialização'; -$wb['fastcgi_alias_txt'] = 'FastCGI: Alias (apelido)'; -$wb['fastcgi_phpini_path_txt'] = 'FastCGI: Caminho do php.ini '; -$wb['fastcgi_children_txt'] = 'FastCGI: Filhos'; -$wb['fastcgi_max_requests_txt'] = 'FastCGI: Limite de requisições'; -$wb['fastcgi_bin_txt'] = 'Binário do FastCGI'; +$wb['fastcgi_starter_path_txt'] = 'Caminho de inicialização do FastCGI'; +$wb['fastcgi_starter_script_txt'] = 'Script de inicialização do FastCGI'; +$wb['fastcgi_alias_txt'] = 'Alias FastCGI'; +$wb['fastcgi_phpini_path_txt'] = 'Caminho do php.ini FastCGI'; +$wb['fastcgi_children_txt'] = 'Processos filhos do FastCGI'; +$wb['fastcgi_max_requests_txt'] = 'Limite de requisições do FastCGI'; +$wb['fastcgi_bin_txt'] = 'Binário FastCGI'; $wb['module_txt'] = 'Módulo'; -$wb['maildir_path_txt'] = 'Caminho do diretório maildir'; +$wb['maildir_path_txt'] = 'Caminho do maildir'; $wb['maildir_format_txt'] = 'Formato do maildir'; -$wb['homedir_path_txt'] = 'Caminho do diretório home'; +$wb['homedir_path_txt'] = 'Caminho do homedir'; +$wb['dkim_path_txt'] = 'Caminho do DKIM'; $wb['mailuser_uid_txt'] = 'UID do mailuser'; $wb['mailuser_gid_txt'] = 'GID do mailuser'; $wb['mailuser_name_txt'] = 'Nome do mailuser'; -$wb['mailuser_group_txt'] = 'Grupo do mailuser'; -$wb['mailbox_virtual_uidgid_maps_txt'] = 'Mapear UID Linux de sites para mailbox'; -$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'Configuração única para sites e servidor de e-mails permitida apenas em configuração de servidor individual'; -$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'UID não pode ser mapeado em uma configuração multiservidor.'; -$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Mapeamento de UID só pode ser usada com o dovecot.'; -$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Mapeamento de UID não pode ser modificada se já existirem e-mails cadastrados.'; +$wb['mailuser_group_txt'] = 'Grupo do maildir'; +$wb['mailbox_virtual_uidgid_maps_txt'] = 'Usar uid linux para sites e conta de e-mail'; +$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'Permitido apenas para configuração de servidor único.'; +$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'O uid linux não pode ser mapeado em configuração multi-servidor.'; +$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'O uid linux não pode ser usado com o dovecot.'; +$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'O uid não pode ser alterado se já existir contas de e-mail.'; $wb['relayhost_txt'] = 'Servidor de retransmissão'; -$wb['relayhost_user_txt'] = 'Usuário do servidor de retransmissão'; -$wb['relayhost_password_txt'] = 'Senha do servidor de retransmissão'; -$wb['reject_sender_login_mismatch_txt'] = 'Rejeitar remetente e acesso com erros'; -$wb['mailbox_size_limit_txt'] = 'Limite da conta de e-mail'; -$wb['message_size_limit_txt'] = 'Limite do tamanho máximo das mensagens'; +$wb['relayhost_user_txt'] = 'Usuário de retransmissão'; +$wb['relayhost_password_txt'] = 'Senha do usuário de retransmissão'; +$wb['reject_sender_login_mismatch_txt'] = 'Rejeitar acesso com erro de usuário e/ou senha'; +$wb['mailbox_size_limit_txt'] = 'Limite do tamanho da conta de e-mail'; +$wb['message_size_limit_txt'] = 'Limite do tamanho da mensagem'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['netmask_txt'] = 'Máscara de rede'; +$wb['netmask_txt'] = 'Máscara'; $wb['gateway_txt'] = 'Gateway'; -$wb['hostname_txt'] = 'Servidor'; -$wb['nameservers_txt'] = 'Servidores dns'; +$wb['hostname_txt'] = 'Nome do host'; +$wb['nameservers_txt'] = 'Servidor(es) dns'; $wb['auto_network_configuration_txt'] = 'Configuração de rede'; -$wb['ip_address_error_wrong'] = 'Endereço IP inválido!'; -$wb['netmask_error_wrong'] = 'Máscara de rede inválida!'; -$wb['gateway_error_wrong'] = 'Gateway inválido!'; -$wb['hostname_error_empty'] = 'Por favor, insira o servidor.'; -$wb['nameservers_error_empty'] = 'Por favor, insira o servidor dns.'; -$wb['jailkit_chroot_cron_programs_txt'] = 'Tarefas do cron para aplicações no Jailkit em ambiente chroot'; -$wb['config_dir_txt'] = 'Diretório de configuração'; +$wb['ip_address_error_wrong'] = 'Endereço IP com formato inválido.'; +$wb['netmask_error_wrong'] = 'Máscara de rede com formato inválido.'; +$wb['gateway_error_wrong'] = 'Gateway da rede com formado inválido.'; +$wb['hostname_error_empty'] = 'O nome do host está em branco.'; +$wb['hostname_error_regex'] = 'O nome do host é inválido.'; +$wb['nameservers_error_empty'] = 'O servidor(es) dns está em branco.'; +$wb['config_dir_txt'] = 'Diretório de configurações'; $wb['init_script_txt'] = 'Nome do script de inicialização do cron'; -$wb['crontab_dir_txt'] = 'Caminho para tabelas de tarefas individuais no cron'; -$wb['wget_txt'] = 'Caminho para o wget'; -$wb['web_user_txt'] = 'Usuário apache'; -$wb['web_group_txt'] = 'Grupo apache'; +$wb['crontab_dir_txt'] = 'Caminho para crontabs individuais.'; +$wb['wget_txt'] = 'Caminho do binário wget'; +$wb['web_user_txt'] = 'Usuário do apache'; +$wb['web_group_txt'] = 'Grupo do apache'; $wb['security_level_txt'] = 'NÃvel de segurança'; -$wb['loglevel_txt'] = 'NÃvel do log (Loglevel)'; -$wb['apps_vhost_port_txt'] = 'Porta para apps-vhost'; -$wb['apps_vhost_ip_txt'] = 'IP para apps-vhost'; -$wb['apps_vhost_servername_txt'] = 'DomÃnio para apps-vhost'; -$wb['bind_user_txt'] = 'Usuário bind'; -$wb['bind_group_txt'] = 'Grupo bind'; -$wb['bind_zonefiles_dir_txt'] = 'Diretório de arquivos de zona do bind'; +$wb['loglevel_txt'] = 'NÃvel do log'; +$wb['apps_vhost_port_txt'] = 'Porta dos apps-vhost'; +$wb['apps_vhost_ip_txt'] = 'IP dos apps-vhost'; +$wb['apps_vhost_servername_txt'] = 'DomÃnio dos apps-vhost'; +$wb['bind_user_txt'] = 'Usuário do bind'; +$wb['bind_group_txt'] = 'Grupo do bind'; +$wb['bind_zonefiles_dir_txt'] = 'Diretório de zonas'; $wb['named_conf_path_txt'] = 'Caminho do named.conf'; $wb['bind_user_error_empty'] = 'Usuário do bind está em branco.'; $wb['bind_group_error_empty'] = 'Grupo do bind está em branco.'; -$wb['bind_zonefiles_dir_error_empty'] = 'Diretório de arquivos de zona está em branco.'; -$wb['named_conf_path_error_empty'] = 'Caminho do named.conf.'; +$wb['bind_zonefiles_dir_error_empty'] = 'Diretório de zonas está em branco.'; +$wb['named_conf_path_error_empty'] = 'Caminho do named.conf está em branco.'; $wb['named_conf_local_path_error_empty'] = 'Caminho do named.conf.local está em branco.'; -$wb['mail_filter_syntax_txt'] = 'Sintaxe do mailfilter'; -$wb['pop3_imap_daemon_txt'] = 'Serviço POP3/IMAP'; -$wb['php_open_basedir_txt'] = 'Diretório PHP open_basedir'; -$wb['php_open_basedir_error_empty'] = 'Diretório PHP open_basedir está em branco.'; +$wb['mail_filter_syntax_txt'] = 'Sintaxe do filtro de e-mail'; +$wb['pop3_imap_daemon_txt'] = 'Daemon POP3/IMAP'; +$wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; +$wb['php_open_basedir_error_empty'] = 'O diretório do open_basedir PHP está em branco.'; $wb['htaccess_allow_override_txt'] = 'Diretiva .htaccess AllowOverride'; $wb['htaccess_allow_override_error_empty'] = 'Diretiva .htaccess AllowOverride está em branco.'; -$wb['awstats_conf_dir_txt'] = 'Diretório de configuração do awstats'; -$wb['awstats_data_dir_txt'] = 'Diretório de dados do awstats'; +$wb['awstats_conf_dir_txt'] = 'Pasta de configuração do awstats'; +$wb['awstats_data_dir_txt'] = 'Pasta de dados do awstats'; $wb['awstats_pl_txt'] = 'Script awstats.pl'; $wb['awstats_buildstaticpages_pl_txt'] = 'Script awstats_buildstaticpages.pl'; $wb['backup_dir_txt'] = 'Diretório de backup'; +$wb['backup_tmp_txt'] = 'Diretório para backup temporário quando utilizado zip'; $wb['named_conf_local_path_txt'] = 'Caminho do named.conf.local'; -$wb['php_ini_path_cgi_txt'] = 'Caminho do php.ini CGI'; -$wb['php_ini_path_apache_txt'] = 'Caminho do php.ini apache'; -$wb['check_apache_config_txt'] = 'Testar a configuração do apache ao reiniciar'; -$wb['network_config_warning_txt'] = 'A configuração de rede só está disponÃvel para servidores Debian e Ubuntu. Não ative esta configuração se a adaptadora de rede no sistema for diferente de eth0.'; -$wb['CA_path_txt'] = 'Caminho do CA'; -$wb['CA_pass_txt'] = 'Senha do CA'; -$wb['ufw_enable_txt'] = 'Habilitar'; -$wb['ufw_manage_builtins_txt'] = 'Gerenciar regras embutidas'; -$wb['ufw_ipv6_txt'] = 'Habilitar IPv6'; -$wb['ufw_default_input_policy_txt'] = 'PolÃtica padrão para entrada'; -$wb['ufw_default_output_policy_txt'] = 'PolÃtica padrão para saÃda'; -$wb['ufw_default_forward_policy_txt'] = 'PolÃtica padrão para encaminhamento'; -$wb['ufw_default_application_policy_txt'] = 'PolÃtica padrão para aplicações'; -$wb['ufw_log_level_txt'] = 'NÃvel do log'; -$wb['fastcgi_config_syntax_txt'] = 'Sintaxe das configurações FastCGI'; -$wb['server_type_txt'] = 'Tipo de servidor'; -$wb['nginx_vhost_conf_dir_txt'] = 'Diretório de configuração do vhost nginx'; -$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Configuração do diretório do vhost nginx habilitada'; +$wb['php_ini_path_cgi_txt'] = 'Caminho do php.ini do cgi'; +$wb['php_ini_path_apache_txt'] = 'Caminho do php.ini do apache'; +$wb['check_apache_config_txt'] = 'Verificar as configurações do apache quando reiniciar'; +$wb['network_config_warning_txt'] = 'A configuração de rede está disponÃvel apenas para servidores Debian e Ubuntu. Não habilite esta opção se a interface de rede for diferente de eth0.'; +$wb['CA_path_txt'] = 'Caminho da CA'; +$wb['CA_pass_txt'] = 'Senha da CA'; +$wb['fastcgi_config_syntax_txt'] = 'Sintaxe das configurações do FastCGI'; +$wb['backup_mode_txt'] = 'Modo do backup'; +$wb['backup_mode_userzip'] = 'Arquivos de backup com propriedade do usuário web e compactados como zip'; +$wb['backup_mode_rootgz'] = 'Todos os arquivos no diretório web com proprietário root'; +$wb['tmpdir_path_error_empty'] = 'Caminho do diretório temporário está em branco.'; +$wb['tmpdir_path_error_regex'] = 'Caminho do diretório temporário é inválido.'; +$wb['backup_time_txt'] = 'Hora do backup'; +$wb['server_type_txt'] = 'Tipo do servidor'; +$wb['nginx_vhost_conf_dir_txt'] = 'Diretório de configurações vhost do nginx'; +$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Diretório de configurações vhost do nginx habilitado'; $wb['nginx_user_txt'] = 'Usuário nginx'; -$wb['nginx_group_txt'] = 'Grupo nginx'; -$wb['nginx_cgi_socket_txt'] = 'Soquete CGI nginx'; +$wb['nginx_group_txt'] = 'Grupo do nginx'; +$wb['nginx_cgi_socket_txt'] = 'Socket CGI do nginx'; $wb['backup_dir_error_empty'] = 'Diretório de backup está em branco.'; $wb['maildir_path_error_empty'] = 'Caminho do maildir está em branco.'; $wb['homedir_path_error_empty'] = 'Caminho do homedir está em branco.'; -$wb['mailuser_uid_error_empty'] = 'UID do mailuser está em branco.'; -$wb['mailuser_gid_error_empty'] = 'GID do mailuser está em branco.'; -$wb['mailuser_name_error_empty'] = 'Nome do mailuser está em branco.'; -$wb['mailuser_group_error_empty'] = 'Grupo do mailuser está em branco.'; -$wb['getmail_config_dir_error_empty'] = 'Configuração do diretório getmail está em branco.'; -$wb['website_basedir_error_empty'] = 'Diretório padrão (basedir) do site está em branco.'; -$wb['website_path_error_empty'] = 'Caminho do diretório base (basedir) do site está em branco.'; -$wb['website_symlinks_error_empty'] = 'Links simbólicos para site está em branco.'; -$wb['vhost_conf_dir_error_empty'] = 'Configuração do diretório para vhost está em branco.'; -$wb['vhost_conf_enabled_dir_error_empty'] = 'Configuração habilitada do diretório vhost está em branco.'; -$wb['nginx_vhost_conf_dir_error_empty'] = 'Configuração do diretório vhost do nginx está em branco.'; -$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Configuração habilitada do diretório vhost do nginx está em branco.'; -$wb['apache_user_error_empty'] = 'Usuário apache está em branco.'; -$wb['apache_group_error_empty'] = 'Grupo apache está em branco.'; -$wb['nginx_user_error_empty'] = 'Usuário nginx está em branco.'; -$wb['nginx_group_error_empty'] = 'Grupo nginx está em branco.'; -$wb['php_ini_path_apache_error_empty'] = 'Caminho do php.ini apache está em branco.'; +$wb['mailuser_uid_error_empty'] = 'UID do mailuser UID está em branco.'; +$wb['mailuser_gid_error_empty'] = 'GID do mailuser GID está em branco.'; +$wb['mailuser_name_error_empty'] = 'Usuário do mailuser está em branco.'; +$wb['mailuser_group_error_empty'] = 'Grupo do mailuser Group está em branco.'; +$wb['getmail_config_dir_error_empty'] = 'Diretório de configurações do getmail está em branco.'; +$wb['website_basedir_error_empty'] = 'Diretório basedir de sites está em branco.'; +$wb['website_path_error_empty'] = 'Caminho do site está em branco.'; +$wb['website_symlinks_error_empty'] = 'Links simbólicos de site está em branco.'; +$wb['vhost_conf_dir_error_empty'] = 'Diretório de configurações do vhost está em branco.'; +$wb['vhost_conf_enabled_dir_error_empty'] = 'Diretório de configurações vhost habilitadas está em branco.'; +$wb['nginx_vhost_conf_dir_error_empty'] = 'Diretório de configurações vhost do nginx está em branco.'; +$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Diretório de configurações vhost habilitadas do nginx está em branco.'; +$wb['apache_user_error_empty'] = 'Usuário do apache está em branco.'; +$wb['apache_group_error_empty'] = 'Grupo do apache está em branco.'; +$wb['nginx_user_error_empty'] = 'Usuário do nginx está em branco.'; +$wb['nginx_group_error_empty'] = 'Grupo do nginx está em branco.'; +$wb['php_ini_path_apache_error_empty'] = 'Caminho do php.ini do apache está em branco.'; $wb['php_ini_path_cgi_error_empty'] = 'Caminho do php.ini CGI está em branco.'; -$wb['nginx_cgi_socket_empty'] = 'Soquete do CGI nginx está em branco.'; -$wb['apps_vhost_port_error_empty'] = 'Porta de apps-vhost está em branco.'; -$wb['apps_vhost_ip_error_empty'] = 'IP para apps-vhost está em branco.'; -$wb['fastcgi_starter_path_error_empty'] = 'Caminho do programa de inicialização do FastCGI está em branco.'; +$wb['nginx_cgi_socket_empty'] = 'O socket CGI do nginx está em branco.'; +$wb['apps_vhost_port_error_empty'] = 'Portas de apps-vhost está em branco.'; +$wb['apps_vhost_ip_error_empty'] = 'IP do apps-vhost está em branco.'; +$wb['fastcgi_starter_path_error_empty'] = 'Caminho do script de inicialização do FastCGI está em branco.'; $wb['fastcgi_starter_script_error_empty'] = 'Script de inicialização do FastCGI está em branco.'; -$wb['fastcgi_alias_error_empty'] = 'Alias (apelido) do FastCGI está em branco.'; -$wb['fastcgi_phpini_path_error_empty'] = 'Caminho do php.ini do FastCGI está em branco.'; -$wb['fastcgi_children_error_empty'] = 'Filhos do FastCGI está em branco.'; -$wb['fastcgi_max_requests_error_empty'] = 'Limite de requisições do FastCGI está em branco.'; -$wb['fastcgi_bin_error_empty'] = 'Binário do FastCGI está em branco.'; -$wb['jailkit_chroot_home_error_empty'] = 'Diretório raiz do jailkit está em branco.'; -$wb['jailkit_chroot_app_sections_error_empty'] = 'Aplicações no jailkit chroot (sessões) está em branco.'; -$wb['jailkit_chroot_app_programs_error_empty'] = 'Aplicações no jailkit em ambiente chroot está em branco.'; -$wb['jailkit_chroot_cron_programs_error_empty'] = 'Tarefas no cron de aplicações no jailkit em ambiente chroot está em branco.'; -$wb['vlogger_config_dir_error_empty'] = 'Diretório de configurações está em branco.'; -$wb['cron_init_script_error_empty'] = 'Nome do script de inicialização do cron está em branco.'; -$wb['crontab_dir_error_empty'] = 'Caminho para tabelas de tarefas individuais no cron está em branco.'; -$wb['cron_wget_error_empty'] = 'Caminho do programa wget está em branco.'; -$wb['php_fpm_init_script_txt'] = 'Script de inicialização do PHP-FPM'; -$wb['php_fpm_init_script_error_empty'] = 'Script de inicialização do PHP-FPM está em branco.'; -$wb['php_fpm_ini_path_txt'] = 'Caminho do php.ini do PHP-FPM'; -$wb['php_fpm_ini_path_error_empty'] = 'Caminho do php.ini do PHP-FPM está em branco.'; -$wb['php_fpm_pool_dir_txt'] = 'Diretório de faixas (pool) do PHP-FPM'; -$wb['php_fpm_pool_dir_error_empty'] = 'Diretório de faixas (pool) do PHP-FPM está em branco.'; -$wb['php_fpm_start_port_txt'] = 'Porta de inicialização do PHP-FPM'; -$wb['php_fpm_start_port_error_empty'] = 'Porta de inicialização do PHP-FPM está em branco.'; -$wb['php_fpm_socket_dir_txt'] = 'Diretório do soquete PHP-FPM'; -$wb['php_fpm_socket_dir_error_empty'] = 'Diretório do soquete PHP-FPM está em branco.'; -$wb['try_rescue_txt'] = 'Habilitar serviço de monitoramento e reiniciar em caso de falha'; -$wb['do_not_try_rescue_mysql_txt'] = 'Desabilitar monitoramento do MySQL'; -$wb['do_not_try_rescue_mail_txt'] = 'Desabilitar monitoramento do servidor de e-mails'; -$wb['rescue_description_txt'] = '<b>Informação:</b> Se você deseja desligar o MySQL deverá selecionar \'Desabilitar monitoramento do MySQL\' e aguardar em torno de 2 a 3 minutos...<br>se não aguardar em torno de 2 a 3 minutos, o serviço tentará reiniciar o MySQL!'; +$wb['fastcgi_alias_error_empty'] = 'Alias do FastCGI está em branco.'; +$wb['fastcgi_phpini_path_error_empty'] = 'O caminho do php.ini do FastCGI está em branco.'; +$wb['fastcgi_children_error_empty'] = 'Os processos filhos do FastCGI está em branco.'; +$wb['fastcgi_max_requests_error_empty'] = 'O limite de requisições FastCGI está em branco.'; +$wb['fastcgi_bin_error_empty'] = 'O binário do FastCGI está em branco.'; +$wb['jailkit_chroot_home_error_empty'] = 'O home em chroot do jailkit está em branco.'; +$wb['jailkit_chroot_app_sections_error_empty'] = 'Seções de aplicações no jailkit está em branco.'; +$wb['jailkit_chroot_app_programs_error_empty'] = 'Aplicações no jailkit está em branco.'; +$wb['jailkit_chroot_cron_programs_error_empty'] = 'Tarefas de aplicações no jailkit está em branco.'; +$wb['vlogger_config_dir_error_empty'] = 'Diretório de configuração está em branco.'; +$wb['cron_init_script_error_empty'] = 'Script de inicialização do cron está em branco.'; +$wb['crontab_dir_error_empty'] = 'Caminho para tarefas individuais no cron está em branco.'; +$wb['cron_wget_error_empty'] = 'Caminho do binário wget está em branco.'; +$wb['php_fpm_init_script_txt'] = 'Script de inicialização do php-fpm'; +$wb['php_fpm_init_script_error_empty'] = 'Script de inicialização do php-fpm está em branco.'; +$wb['php_fpm_ini_path_txt'] = 'Caminho do php.ini do php-fpm'; +$wb['php_fpm_ini_path_error_empty'] = 'Caminho do php.ini do php-fpm está em branco.'; +$wb['php_fpm_pool_dir_txt'] = 'Diretório de faixas do php-fpm'; +$wb['php_fpm_pool_dir_error_empty'] = 'Diretório de faixas do php-fpm está em branco.'; +$wb['php_fpm_start_port_txt'] = 'Porta do php-fpm'; +$wb['php_fpm_start_port_error_empty'] = 'Porta do php-fpm está em branco.'; +$wb['php_fpm_socket_dir_txt'] = 'Diretório do socket php-fpm'; +$wb['php_fpm_socket_dir_error_empty'] = 'O diretório do socket php-fpm está em branco.'; +$wb['try_rescue_txt'] = 'Habilitar monitoramento de reiniciar em caso de falha'; +$wb['do_not_try_rescue_httpd_txt'] = 'Desabilitar monitoramento do httpd'; +$wb['do_not_try_rescue_mongodb_txt'] = 'Desabilitar monitoramento do mongodb'; +$wb['do_not_try_rescue_mysql_txt'] = 'Desabilitar monitoramento do mysql'; +$wb['do_not_try_rescue_mail_txt'] = 'Desabilitar monitoramento de e-mail'; +$wb['rescue_description_txt'] = '<b>Informação:</b> Se o serviço mysql for desligado e estiver selecionado "Desabilitar monitoramento do mysql" aguarde entre 2 e 3 minutos sem abandonar a aba. <br>Se não aguardar o sistema de recuperação de falhas tentará reiniciar o mysql!'; $wb['enable_sni_txt'] = 'Habilitar SNI'; -$wb['do_not_try_rescue_httpd_txt'] = 'Desabilitar monitoramento do HTTPD'; -$wb['set_folder_permissions_on_update_txt'] = 'Configurar permissões de pasta na atualização'; -$wb['add_web_users_to_sshusers_group_txt'] = 'Adicionar usuários de site (web) para grupo -sshusers-'; -$wb['connect_userid_to_webid_txt'] = 'Mapear userID Linux para webID'; -$wb['connect_userid_to_webid_start_txt'] = 'Iniciar ID para userID/webID se conectar'; -$wb['website_autoalias_txt'] = 'Auto apelido (alias) para sites'; -$wb['website_autoalias_note_txt'] = 'Ãrea reservada:'; -$wb['backup_mode_txt'] = 'Modo do backup'; -$wb['backup_mode_userzip'] = 'Arquivos de backup com propriedade do usuário web e compactados como zip'; -$wb['backup_mode_rootgz'] = 'Todos os arquivos no diretório web com proprietário root'; -$wb['realtime_blackhole_list_txt'] = 'RBL em tempo real'; -$wb['realtime_blackhole_list_note_txt'] = '(Separar RBL\'s por vÃrgulas)'; +$wb['set_folder_permissions_on_update_txt'] = 'Configurar permissões de pasta quando atualizar'; +$wb['add_web_users_to_sshusers_group_txt'] = 'Adicionar novos usuários web para o grupo ssh'; +$wb['connect_userid_to_webid_txt'] = 'Conectar o UID do usuário no sistema para webID'; +$wb['connect_userid_to_webid_start_txt'] = 'Conexão do ID inicial do usuário com o webID'; +$wb['realtime_blackhole_list_txt'] = 'Lista RBL em tempo real'; +$wb['realtime_blackhole_list_note_txt'] = '(separar as RBLs com vÃrgulas)'; $wb['ssl_settings_txt'] = 'Configurações SSL'; $wb['permissions_txt'] = 'Permissões'; -$wb['php_settings_txt'] = 'Configurações PHP'; -$wb['apps_vhost_settings_txt'] = 'Configurações apps-vhost'; -$wb['awstats_settings_txt'] = 'Configurações awstats'; +$wb['php_settings_txt'] = 'Configurações php'; +$wb['apps_vhost_settings_txt'] = 'Configurações de apps vhost'; +$wb['awstats_settings_txt'] = 'Configurações do awstats'; $wb['firewall_txt'] = 'Firewall'; -$wb['mailbox_quota_stats_txt'] = 'EstatÃsticas de cota das contas de e-mail'; -$wb['enable_ip_wildcard_txt'] = 'Habilitar curingas (*) para IP'; +$wb['mailbox_quota_stats_txt'] = 'EstatÃsticas das cotas das contas de e-mail'; +$wb['enable_ip_wildcard_txt'] = 'Habilitar curingas de IP (*)'; $wb['web_folder_protection_txt'] = 'Tornar pastas web imutáveis (atributos estendidos)'; -$wb['overtraffic_notify_admin_txt'] = 'Enviar notificação de cota de tráfego excedida para o administrador'; -$wb['overtraffic_notify_client_txt'] = 'Enviar notificação de cota de tráfego excedida para o cliente'; -$wb['rbl_error_regex'] = 'Por favor, insira um nome de servidor válido para RBL.'; -$wb['overquota_notify_admin_txt'] = 'Enviar alertas de cota para o administrador'; -$wb['overquota_notify_client_txt'] = 'Enviar alertas de cota para o cliente'; -$wb['overquota_notify_onok_txt'] = 'Enviar mensagem de cota OK para o cliente'; -$wb['overquota_notify_freq_txt'] = 'Enviar alertas de cota a cada N dias'; -$wb['overquota_notify_freq_note_txt'] = '0 = enviar mensagem apenas uma vez, não repetir'; -$wb['admin_notify_events_txt'] = 'Enviar e-mail para o admin quando iniciando com o seguinte nÃvel'; -$wb['no_notifications_txt'] = 'Sem Notificações'; -$wb['monit_url_txt'] = 'URL do Monit'; -$wb['monit_user_txt'] = 'Usuário do Monit'; -$wb['monit_password_txt'] = 'Senha do Monit'; -$wb['monit_url_error_regex'] = 'URL do Monit inválida.'; +$wb['overtraffic_notify_admin_txt'] = 'Enviar notificação de tráfego excedido para o administrador'; +$wb['overtraffic_notify_client_txt'] = 'Enviar notificação de tráfego excedido para o cliente'; +$wb['rbl_error_regex'] = 'Por favor, nomes de host válidos para RBLs.'; +$wb['overquota_notify_admin_txt'] = 'Enviar alerta da cota para o administrador'; +$wb['overquota_notify_client_txt'] = 'Enviar alerta da cota para o cliente'; +$wb['overquota_notify_onok_txt'] = 'Enviar mensagem da cota para o cliente'; +$wb['overquota_notify_freq_txt'] = 'Enviar alerta da cota a cada X dias'; +$wb['overquota_notify_freq_note_txt'] = '0 = enviar mensagem apenas uma vez, sem repetir'; +$wb['admin_notify_events_txt'] = 'Enviar e-mail para o administrador iniciando com o seguinte nÃvel'; +$wb['no_notifications_txt'] = 'Sem notificações'; +$wb['monit_url_txt'] = 'URL de monitoramento do monit'; +$wb['monit_user_txt'] = 'Usuário do monit'; +$wb['monit_password_txt'] = 'Senha do monit'; +$wb['monit_url_error_regex'] = 'URL do monit é inválida'; $wb['monit_url_note_txt'] = 'Ãrea reservada:'; -$wb['munin_url_txt'] = 'URL do Munin'; -$wb['munin_user_txt'] = 'Usuário do Munin'; -$wb['munin_password_txt'] = 'Senha do Munin'; -$wb['munin_url_error_regex'] = 'URL do Munin inválida.'; +$wb['munin_url_txt'] = 'URL do munin'; +$wb['munin_user_txt'] = 'Usuário do munin'; +$wb['munin_password_txt'] = 'Senda do munin'; +$wb['munin_url_error_regex'] = 'URL do munin e inválida'; $wb['munin_url_note_txt'] = 'Ãrea reservada:'; -$wb['dkim_path_txt'] = 'Caminho do DKIM'; -$wb['backup_delete_txt'] = 'Remover backups do domÃnio/site'; $wb['v6_prefix_txt'] = 'Prefixo IPv6'; -$wb['vhost_rewrite_v6_txt'] = 'Reescrever prefixo IPv6 no espelho'; -$wb['v6_prefix_length'] = 'Prefixo longo definido de acordo com IPv6'; -$wb['backup_dir_is_mount_txt'] = 'Diretório de backup está montado?'; -$wb['monitor_system_updates_txt'] = 'Verificar por atualizações Linux'; -$wb['hostname_error_regex'] = 'Nome do servidor é inválido.'; -$wb['invalid_apache_user_txt'] = 'Usuário do Apache é inválido.'; -$wb['invalid_apache_group_txt'] = 'Grupo do Apache é inválido.'; +$wb['vhost_rewrite_v6_txt'] = 'Reescrever IPv6 no espelho'; +$wb['v6_prefix_length'] = 'O prefixo é muito longo de acordo com as definições IPv6.'; +$wb['backup_dir_is_mount_txt'] = 'O diretório de backup está montando?'; +$wb['backup_dir_mount_cmd_txt'] = 'Comando mount, se o diretório não está montado'; +$wb['backup_delete_txt'] = 'Remover backups de domÃnios/site'; +$wb['overquota_db_notify_admin_txt'] = 'Enviar alerta da cota do banco de dados para o administrador'; +$wb['overquota_db_notify_client_txt'] = 'Enviar alerta da cota do banco de dados para o cliente'; +$wb['monitor_system_updates_txt'] = 'Verificar por atualizações do sistema'; +$wb['php_handler_txt'] = 'Manipulador padrão do php'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; +$wb['php_fpm_incron_reload_txt'] = 'Instale o arquivo de disparo do incron para recarregar o php-fpm.'; +$wb['disabled_txt'] = 'Desabilitado'; +$wb['dkim_strength_txt'] = 'Dificuldade do DKIM'; +$wb['monitor_system_updates_txt'] = 'Verificar por atualizações do sistema'; +$wb['invalid_apache_user_txt'] = 'Usuário do apache é inválido.'; +$wb['invalid_apache_group_txt'] = 'Grupo do apache é inválido.'; $wb['backup_dir_error_regex'] = 'Diretório de backup é inválido.'; -$wb['maildir_path_error_regex'] = 'Caminho do Maildir é inválido.'; -$wb['homedir_path_error_regex'] = 'Caminho do Home é inválido.'; -$wb['mailuser_name_error_regex'] = 'Nome do Mailuser é inválido.'; -$wb['mailuser_group_name_error_regex'] = 'Grupo do Mailuser é inválido.'; -$wb['mailuser_uid_error_range'] = 'A UID do Mailuser deve ser >= 2000'; -$wb['mailuser_gid_error_range'] = 'A GID do Mailuser deve ser >= 2000'; -$wb['getmail_config_dir_error_regex'] = 'Configuração do diretório do getmail inválida.'; -$wb['website_basedir_error_regex'] = 'Diretório base (basedir) para sites é inválido.'; -$wb['website_symlinks_error_regex'] = 'Links simbólicos para sites é inválido.'; -$wb['vhost_conf_dir_error_regex'] = 'Diretório de configurações para vhost é inválido.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações para vhost habilitado é inválido.'; +$wb['maildir_path_error_regex'] = 'Caminho do maildir é inválido.'; +$wb['homedir_path_error_regex'] = 'Caminho do homedir é inválido.'; +$wb['mailuser_name_error_regex'] = 'Caminho do mailuser é inválido.'; +$wb['mailuser_group_name_error_regex'] = 'Grupo do mailuser é inválido.'; +$wb['mailuser_uid_error_range'] = 'A UID do mailuser deve ser >= 2000.'; +$wb['mailuser_gid_error_range'] = 'A GID do mailuser deve ser >= 2000.'; +$wb['getmail_config_dir_error_regex'] = 'Diretório de configurações do getmail é inválido.'; +$wb['website_basedir_error_regex'] = 'Caminho do basedir para sites é inválido. Comprimento mÃnimo 5 caracteres.'; +$wb['website_symlinks_error_regex'] = 'Links simbólicos para site são inválidos.'; +$wb['vhost_conf_dir_error_regex'] = 'Diretório de configurações vhost é inválido.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Diretório de configuração vhost habilitado é inválido.'; $wb['nginx_vhost_conf_dir_error_regex'] = 'Diretório de configurações do nginx é inválido.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações nginx habilitado é inválido.'; -$wb['ca_path_error_regex'] = 'Caminho do CA é inválido.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações do nginx habilitado é inválido.'; +$wb['ca_path_error_regex'] = 'Caminho da CA é inválido.'; $wb['invalid_nginx_user_txt'] = 'Usuário do nginx é inválido.'; $wb['invalid_nginx_group_txt'] = 'Grupo do nginx é inválido.'; -$wb['php_ini_path_apache_error_regex'] = 'Caminho do php.ini apache é inválido.'; -$wb['php_ini_path_cgi_error_regex'] = 'Caminho do php.ini CGI é inválido.'; -$wb['php_fpm_init_script_error_regex'] = 'Caminho do script de inicialização do PHP-FPM é inválido.'; -$wb['php_fpm_ini_path_error_regex'] = 'Caminho do php.ini PHP-FPM é inválido.'; -$wb['php_fpm_pool_dir_error_regex'] = 'Diretório de faixas (pool) PHP-FPM é inválido.'; -$wb['php_fpm_socket_dir_error_regex'] = 'Diretório do sqouete PHP-FPM é inválido.'; -$wb['php_open_basedir_error_regex'] = 'Diretório base (open_basedir) PHP é inválido.'; -$wb['awstats_data_dir_empty'] = 'Diretório de dados do awstats está em branco.'; -$wb['awstats_data_dir_error_regex'] = 'Diretório de dados do do awstats é inválido.'; -$wb['awstats_pl_empty'] = 'Configuração do script awstats.pl está em branco.'; -$wb['awstats_pl_error_regex'] = 'Caminho do script awstats.pl é inválido.'; -$wb['awstats_buildstaticpages_pl_empty'] = 'Script awstats_buildstaticpages.pl está em branco.'; -$wb['awstats_buildstaticpages_pl_error_regex'] = 'Camindho do script awstats_buildstaticpages.pl é inválido.'; -$wb['invalid_bind_user_txt'] = 'Usuário bind é inválido.'; -$wb['invalid_bind_group_txt'] = 'Grupo bind é inválido.'; -$wb['bind_zonefiles_dir_error_regex'] = 'Diretório de zonas do bind é inválido.'; -$wb['named_conf_path_error_regex'] = 'Caminho do named.conf é inválido.'; -$wb['named_conf_local_path_error_regex'] = 'Caminho do named.conf.local é inválido.'; -$wb['fastcgi_starter_path_error_regex'] = 'Caminho do scritp de inicialização FASTCGI é inválido.'; -$wb['fastcgi_starter_script_error_regex'] = 'Script de inicizalização FASTCGI é inválido.'; -$wb['fastcgi_alias_error_regex'] = 'Apelido (alias) do FASTCGI é inválido.'; -$wb['fastcgi_phpini_path_error_regex'] = 'Caminho do FASTCGI é inválido.'; -$wb['fastcgi_bin_error_regex'] = 'Binário do FASTCGI é inválido.'; -$wb['jailkit_chroot_home_error_regex'] = 'Raiz do chroot jailkit inválida.'; -$wb['jailkit_chroot_app_sections_error_regex'] = 'Aplicações no jailkit chroot (sessões) são inválidas.'; -$wb['jailkit_chroot_app_programs_error_regex'] = 'Aplicações no jailkit em ambiente chroot são inválidas.'; -$wb['jailkit_chroot_cron_programs_error_regex'] = 'Programas no cron em ambiente chroot jailkit são inválidos.'; -$wb['vlogger_config_dir_error_regex'] = 'Diretório de configuração do vlogger é inválido.'; -$wb['cron_init_script_error_regex'] = 'Script de inicialização do Cron é inválido.'; -$wb['crontab_dir_error_regex'] = 'Diretório para tabelas de tarefas individuais no cron é inválido.'; -$wb['cron_wget_error_regex'] = 'Caminho do wget para cron é inválido.'; +$wb['php_ini_path_apache_error_regex'] = 'Caminho do php.ini do apache é inválido.'; +$wb['php_ini_path_cgi_error_regex'] = 'Caminho do php.ini do cgi é inválido.'; +$wb['php_fpm_init_script_error_regex'] = 'Script de inicialização do php-fpm é inválido.'; +$wb['php_fpm_ini_path_error_regex'] = 'Caminho de inicialização do php-fpm é inválido.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Caminho do diretório de faixas do php-fpm é inválido.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Caminho do diretório de socket do php-fpm é inválido.'; +$wb['php_open_basedir_error_regex'] = 'Caminho do open_basedir do php é inválido.'; +$wb['awstats_data_dir_empty'] = 'O diretório de dados do awstats está em branco.'; +$wb['awstats_data_dir_error_regex'] = 'O diretório de dados do awstats é inválido.'; +$wb['awstats_pl_empty'] = 'A configuração do awstats.pl está em branco.'; +$wb['awstats_pl_error_regex'] = 'O caminho do awstats.pl é inválido.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'O awstats_buildstaticpages.pl está em branco'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'O caminho do awstats_buildstaticpages.pl é inválido.'; +$wb['invalid_bind_user_txt'] = 'O usuário do bind é inválido.'; +$wb['invalid_bind_group_txt'] = 'O grupo do bind é inválido.'; +$wb['bind_zonefiles_dir_error_regex'] = 'O diretório de zonas do bind é inválido.'; +$wb['named_conf_path_error_regex'] = 'O caminho do named.conf é inválido.'; +$wb['named_conf_local_path_error_regex'] = 'O caminho do named.conf.local é inválido.'; +$wb['fastcgi_starter_path_error_regex'] = 'O caminho do script de inicialização do fastcgi é inválido.'; +$wb['fastcgi_starter_script_error_regex'] = 'O script de inicialização do fastcgi é inválido.'; +$wb['fastcgi_alias_error_regex'] = 'O alias do fastcgi é inválido.'; +$wb['fastcgi_phpini_path_error_regex'] = 'O caminho do fastcgi é inválido.'; +$wb['fastcgi_bin_error_regex'] = 'O binário do fastcgi é inválido.'; +$wb['jailkit_chroot_home_error_regex'] = 'O diretório home em chroot do jailkit é inválido.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'As seções de aplicações no jaikit são inválidas.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'As aplicações em chroot no jailkit são inválidas.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'As tarefas de aplicações em chroot no jailkit são inválidas.'; +$wb['vlogger_config_dir_error_regex'] = 'Diretório de configurações do vlogger é inválido.'; +$wb['cron_init_script_error_regex'] = 'Script de inicialização do cron é inválido.'; +$wb['crontab_dir_error_regex'] = 'Diretório do cron é inválido.'; +$wb['cron_wget_error_regex'] = 'Caminho do wget no cron é inválido.'; $wb['network_filesystem_txt'] = 'Sistema de arquivos de rede'; -$wb['disable_bind_log_txt'] = 'Desabilitar mensagens de alerta no log para bind9.'; -$wb['apps_vhost_enabled_txt'] = 'Habilitar apps-vhost'; -$wb['do_not_try_rescue_mongodb_txt'] = 'Desabilitar monitoramento do MongoDB'; -$wb['backup_dir_mount_cmd_txt'] = 'Usar o comando mount, se o diretório de backups não estiver montado'; -$wb['overquota_db_notify_admin_txt'] = 'Enviar mensagens de alerta de cota do banco de dados para o administrador'; -$wb['overquota_db_notify_client_txt'] = 'Enviar mensagens de alerta de cota do banco de dados para o cliente'; -$wb['php_handler_txt'] = 'Manipulador padrão PHP'; -$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['disabled_txt'] = 'Desabilitado'; -$wb['dkim_strength_txt'] = 'Dificuldade do DKIM'; -$wb['php_ini_check_minutes_txt'] = 'Verificar modificações do php.ini a cada N minutos'; -$wb['php_ini_check_minutes_error_empty'] = 'Por favor, insira um valor de quantas vezes o php.ini deve ser verificado por modificações.'; -$wb['php_ini_check_minutes_info_txt'] = '0 = sem verificação'; -$wb['enable_spdy_txt'] = 'Tornar SPDY/HTTP2 disponÃvel'; -$wb['web_settings_txt'] = 'Servidor de páginas'; -$wb['xmpp_server_txt'] = 'Servidor XMPP'; +$wb['php_ini_check_minutes_txt'] = 'Verificar alterações no php.ini a cada X minutos'; +$wb['php_ini_check_minutes_error_empty'] = 'Por favor, insira um valor para verificação de alterações no php.ini.'; +$wb['php_ini_check_minutes_info_txt'] = '0 = sem verificações'; +$wb['web_settings_txt'] = 'Servidor web'; +$wb['xmpp_server_txt'] = 'Servidor xmpp'; $wb['xmpp_use_ipv6_txt'] = 'Usar IPv6'; -$wb['xmpp_bosh_max_inactivity_txt'] = 'O limite de tempo para falta de atividade BOSH'; -$wb['xmpp_bosh_timeout_range_wrong'] = 'Por favor, insira uma faixa de tempo - entre 15 e 360 - para verificar falta de atividade BOSH.'; -$wb['xmpp_module_saslauth'] = 'saslauth'; +$wb['xmpp_bosh_max_inactivity_txt'] = 'Tempo de inatividade do BOSH'; +$wb['xmpp_bosh_timeout_range_wrong'] = 'Por favor, insira um valor para o timeout do bosh entre 15 e 360.'; +$wb['xmpp_module_saslauth'] = 'Autenticação SASL'; $wb['xmpp_server_admins_txt'] = 'Administradores do servidor (JIDs)'; -$wb['xmpp_modules_enabled_txt'] = 'Habilitar plugins no lado servidor (um por linha)'; +$wb['xmpp_modules_enabled_txt'] = 'Plugins habilitados no servidor (um por linha)'; $wb['xmpp_ports_txt'] = 'Portas dos componentes'; -$wb['xmpp_port_http_txt'] = 'HTTP'; -$wb['xmpp_port_https_txt'] = 'HTTPS'; +$wb['xmpp_port_http_txt'] = 'http'; +$wb['xmpp_port_https_txt'] = 'https'; $wb['xmpp_port_pastebin_txt'] = 'Pastebin'; $wb['xmpp_port_bosh_txt'] = 'BOSH'; -$wb['backup_time_txt'] = 'Hora do backup'; +$wb['disable_bind_log_txt'] = 'Desabilitar mensagens de alerta do bind9'; +$wb['apps_vhost_enabled_txt'] = 'Habilitar apps-vhost'; $wb['skip_le_check_txt'] = 'Ignorar verificação do Lets Encrypt'; -$wb['migration_mode_txt'] = 'Habilitar modo de migração do servidor'; -$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; -$wb['backup_tmp_txt'] = 'Backup tmp directory for zip'; -$wb['tmpdir_path_error_empty'] = 'tmp-dir Path is empty.'; -$wb['tmpdir_path_error_regex'] = 'Invalid tmp-dir path.'; -$wb['logging_txt'] = 'Store website access and error logs'; -$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; -$wb['log_retention_txt'] = 'Log retention (days)'; -$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; -$wb['php_default_name_txt'] = 'Description Default PHP-Version'; -$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; -?> +$wb['migration_mode_txt'] = 'Modo migração de servidor'; +$wb['nginx_enable_pagespeed_txt'] = 'Tornar pagespeed disponÃvel'; +$wb['logging_txt'] = 'Gravar logs de acesso e erros de sites'; +$wb['logging_desc_txt'] = 'Usar Ferramentas > Sicronizar para aplicar mudanças em sites existentes. Para o Apache, os logs de acesso e erros podem ser anonimizados. Para o nginx, apenas o log de acesso é anonimizado, o log de erros conterá endereços IP.'; +$wb['log_retention_txt'] = 'Tempo de retenção do log (dias)'; +$wb['log_retention_error_ispositive'] = 'O tempo de retenção do log deve ser um número > 0.'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; +$wb['php_default_name_txt'] = 'Descrição da versão padrão do php'; +$wb['php_default_name_error_empty'] = 'A descrição da versão padrão do php está em branco.'; +$wb['error_mailbox_message_size_txt'] = 'O tamanho da cota da conta de e-mail deve ser maior ou igual o tamanho da cota de mensagens.'; +$wb['php_fpm_reload_mode_txt'] = 'Modo da recarga do php-fpm'; +$wb['content_filter_txt'] = 'Filtro de conteúdo'; +$wb['rspamd_url_txt'] = 'URL do rspamd'; +$wb['rspamd_user_txt'] = 'Usuário do rspamd'; +$wb['rspamd_password_txt'] = 'Senha do rspamd'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; diff --git a/interface/web/admin/lib/lang/br_server_ip.lng b/interface/web/admin/lib/lang/br_server_ip.lng index b92157894071b20fa27b58088fc16ff36a2b7e72..8380b61ebd4d2c1f7113f18ff426b6b0d7ecbaaa 100644 --- a/interface/web/admin/lib/lang/br_server_ip.lng +++ b/interface/web/admin/lib/lang/br_server_ip.lng @@ -1,11 +1,13 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Servidor'; -$wb['ip_address_txt'] = 'Endereço IP'; -$wb['virtualhost_txt'] = 'Nome do virtualHost http'; -$wb['ip_error_wrong'] = 'Endereço IP inválido!'; -$wb['ip_error_unique'] = 'O endereço IP deve ser exclusivo.'; $wb['client_id_txt'] = 'Cliente'; $wb['ip_type_txt'] = 'Tipo'; -$wb['virtualhost_port_txt'] = 'Portas http'; -$wb['error_port_syntax'] = 'Caracteres inválidos no campo -portas http-, insira somente números separados por vÃrgula. Exemplo: 80,443'; +$wb['ip_address_txt'] = 'Endereço IP'; +$wb['virtualhost_txt'] = 'Nome do vhost http'; +$wb['virtualhost_port_txt'] = 'Porta http'; +$wb['ip_error_wrong'] = 'O endereço IP é inválido.'; +$wb['ip_error_unique'] = 'O endereço IP deve ser exclusivo.'; +$wb['error_port_syntax'] = 'Caracteres inválidos para porta http, por favor, insira apenas uma porta ou separe portas por vÃrgula. Exemplo: 80,443.'; ?> diff --git a/interface/web/admin/lib/lang/br_server_ip_list.lng b/interface/web/admin/lib/lang/br_server_ip_list.lng index c7b22097bfcd560bd07903c15444079f38694915..0ae892af876a82f35308158569db43f0dab338f1 100644 --- a/interface/web/admin/lib/lang/br_server_ip_list.lng +++ b/interface/web/admin/lib/lang/br_server_ip_list.lng @@ -1,10 +1,10 @@ <?php $wb['list_head_txt'] = 'Endereço IP'; $wb['server_id_txt'] = 'Servidor'; +$wb['client_id_txt'] = 'Cliente'; $wb['ip_address_txt'] = 'Endereço IP'; $wb['add_new_record_txt'] = 'Adicionar novo endereço IP'; -$wb['client_id_txt'] = 'Cliente'; -$wb['virtualhost_txt'] = 'Vhost http'; +$wb['virtualhost_txt'] = 'Virtual host http'; $wb['virtualhost_port_txt'] = 'Portas http'; $wb['ip_type_txt'] = 'Tipo'; ?> diff --git a/interface/web/admin/lib/lang/br_server_ip_map.lng b/interface/web/admin/lib/lang/br_server_ip_map.lng index 44b76482776000528b7276f111f412a5b4f36a52..51af1099abed80be91981ef6bcbdefebc4834ba5 100644 --- a/interface/web/admin/lib/lang/br_server_ip_map.lng +++ b/interface/web/admin/lib/lang/br_server_ip_map.lng @@ -1,12 +1,14 @@ <?php -$wb['server_id_txt'] = 'Servidor'; +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; +$wb['server_id_txt'] = 'Servidor para mapeamento IP'; $wb['source_txt'] = 'Endereço IP de origem'; $wb['destination_txt'] = 'Endereço IP de destino'; $wb['active_txt'] = 'Ativo'; -$wb['ip_error_wrong'] = 'Endereço IP é inválido.'; -$wb['destination_ip_empty'] = 'Endereço IP de destino está em branco.'; -$wb['source_ip_empty'] = 'Endereço IP de origem está em branco.'; -$wb['server_empty_error'] = 'Servidor está em branco.'; -$wb['duplicate_mapping_error'] = 'Mapeamento já existe.'; -$wb['ip_mapping_error'] = 'Endereço IP de origem não pode ser um endereço IP do servidor.'; +$wb['ip_error_wrong'] = 'O endereço IP de destino é inválido.'; +$wb['destination_ip_empty'] = 'O endereço IP de destino está em branco.'; +$wb['source_ip_empty'] = 'O endereço IP de origem está em branco.'; +$wb['server_empty_error'] = 'O servidor está em branco.'; +$wb['duplicate_mapping_error'] = 'Este mapeamento IP já existe.'; +$wb['ip_mapping_error'] = 'Endereço IP de origem não pode ser o mesmo IP do servidor para o mapeamento.'; ?> diff --git a/interface/web/admin/lib/lang/br_server_ip_map_list.lng b/interface/web/admin/lib/lang/br_server_ip_map_list.lng index f5682f31acd6de80d67261835d099d0e16d1183f..8cb0a1e20fda3ca0355af4112acc20ae9f1297e9 100644 --- a/interface/web/admin/lib/lang/br_server_ip_map_list.lng +++ b/interface/web/admin/lib/lang/br_server_ip_map_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Mapeamento IPv4 - servidor web'; +$wb['list_head_txt'] = 'Mapeamento IPv4'; $wb['server_id_txt'] = 'Servidor'; -$wb['source_ip_txt'] = 'IP de origem'; -$wb['destination_ip_txt'] = 'IP de destino'; +$wb['source_ip_txt'] = 'Endereço de origem'; +$wb['destination_ip_txt'] = 'Endereço de destino'; $wb['active_txt'] = 'Ativo'; ?> diff --git a/interface/web/admin/lib/lang/br_server_list.lng b/interface/web/admin/lib/lang/br_server_list.lng index b4a1fcafc6ce68dfd14d3bc6855394f5e289b0b6..ae3bb528105819fba1f2e301b7edfc6cda305799 100644 --- a/interface/web/admin/lib/lang/br_server_list.lng +++ b/interface/web/admin/lib/lang/br_server_list.lng @@ -1,14 +1,14 @@ <?php $wb['list_head_txt'] = 'Servidor'; $wb['server_name_txt'] = 'Nome'; -$wb['mail_server_txt'] = 'e-Mails'; -$wb['web_server_txt'] = 'Sites'; +$wb['mail_server_txt'] = 'E-MAIL'; +$wb['web_server_txt'] = 'SITES'; $wb['dns_server_txt'] = 'DNS'; $wb['file_server_txt'] = 'FTP'; $wb['db_server_txt'] = 'BD'; $wb['vserver_server_txt'] = 'VPS'; -$wb['add_new_record_txt'] = 'Adicionar novo servidor'; $wb['proxy_server_txt'] = 'Proxy'; $wb['firewall_server_txt'] = 'Firewall'; +$wb['add_new_record_txt'] = 'Adicionar novo servidor'; $wb['xmpp_server_txt'] = 'XMPP'; ?> diff --git a/interface/web/admin/lib/lang/br_server_php.lng b/interface/web/admin/lib/lang/br_server_php.lng index 459b4d9e0ccd25a92a356d622d9a6148eee1deb3..377763ce45c79b68b43b0f8e54eaadfcb2bd3c8f 100644 --- a/interface/web/admin/lib/lang/br_server_php.lng +++ b/interface/web/admin/lib/lang/br_server_php.lng @@ -1,17 +1,17 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['client_id_txt'] = 'Cliente'; -$wb['name_txt'] = 'Nome do php'; +$wb['name_txt'] = 'Nome da versão do php'; $wb['Name'] = 'Nome'; $wb['FastCGI Settings'] = 'Configurações FastCGI'; $wb['PHP-FPM Settings'] = 'Configurações PHP-FPM'; $wb['Additional PHP Versions'] = 'Versões adicionais do php'; -$wb['Form to edit additional PHP versions'] = 'Formulário de edição de versões adicionais do php'; -$wb['server_php_name_error_empty'] = 'Nome está em branco.'; -$wb['php_fastcgi_binary_txt'] = 'Caminho do binário FastCGI'; -$wb['php_fastcgi_ini_dir_txt'] = 'Caminho do diretório do php.ini'; -$wb['php_fpm_init_script_txt'] = 'Caminho do script de inicialização do PHP-FPM'; +$wb['Form to edit additional PHP versions'] = 'Editar verões adicionais do php'; +$wb['server_php_name_error_empty'] = 'O campo nome está em branco.'; +$wb['php_fastcgi_binary_txt'] = 'Caminho do binário do FastCGI'; +$wb['php_fastcgi_ini_dir_txt'] = 'Diretório do php.ini'; +$wb['php_fpm_init_script_txt'] = 'Caminho do script de inicialização do php-fpm'; $wb['php_fpm_ini_dir_txt'] = 'Caminho do diretório do php.ini'; -$wb['php_fpm_pool_dir_txt'] = 'Caminho do diretório de faixas (pool) do PHP-FPM'; -$wb['active_txt'] = 'Active'; +$wb['php_fpm_pool_dir_txt'] = 'Caminho do diretório pool do php-fpm'; +$wb['active_txt'] = 'Ativo'; ?> diff --git a/interface/web/admin/lib/lang/br_server_php_list.lng b/interface/web/admin/lib/lang/br_server_php_list.lng index 31a2b13eb8f720c45202644a908305a77517b6f6..ce558e9054956dbf45100e6b2265cf9262cd087e 100644 --- a/interface/web/admin/lib/lang/br_server_php_list.lng +++ b/interface/web/admin/lib/lang/br_server_php_list.lng @@ -3,5 +3,7 @@ $wb['list_head_txt'] = 'Versões adicionais do php'; $wb['server_id_txt'] = 'Servidor'; $wb['add_new_record_txt'] = 'Adicionar nova versão do php'; $wb['client_id_txt'] = 'Cliente'; -$wb['name_txt'] = 'Nome da versão do php'; +$wb['name_txt'] = 'Nome da versão'; +$wb['active_txt'] = 'Ativo'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/br_software_package_list.lng b/interface/web/admin/lib/lang/br_software_package_list.lng index 093f52bca34643b8a7b759701434421f00702150..de62e3d305978b4856ed4e0c1af72feb0f13c1bb 100644 --- a/interface/web/admin/lib/lang/br_software_package_list.lng +++ b/interface/web/admin/lib/lang/br_software_package_list.lng @@ -1,13 +1,13 @@ <?php -$wb['list_head_txt'] = 'Pacotes de software'; +$wb['list_head_txt'] = 'Pacotes de APPs e complementos'; $wb['installed_txt'] = 'Estado'; $wb['package_title_txt'] = 'Pacote'; $wb['package_description_txt'] = 'Descrição'; -$wb['action_txt'] = 'Acão'; +$wb['action_txt'] = 'Ação'; $wb['toolsarea_head_txt'] = 'Pacotes'; $wb['repoupdate_txt'] = 'Atualizar lista de pacotes'; -$wb['package_id_txt'] = 'ID local do app'; -$wb['no_packages_txt'] = 'Nenhum pacote disponÃvel'; +$wb['package_id_txt'] = 'ID local do APP'; +$wb['no_packages_txt'] = 'Nenhum pacote disponÃvel.'; $wb['edit_txt'] = 'Editar'; $wb['delete_txt'] = 'Remover'; ?> diff --git a/interface/web/admin/lib/lang/br_software_repo.lng b/interface/web/admin/lib/lang/br_software_repo.lng index b5358501383cf6f3227f906394f2d44f7fc4fa58..dbc14e203210c50d1a1c0b32069b29aae045b217 100644 --- a/interface/web/admin/lib/lang/br_software_repo.lng +++ b/interface/web/admin/lib/lang/br_software_repo.lng @@ -4,5 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Usuário (opcional)'; $wb['repo_password_txt'] = 'Senha (opcional)'; $wb['active_txt'] = 'Ativo'; -$wb['Software Repository which may contain addons or updates'] = 'Repositório de softwares podem conter complementos ou atualizações'; +$wb['Software Repository which may contain addons or updates'] = 'Repositório de software pode conter complementos ou atualizações'; ?> diff --git a/interface/web/admin/lib/lang/br_software_update_list.lng b/interface/web/admin/lib/lang/br_software_update_list.lng index 0592ca7f2622d15fd38b86821f8429e4fd715f29..0dff3a245c45d3cc985a0583f9da49dafd6545a2 100644 --- a/interface/web/admin/lib/lang/br_software_update_list.lng +++ b/interface/web/admin/lib/lang/br_software_update_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Atualizações de programas'; -$wb['server_select_txt'] = 'Selecione o servidor'; -$wb['installed_txt'] = 'Ações'; +$wb['list_head_txt'] = 'Atualizações de Software'; +$wb['server_select_txt'] = 'Selecionar o servidor'; +$wb['installed_txt'] = 'Ação'; $wb['update_title_txt'] = 'Atualizar'; $wb['version_txt'] = 'Versão'; $wb['action_txt'] = 'Ação'; -$wb['no_updates_txt'] = 'Nenhuma atualização disponÃvel'; +$wb['no_updates_txt'] = 'Nenhuma atualização disponÃvel.'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 8b5b6d01648fc4aa82f28b6ca7854f933a0a26b8..eccac5d178b3e142e60226a0c12d1d580bb7d87e 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -1,58 +1,61 @@ <?php -$wb['system_config_desc_txt'] = ''; +$wb['system_config_title'] = 'System Config'; +$wb['system_config_desc_txt'] = 'Configurações do Sistema'; +$wb['smtp_missing_admin_mail_txt'] = 'Por favor, insira um nome e e-mail do administrador se você usar smtp para envio dos e-mails do sistema.'; +$wb['dashboard_atom_url_admin_txt'] = 'URL do Dashboard atom (admin)'; +$wb['dashboard_atom_url_reseller_txt'] = 'URL do Dashboard atom (revendas)'; +$wb['dashboard_atom_url_client_txt'] = 'URL do Dashboard atom (clientes)'; $wb['warning'] = 'Edite estes valores com cuidado! Não remova os prefixos em um sistema com mais de um cliente!'; -$wb['dbname_prefix_txt'] = 'Prefixo do banco de dados'; -$wb['dbuser_prefix_txt'] = 'Prefixo do usuário do banco de dados'; -$wb['shelluser_prefix_txt'] = 'Prefixo do usuário shell'; -$wb['ftpuser_prefix_txt'] = 'Prefixo do usuário ftp'; -$wb['dbname_prefix_error_regex'] = 'Caractere não permitido para o prefixo do banco de dados!'; -$wb['dbuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do usuário do banco de dados!'; -$wb['ftpuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do usuário ftp!'; -$wb['shelluser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do usuário shell!'; +$wb['tab_change_discard_txt'] = 'Descartar alterações nesta aba'; +$wb['tab_change_warning_txt'] = 'Alerta de alterações'; +$wb['tab_change_warning_note_txt'] = 'Exibir alertas de alterações nesta aba se qualquer dado for alterado pelo usuário.'; +$wb['dbname_prefix_txt'] = 'Prefixo de banco de dados'; +$wb['dbuser_prefix_txt'] = 'Prefixo de usuário de banco de dados'; +$wb['shelluser_prefix_txt'] = 'Prefixo de usuário do shell'; +$wb['webdavuser_prefix_txt'] = 'Prefixo de usuário webdav'; +$wb['ftpuser_prefix_txt'] = 'Prefixo de usuário ftp'; +$wb['vhost_subdomains_txt'] = 'Adicionar subdomÃnios como um site'; +$wb['vhost_subdomains_note_txt'] = 'Você não pode desabilitar esta configuração enquanto existirem subdomÃnios vhost no sistema!'; +$wb['vhost_aliasdomains_txt'] = 'Adicionar alias de domÃnio como um site'; +$wb['vhost_aliasdomains_note_txt'] = 'Você não pode desabilitar esta configuração enquanto existirem alias de domÃnios vhost no sistema!'; +$wb['dbname_prefix_error_regex'] = 'Caractere não permitido para o prefixo de banco de dados.'; +$wb['dbuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo de usuário de banco de dados.'; +$wb['ftpuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo de usuário ftp.'; +$wb['shelluser_prefix_error_regex'] = 'Caractere não permitido para o prefixo de usuário do shell.'; +$wb['webdavuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo de usuários webdav.'; $wb['dblist_phpmyadmin_link_txt'] = 'Link para o phpmyadmin'; +$wb['enable_custom_login_txt'] = 'Permitir nome de usuário personalizado'; $wb['mailboxlist_webmail_link_txt'] = 'Link para o webmail'; +$wb['mailbox_show_autoresponder_tab_txt'] = 'Exibir aba de auto-resposta nos detalhes da conta de e-mail'; +$wb['mailbox_show_mail_filter_tab_txt'] = 'Exibir aba de filtro de e-mails nos detalhes da conta de e-mail'; +$wb['mailbox_show_custom_rules_tab_txt'] = 'Exibir aba de filtros personalizados de e-mail nos detalhes da conta de e-mail'; $wb['webmail_url_txt'] = 'URL do webmail'; -$wb['phpmyadmin_url_txt'] = 'URL do phpmyadmin'; -$wb['use_domain_module_txt'] = 'Use o módulo domÃnios para adicionar novos domÃnios'; -$wb['use_domain_module_hint'] = 'Se você usar este módulo, os clientes podem selecionar apenas um dos domÃnios que o administrador cria para eles. Eles não podem editar o campo domÃnio livremente. Você deve sair e acessar novamente depois de alterar este valor para que as mudanças sejam visÃveis.'; -$wb['new_domain_txt'] = 'HTML para criar um novo domÃnio'; -$wb['dashboard_atom_url_admin_txt'] = 'URL do Dashboard atom (admin)'; -$wb['dashboard_atom_url_reseller_txt'] = 'URL do Dashboard atom (revendas)'; -$wb['dashboard_atom_url_client_txt'] = 'URL do Dashboard atom (clientes)'; -$wb['webdavuser_prefix_txt'] = 'Prefixo do usuário webdav'; -$wb['webdavuser_prefix_error_regex'] = 'Caractere não permitido no prefixo do usuário webdav.'; -$wb['webftp_url_txt'] = 'URL do webFTP'; -$wb['mailmailinglist_link_txt'] = 'Link para lista de e-mails'; -$wb['mailmailinglist_url_txt'] = 'URL para lista de e-mails'; -$wb['admin_mail_txt'] = 'e-Mail do administrador'; +$wb['mailmailinglist_link_txt'] = 'Link para lista de e-mails na lista de e-mails'; +$wb['mailmailinglist_url_txt'] = 'URL da lista de e-mails'; +$wb['phpmyadmin_url_txt'] = 'URL do phpMyAdmin'; +$wb['use_domain_module_txt'] = 'Use o módulo de cliente para adicionar novos domÃnios'; +$wb['use_domain_module_hint'] = 'Se você usar este módulo, os clientes podem selecionar apenas um dos domÃnios que o administrador adicionar para eles. Eles não podem editar o campo domÃnio livremente. Você deve sair e acessar novamente após alterar este valor para que as mudanças sejam aplicadas.'; +$wb['new_domain_txt'] = 'Código HTML para criar um novo domÃnio'; +$wb['webftp_url_txt'] = 'URL do FTPweb'; +$wb['admin_mail_txt'] = 'Administrador(es) de e-mails'; +$wb['monitor_key_txt'] = 'Palavras reservadas a monitorar'; $wb['admin_name_txt'] = 'Nome do administrador'; -$wb['enable_custom_login_txt'] = 'Permite nome de acesso personalizado'; -$wb['monitor_key_txt'] = 'Monitorar palavra reservada'; $wb['maintenance_mode_txt'] = 'Modo manutenção'; -$wb['smtp_enabled_txt'] = 'Usar SMPT para enviar e-mails do sistema'; -$wb['smtp_host_txt'] = 'Servidor SMTP'; -$wb['smtp_port_txt'] = 'Porta'; -$wb['smtp_user_txt'] = 'Usuário'; -$wb['smtp_pass_txt'] = 'Senha'; -$wb['smtp_crypt_txt'] = 'Usar criptografia SSL/TLS para conexões SMTP'; -$wb['smtp_missing_admin_mail_txt'] = 'Por favor, insira um nome e e-mail do administrador se você usar smtp para envio dos e-mails do sistema.'; -$wb['tab_change_discard_txt'] = 'Descartar modificações nesta aba'; -$wb['tab_change_warning_txt'] = 'Alerta de modificações'; -$wb['tab_change_warning_note_txt'] = 'Exibir alertas de modificações nesta aba se qualquer dados for modificado pelo usuário.'; -$wb['vhost_subdomains_txt'] = 'Adicionar subdomÃnios vhost como site'; -$wb['vhost_subdomains_note_txt'] = 'Você não pode desabilitar esta configuração enquanto existirem subdomÃnios vhost no sistema!'; -$wb['vhost_aliasdomains_txt'] = 'Adicionar apelidos de domÃnios vhost como site'; -$wb['vhost_aliasdomains_note_txt'] = 'Você nao pode desabilitar esta configuração enquanto existirem apelidos de domÃnio vhost no sistema!'; -$wb['phpmyadmin_url_error_regex'] = 'URL do phpmyadmin inválida.'; -$wb['use_combobox_txt'] = 'Usar jQuery UI Combobox'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; +$wb['smtp_enabled_txt'] = 'Usar SMTP para enviar e-mails do sistema'; +$wb['smtp_host_txt'] = 'Host SMTP'; +$wb['smtp_port_txt'] = 'Porta SMTP'; +$wb['smtp_user_txt'] = 'Usuário SMTP'; +$wb['smtp_pass_txt'] = 'Senha do SMTP'; +$wb['smtp_crypt_txt'] = 'Usar conexão criptografada SSL/TLS para o SMTP'; +$wb['phpmyadmin_url_error_regex'] = 'URL do phpmyadmin é inválida.'; +$wb['use_combobox_txt'] = 'Usar combobox jQuery UI'; $wb['use_loadindicator_txt'] = 'Usar indicador de carga'; $wb['f5_to_reload_js_txt'] = 'Se você modificar esta configuração, talvez será necessário pressionar F5 no seu navegador para recarregar as bibliotecas do JavaScript ou esvaziar o cache.'; -$wb['client_username_web_check_disabled_txt'] = 'Desabilitar verificação da palavra reservada \'web\' para nome do usuário (não recomendado!).'; -$wb['backups_include_into_web_quota_txt'] = 'Incluir arquivos de backup na cota para site.'; -$wb['mailbox_show_autoresponder_tab_txt'] = 'Exir aba autoresposta nos detalhes da conta de e-mail'; -$wb['mailbox_show_mail_filter_tab_txt'] = 'Exibir aba filtros de e-mail nos detalhes da conta de e-mail'; -$wb['mailbox_show_custom_rules_tab_txt'] = 'Exibir aba filtros de e-mail personalizados nos detalhes da conta de e-mail'; -$wb['webmail_url_error_regex'] = 'URL do webmail inválida'; +$wb['client_username_web_check_disabled_txt'] = 'Desabilitar verificação da palavra reservada "web" para o nome de usuário (não recomendado!).'; +$wb['backups_include_into_web_quota_txt'] = 'Incluir arquivos de backup na cota do site.'; +$wb['webmail_url_error_regex'] = 'URL do webmail é inválida.'; $wb['phpmyadmin_url_note_txt'] = 'Ãrea reservada:'; $wb['webmail_url_note_txt'] = 'Ãrea reservada:'; $wb['available_dashlets_note_txt'] = 'Dashlets disponÃveis:'; @@ -64,37 +67,31 @@ $wb['client_dashlets_left_txt'] = 'Restrições de dashlets para clientes'; $wb['client_dashlets_right_txt'] = 'Permissões de dashlets para clientes'; $wb['customer_no_template_txt'] = 'No. do gabarito do cliente'; $wb['customer_no_template_error_regex_txt'] = 'O número do gabarito do cliente contém caracteres inválidos.'; -$wb['customer_no_start_txt'] = 'Valor inicial do código do cliente'; -$wb['customer_no_counter_txt'] = 'Contador de código do cliente'; +$wb['customer_no_start_txt'] = 'Valor inicial do código de cliente'; +$wb['customer_no_counter_txt'] = 'Contador do código de cliente'; $wb['session_timeout_txt'] = 'Duração da sessão (minutos)'; -$wb['session_allow_endless_txt'] = 'Habilitar \"Manter-me conectado\"'; +$wb['session_allow_endless_txt'] = 'Habilitar "Manter-me conectado"'; +$wb['No'] = 'Não'; $wb['min_password_length_txt'] = 'Comprimento mÃnimo da senha'; $wb['min_password_strength_txt'] = 'Dificuldade mÃnima da senha'; -$wb['company_name_txt'] = 'Nome da empresa no tÃtulo da página'; -$wb['reseller_can_use_options_txt'] = 'Revendas podem usar o menu sites'; -$wb['custom_login_text_txt'] = 'Texto personalizado para página de acesso'; -$wb['custom_login_link_txt'] = 'Link personalizado para página de acesso'; -$wb['login_link_error_regex'] = 'Link personalizado para acesso inválido'; $wb['default_mailserver_txt'] = 'Servidor de e-mails padrão'; $wb['default_webserver_txt'] = 'Servidor web padrão'; $wb['default_dnsserver_txt'] = 'Servidor dns padrão'; $wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA<E2><80><99>s do not recognize any other flag values as described in RFC 6844 -$wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; $wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; -$wb['No'] = 'Não'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 -$wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['company_name_txt'] = 'Nome da empresa para tÃtulo da página'; +$wb['reseller_can_use_options_txt'] = 'Revendas podem utilizar o menu sites'; +$wb['custom_login_text_txt'] = 'Texto personalizado para a página de acesso'; +$wb['custom_login_link_txt'] = 'Link personalizado para página de acesso'; +$wb['login_link_error_regex'] = 'Link personalizado para acesso inválido'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; +$wb['ca_name_txt'] = 'Nome'; +$wb['ca_issue_txt'] = 'Questão'; +$wb['ca_wildcard_txt'] = 'Usar curingas'; +$wb['ca_iodef_txt'] = 'Definições de E/S'; +$wb['active_txt'] = 'Ativo'; +$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_cancel_txt'] = 'Cancelar'; +$wb['web_php_options_txt'] = 'Manipulador do php (Somente apache)'; ?> diff --git a/interface/web/admin/lib/lang/br_tpl_default_admin.lng b/interface/web/admin/lib/lang/br_tpl_default_admin.lng index 0a53752e4bb7899cb8c6ec07fd1e8b3a1a5c23da..dbad6b17668dcae270bd642a01f06dd5e91bf030 100644 --- a/interface/web/admin/lib/lang/br_tpl_default_admin.lng +++ b/interface/web/admin/lib/lang/br_tpl_default_admin.lng @@ -1,18 +1,18 @@ <?php -$wb['tpl_default_admin_head_txt'] = 'Configurações de tema global padrão'; -$wb['tpl_default_admin_desc_txt'] = ''; +$wb['tpl_default_admin_head_txt'] = 'Configurações globais do tema padrão'; +$wb['tpl_default_admin_desc_txt'] = 'Descrição'; $wb['server_id_txt'] = 'Servidor'; $wb['client_id_txt'] = 'Cliente'; -$wb['name_txt'] = 'Nome do PHP'; +$wb['name_txt'] = 'Nome da versão do php'; $wb['Name'] = 'Nome'; -$wb['FastCGI Settings'] = 'Configurações do FastCGI'; -$wb['PHP-FPM Settings'] = 'Configurações do PHP-FPM'; +$wb['FastCGI Settings'] = 'Configurações FastCGI'; +$wb['PHP-FPM Settings'] = 'Configurações PHP-FPM'; $wb['Additional PHP Versions'] = 'Versões adicionais do php'; -$wb['Form to edit additional PHP versions'] = 'Formulário de edição de versões adicionais do php'; -$wb['server_php_name_error_empty'] = 'Nome está em branco.'; -$wb['php_fastcgi_binary_txt'] = 'Caminho do binário FastCGI'; +$wb['Form to edit additional PHP versions'] = 'Editar versões adicionais do php'; +$wb['server_php_name_error_empty'] = 'O nome está em branco.'; +$wb['php_fastcgi_binary_txt'] = 'Caminho do binário do FastCGI'; $wb['php_fastcgi_ini_dir_txt'] = 'Caminho do diretório do php.ini'; -$wb['php_fpm_init_script_txt'] = 'Caminho do script de inicialização PHP-FPM'; -$wb['php_fpm_ini_dir_txt'] = 'Caminho do diretório php.ini'; -$wb['php_fpm_pool_dir_txt'] = 'Caminho do diretório de faixas (pool) do PHP-FPM'; +$wb['php_fpm_init_script_txt'] = 'Caminho do script de inicialização php-fpm'; +$wb['php_fpm_ini_dir_txt'] = 'Caminho do diretório do php.ini'; +$wb['php_fpm_pool_dir_txt'] = 'Caminho do diretório de faixas php-fpm'; ?> diff --git a/interface/web/admin/lib/lang/br_users.lng b/interface/web/admin/lib/lang/br_users.lng index d16bcf1cb181b47daf13787d167c19727e7600e1..18e6085b8322dc49e8eeecb6a571c7b88bd3e878 100644 --- a/interface/web/admin/lib/lang/br_users.lng +++ b/interface/web/admin/lib/lang/br_users.lng @@ -1,36 +1,37 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Usuário'; -$wb['username_err'] = 'O nome do usuário é muito longo ou contém caracteres inválidos!'; -$wb['username_empty'] = 'Por favor, entre com o nome do usuário.'; -$wb['username_unique'] = 'Já existe um usuário com este nome!'; +$wb['username_err'] = 'O nome do usuário é muito longo ou contém caracteres inválidos.'; +$wb['username_empty'] = 'O nome do usuário está em branco.'; +$wb['username_unique'] = 'Já existe um usuário com este nome.'; $wb['passwort_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['modules_txt'] = 'Módulos'; -$wb['startmodule_txt'] = 'Módulo Inicial'; +$wb['modules_txt'] = 'Módulo'; +$wb['startmodule_txt'] = 'Módulo inicial'; $wb['app_theme_txt'] = 'Tema'; $wb['typ_txt'] = 'Tipo'; $wb['active_txt'] = 'Ativo'; $wb['language_txt'] = 'Idioma'; $wb['name_txt'] = 'Nome'; -$wb['vorname_txt'] = 'Sobrenome'; +$wb['vorname_txt'] = 'Segundo nome'; $wb['unternehmen_txt'] = 'Empresa'; $wb['strasse_txt'] = 'Endereço'; $wb['ort_txt'] = 'Cidade'; $wb['plz_txt'] = 'CEP'; $wb['land_txt'] = 'PaÃs'; -$wb['email_txt'] = 'e-mail'; -$wb['url_txt'] = 'Site'; +$wb['email_txt'] = 'e-Mail'; +$wb['url_txt'] = 'URL'; $wb['telefon_txt'] = 'Telefone'; $wb['fax_txt'] = 'Fax'; $wb['groups_txt'] = 'Grupos'; -$wb['default_group_txt'] = 'Grupo Padrão'; -$wb['startmodule_err'] = 'O módulo inicial não está contido nos módulos.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['username_error_collision'] = 'O nome do usuário não pode conter as palavras reservadas -web- ou -web- seguidas por um número.'; -$wb['client_not_admin_err'] = 'Um usuário definido como cliente não pode ser configurado com o tipo: admin (administrador).'; -$wb['lost_password_function_txt'] = 'Função reconfigurar senha perdida disponÃvel'; -$wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; +$wb['default_group_txt'] = 'Grupo padrão'; +$wb['startmodule_err'] = 'Módulo inicial não está dentro de módulos.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['username_error_collision'] = 'O nome de usuário não pode conter a palavra "web" ou "web" seguida de um número."'; +$wb['client_not_admin_err'] = 'Um usuário que pertence a um cliente não pode ser configurado para: admin.'; +$wb['lost_password_function_txt'] = 'Função de senha esquecida disponÃvel'; +$wb['no_user_insert'] = 'Os usuários do Painel de Controle (ISPC) do tipo -user- são adicionados e atualizados automaticamente quando você adiciona um cliente ou revenda.'; ?> diff --git a/interface/web/admin/lib/lang/br_users_list.lng b/interface/web/admin/lib/lang/br_users_list.lng index 3422f78355cf5763e27d6905f1b5713b1f46e7f7..26910186c5ef5cbc6d521fa151c9f5a70c322057 100644 --- a/interface/web/admin/lib/lang/br_users_list.lng +++ b/interface/web/admin/lib/lang/br_users_list.lng @@ -1,9 +1,9 @@ <?php $wb['list_head_txt'] = 'Usuários'; -$wb['username_txt'] = 'Nome do usuário'; -$wb['client_id_txt'] = 'ID do cliente'; +$wb['username_txt'] = 'Usuário'; +$wb['client_id_txt'] = 'ID do usuário'; $wb['active_txt'] = 'Ativo'; -$wb['add_new_record_txt'] = 'Adicionar novo usuário'; -$wb['warning_txt'] = '<b>AVISO:</b> Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de clientes ou revendas. Modificar ou alterar usuários e grupos nesta aba pode ocasionar perda de dados!'; $wb['groups_txt'] = 'Grupos'; +$wb['add_new_record_txt'] = 'Adicionar novo usuário'; +$wb['warning_txt'] = '<b>ALERTA:</b> Não editar ou alterar qualquer configuração de usuário aqui. Use o módulo de clientes e revendas para isso. Editar ou alterar usuários ou grupos aqui pode causar perda de dados!'; ?> diff --git a/interface/web/admin/lib/lang/ca_directive_snippets.lng b/interface/web/admin/lib/lang/ca_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ca_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ca_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ca_remote_user.lng b/interface/web/admin/lib/lang/ca_remote_user.lng index 2fc633b555d240c15457f3ec2fdd48d9e55a756e..e0b911afe5e3cb61cbdb9b8dd3b8d1d0617fc8f1 100644 --- a/interface/web/admin/lib/lang/ca_remote_user.lng +++ b/interface/web/admin/lib/lang/ca_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Username'; $wb['password_txt'] = 'Password'; $wb['function_txt'] = 'Functions'; @@ -35,6 +36,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index dc44dd340c007deb7ae3233b2ce248c81ff83129..496df78f77719a6b8f774d4f2ce9e52878ff9585 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -19,6 +22,9 @@ $wb['website_autoalias_txt'] = 'Website auto alias'; $wb['website_autoalias_note_txt'] = 'Placeholders:'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_note_txt'] = 'Leaving this empty will auto-detect the Apache init script'; +$wb['apache_init_script_error_regex'] = 'Invalid Apache init script.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -93,7 +99,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['network_config_warning_txt'] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.'; $wb['CA_path_txt'] = 'CA Path'; $wb['CA_pass_txt'] = 'CA passphrase'; @@ -208,6 +214,7 @@ $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; @@ -265,7 +272,6 @@ $wb['network_filesystem_txt'] = 'Network Filesystem'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_ip.lng b/interface/web/admin/lib/lang/ca_server_ip.lng index f06b6be78ac8fb73e4f641dea73880615fd03df1..8f7738e51f49de67459ebc6f36d0c38aeb14691f 100644 --- a/interface/web/admin/lib/lang/ca_server_ip.lng +++ b/interface/web/admin/lib/lang/ca_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['client_id_txt'] = 'Client'; $wb['ip_type_txt'] = 'Type'; diff --git a/interface/web/admin/lib/lang/ca_server_ip_map.lng b/interface/web/admin/lib/lang/ca_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/ca_server_ip_map.lng +++ b/interface/web/admin/lib/lang/ca_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/ca_server_php_list.lng b/interface/web/admin/lib/lang/ca_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/ca_server_php_list.lng +++ b/interface/web/admin/lib/lang/ca_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index ff46470f59300e51c7cc7577e34f53c06e734227..17e4fd3db8e2c04e465cfea0e620b03a9f6f2457 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail address if you want to use smtp mail sending.'; $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)'; @@ -40,6 +41,8 @@ $wb['admin_mail_txt'] = 'Administrator\'s e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrator\'s name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ca_users.lng b/interface/web/admin/lib/lang/ca_users.lng index dcbc4f4727145c78a9a6a70b4ac3cca5b3ecc0c7..dd4ef0143de1544544ac635454cd3dc9040bbddf 100644 --- a/interface/web/admin/lib/lang/ca_users.lng +++ b/interface/web/admin/lib/lang/ca_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Username'; $wb['username_err'] = 'The username is too long or contains invalid characters.'; $wb['username_empty'] = 'The username is empty.'; diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng index 1fd316583b0720863e5bd30660e01c702e242b20..26d17f64b366e474648be0e14043b477d9ae9a4e 100644 --- a/interface/web/admin/lib/lang/cz_directive_snippets.lng +++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'PromÄ›nné'; $wb['customer_viewable_txt'] = 'Dostupná volba pro klienta'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/cz_remote_user.lng b/interface/web/admin/lib/lang/cz_remote_user.lng index aeacc442ca975da331d2d6df8d3248a5fb5a0465..4ea38e6aaac856f823ed029dedb153a8965710e0 100644 --- a/interface/web/admin/lib/lang/cz_remote_user.lng +++ b/interface/web/admin/lib/lang/cz_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Uživatelské jméno:'; $wb['password_txt'] = 'Heslo:'; $wb['function_txt'] = 'Funkce:'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'Funkce DNS ALIAS'; $wb['DNS cname functions'] = 'Funkce DNS CNAME'; $wb['DNS hinfo functions'] = 'Funkce DNS HINFO'; $wb['DNS mx functions'] = 'Funkce DNS MX'; +$wb['DNS naptr functions'] = 'Funkce DNS NAPTR'; $wb['DNS ns functions'] = 'Funkce DNS NS'; $wb['DNS ptr functions'] = 'Funkce DNS PTR'; $wb['DNS rp functions'] = 'Funkce DNS RP'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index e219a7b3e48a5d02fcef3bf47fa880844a794f59..fbc1d777c38db51e08644ad60c7aaf92d94f800c 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot adresář'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sekce'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrootované aplikace'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'Website config adresář'; $wb['vhost_conf_dir_txt'] = 'Vhost config adresář'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled adresář'; +$wb['apache_init_script_txt'] = 'InicializaÄnà skript Apache'; +$wb['apache_init_script_note_txt'] = 'Ponecháte-li toto prázdné, automaticky detekuje iniciaÄnà skript Apache'; +$wb['apache_init_script_error_regex'] = 'Neplatný iniciaÄnà skript Apache.'; $wb['getmail_config_dir_txt'] = 'Getmail složka pro konfigurace'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter cesta'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter skript'; @@ -143,7 +149,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM adresář pro socket je prázdn $wb['try_rescue_txt'] = 'Povolit monitorovánà služeb a restartovat pÅ™i selhánÃ'; $wb['do_not_try_rescue_mysql_txt'] = 'Zakázat MySQL monitorovánÃ'; $wb['do_not_try_rescue_mail_txt'] = 'Zakázat E-mail monitorovánÃ'; -$wb['rescue_description_txt'] = '<b>Informace:</b> Pokud chcete napÅ™. vypnout MySQL službu zatrhnÄ›te polÃÄko \"Zakázat MySQL monitorovánÃ\" zmÄ›na se provede do 2-3 minut.<br>Pokud nepoÄkáte 2-3 minuty, monitorovánà nastartuje službu MySQL automaticky znovu !'; +$wb['rescue_description_txt'] = '<b>Informace:</b> Pokud chcete napÅ™. vypnout MySQL službu zatrhnÄ›te polÃÄko \\"Zakázat MySQL monitorovánÃ\\" zmÄ›na se provede do 2-3 minut.<br>Pokud nepoÄkáte 2-3 minuty, monitorovánà nastartuje službu MySQL automaticky znovu !'; $wb['enable_sni_txt'] = 'Aktivovat SNI (Server Name Indication)'; $wb['do_not_try_rescue_httpd_txt'] = 'Zakázat HTTPD monitorovánÃ'; $wb['set_folder_permissions_on_update_txt'] = 'Nastavenà oprávnÄ›nà složky pÅ™i aktualizaci'; @@ -257,12 +263,12 @@ $wb['backup_delete_txt'] = 'Odstranit zálohy pokud byla smazána doména/webov $wb['overquota_db_notify_admin_txt'] = 'Poslat varovánà o pÅ™ekroÄenà nebo vyÄerpánà DB kvót adminovi'; $wb['overquota_db_notify_client_txt'] = 'Poslat varovánà o pÅ™ekroÄenà nebo vyÄerpánà DB kvót klientovi'; $wb['php_handler_txt'] = 'Výchozà PHP obslužná rutina'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Vypnuto'; $wb['php_ini_check_minutes_txt'] = 'ProvádÄ›t kontrolu zmÄ›ny obsahu souboru php.ini každých X minut'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'PoužÃt IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_ip.lng b/interface/web/admin/lib/lang/cz_server_ip.lng index 43a382a64609539c266810b73f30a2ce4a3c6878..3698df5c7479189f9193529b844b4efce2330871 100644 --- a/interface/web/admin/lib/lang/cz_server_ip.lng +++ b/interface/web/admin/lib/lang/cz_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP adresa'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/cz_server_ip_map.lng b/interface/web/admin/lib/lang/cz_server_ip_map.lng index 683451d1d8fcb8d77a215ebcee5c95029b824cb0..57c5ba010803e1b3d759ba34bc29fa9b239cf4cf 100644 --- a/interface/web/admin/lib/lang/cz_server_ip_map.lng +++ b/interface/web/admin/lib/lang/cz_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Zdrojová IP adresa'; $wb['destination_txt'] = 'CÃlová IP adresa'; diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng index 615431c3559ed694eda6fb9aff9d2bb5845943cc..e3268703409b81751d095a13e1f8d8da655d2030 100644 --- a/interface/web/admin/lib/lang/cz_server_php.lng +++ b/interface/web/admin/lib/lang/cz_server_php.lng @@ -13,5 +13,5 @@ $wb['php_fastcgi_ini_dir_txt'] = 'Cesta k php.ini adresáři'; $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script'; $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři'; $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři'; -$wb['active_txt'] = 'Active'; +$wb['active_txt'] = 'AktivnÃ'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_php_list.lng b/interface/web/admin/lib/lang/cz_server_php_list.lng index 655f9a92b27fabc2b9ce22fa5828767446b7c710..70bb2af8aadd810b7bd4602762448116cc411951 100644 --- a/interface/web/admin/lib/lang/cz_server_php_list.lng +++ b/interface/web/admin/lib/lang/cz_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'PÅ™idat verzi PHP'; $wb['client_id_txt'] = 'Klient'; $wb['name_txt'] = 'Verze PHP'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 4f0468833f428ea2cb4691cd193f966444300e7f..fb9f4cf843a9eb64ac62585d8c0de38103df30ac 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Upravujte tyto údaje opatrne! Neodstraňujte prefixy na systémech s vÃce, než jednÃm klientem.'; $wb['dbname_prefix_txt'] = 'Prefix názvu databáze'; @@ -29,6 +30,8 @@ $wb['mailmailinglist_link_txt'] = 'Ikonový odkaz na aplikaci E-mailových konfe $wb['mailmailinglist_url_txt'] = 'E-mailové konference URL'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['maintenance_mode_txt'] = 'Režim údržby'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'PoužÃt (zvolit) SMTP server pro zasÃlánà systémových mailů'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -77,16 +80,19 @@ $wb['default_dnsserver_txt'] = 'Výchozà DNS server'; $wb['default_slave_dnsserver_txt'] = 'Výchozà sekundárnà DNS server'; $wb['default_dbserver_txt'] = 'Výchozà databázový server'; $wb['company_name_txt'] = 'Název spoleÄnosti v panelu (listu) webového prohlÞeÄe'; -$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites'; +$wb['reseller_can_use_options_txt'] = 'Distributor (prodejce) může použÃt kartu možnostà pro weby.'; $wb['custom_login_text_txt'] = 'Vlastnà text na pÅ™ihlaÅ¡ovacà stránce'; $wb['custom_login_link_txt'] = 'Vlastnà odkaz (URL) na pÅ™ihlaÅ¡ovacà stránce (vlastnà text)'; $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastnà odkaz na pÅ™ihlaÅ¡ovacà stránce'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; +$wb['ca_name_txt'] = 'Název vydavatele'; +$wb['ca_issue_txt'] = 'Doména vydavatele'; +$wb['ca_wildcard_txt'] = 'PoužÃt Wildcard (*)'; +$wb['ca_critical_txt'] = 'PÅ™Ãsná kontrola'; $wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['btn_save_txt'] = 'Uložit'; +$wb['btn_cancel_txt'] = 'ZruÅ¡it'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/cz_users.lng b/interface/web/admin/lib/lang/cz_users.lng index b517d7329096cb130e610db0e968d13e0ce4cefc..9aa92402f07436b01f6339052f7f1d2571efa02d 100644 --- a/interface/web/admin/lib/lang/cz_users.lng +++ b/interface/web/admin/lib/lang/cz_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Uživatelské jméno'; $wb['username_err'] = 'Uživatelské jméno je pÅ™ÃliÅ¡ dlouhé nebo obsahuje neplatné znaky.'; $wb['username_empty'] = 'Uživatelské jméno je prázdné.'; diff --git a/interface/web/admin/lib/lang/de_directive_snippets.lng b/interface/web/admin/lib/lang/de_directive_snippets.lng index 9e369f4b514708b62098bd0f4796b338c0b24df6..dbe3aaf8bda98214340064fb398fc6ec540120eb 100644 --- a/interface/web/admin/lib/lang/de_directive_snippets.lng +++ b/interface/web/admin/lib/lang/de_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Es existiert schon ein Direktiven $wb['variables_txt'] = 'Variablen'; $wb['customer_viewable_txt'] = 'Sichtbar für Kunden'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/de_remote_user.lng b/interface/web/admin/lib/lang/de_remote_user.lng index 164a0fb81a4597f506a04a6484f29aefa66bbeab..a1ffd4aa3db4edea698cede7f78466cbb600bb86 100644 --- a/interface/web/admin/lib/lang/de_remote_user.lng +++ b/interface/web/admin/lib/lang/de_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Benutzername'; $wb['password_txt'] = 'Passwort'; $wb['function_txt'] = 'Funktionen'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS Alias Funktionen'; $wb['DNS cname functions'] = 'DNS cname Funktionen'; $wb['DNS hinfo functions'] = 'DNS hinfo Funktionen'; $wb['DNS mx functions'] = 'DNS mx Funktionen'; +$wb['DNS naptr functions'] = 'DNS NAPTR Funktionen'; $wb['DNS ns functions'] = 'DNS ns Funktionen'; $wb['DNS ptr functions'] = 'DNS ptr Funktionen'; $wb['DNS rp functions'] = 'DNS rp Funktionen'; diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 73c6609a1ad8d0423dbfcd7d0456b890d636527f..1646360a7ad59cca871ffb39a87105b7a81ac0c5 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit Chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit Chroot Anwendungsbereiche'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit Chrooted Anwendungen'; @@ -8,6 +11,9 @@ $wb['website_symlinks_txt'] = 'Webseiten Symlinks'; $wb['website_symlinks_rel_txt'] = 'Erstelle relative Symlinks'; $wb['vhost_conf_dir_txt'] = 'vHost Konfigurationsverzeichnis'; $wb['vhost_conf_enabled_dir_txt'] = 'vHost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache-Init-Skript'; +$wb['apache_init_script_note_txt'] = 'Wenn Sie dieses Feld leer lassen, wird das Apache-Init-Skript automatisch erkannt'; +$wb['apache_init_script_error_regex'] = 'Ungültiges Apache-Init-Skript.'; $wb['getmail_config_dir_txt'] = 'Getmail Konfigurationsverzeichnis'; $wb['fastcgi_starter_path_txt'] = 'FastCGI Starter Pfad'; $wb['fastcgi_starter_script_txt'] = 'FastCGI Starter Script'; @@ -267,8 +273,8 @@ $wb['php_ini_check_minutes_txt'] = 'Prüfe php.ini alle X Minuten auf Änderunge $wb['php_ini_check_minutes_error_empty'] = 'Bitte geben Sie einen Wert an, wie oft die php.ini auf Änderungen geprüft werden soll.'; $wb['php_ini_check_minutes_info_txt'] = '0 = keine Prüfung'; $wb['php_handler_txt'] = 'Standard-PHP-Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['enable_spdy_txt'] = 'Stellt SPDY/HTTP2 zur Verfügung'; $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN'; $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled'; $wb['disabled_txt'] = 'Disabled'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Beschreibung Standard PHP'; $wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.'; $wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus'; +$wb['content_filter_txt'] = 'Content-Filter'; +$wb['rspamd_url_txt'] = 'Rspamd-URL'; +$wb['rspamd_user_txt'] = 'Rspamd-Benutzer'; +$wb['rspamd_password_txt'] = 'Rspamd-Passwort'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/de_server_ip.lng b/interface/web/admin/lib/lang/de_server_ip.lng index 5757b165cbf47391c513ed10567d3a58208bcfa6..88f23ebc15e3efadf29fd2f8cf23c2883212ffab 100644 --- a/interface/web/admin/lib/lang/de_server_ip.lng +++ b/interface/web/admin/lib/lang/de_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP Adresse'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/de_server_ip_map.lng b/interface/web/admin/lib/lang/de_server_ip_map.lng index 4fdb51be1abaab0076396e1a6193246112809ec3..96863c72617ce92ef462324f8ec899a4bcbdd396 100644 --- a/interface/web/admin/lib/lang/de_server_ip_map.lng +++ b/interface/web/admin/lib/lang/de_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite auf Server'; $wb['source_txt'] = 'eigentliche IP'; $wb['destination_txt'] = 'neue IP'; diff --git a/interface/web/admin/lib/lang/de_server_php.lng b/interface/web/admin/lib/lang/de_server_php.lng index 67dad7064ae56db3e87a1e8e2885dcaee572ffe2..f43e79b4af19076cf177201298c3b6988e959b48 100644 --- a/interface/web/admin/lib/lang/de_server_php.lng +++ b/interface/web/admin/lib/lang/de_server_php.lng @@ -14,4 +14,6 @@ $wb['php_fpm_init_script_txt'] = 'Pfad zum PHP-FPM Init Script'; $wb['php_fpm_ini_dir_txt'] = 'Pfad zum php.ini Verzeichnis'; $wb['php_fpm_pool_dir_txt'] = 'Pfad zum PHP-FPM Pool Verzeichnis'; $wb['active_txt'] = 'Aktiv'; +$wb['php_in_use_error'] = 'Diese PHP-Version wird noch benutzt.'; +$wb['php_name_in_use_error'] = 'Der Name kann nicht geändert werden.'; ?> diff --git a/interface/web/admin/lib/lang/de_server_php_list.lng b/interface/web/admin/lib/lang/de_server_php_list.lng index fe9a72ea150a4fc513dfea3f1ddf6c1ad1933f9b..f9da54d84c90b58a7b97bb8f9bd6439be9b8f933 100644 --- a/interface/web/admin/lib/lang/de_server_php_list.lng +++ b/interface/web/admin/lib/lang/de_server_php_list.lng @@ -5,4 +5,5 @@ $wb['add_new_record_txt'] = 'Neue PHP Version hinzufügen'; $wb['client_id_txt'] = 'Kunde'; $wb['name_txt'] = 'PHP Name'; $wb['active_txt'] = 'Aktiv'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 0771322ef951a228046a932c1bdaa45875e34dfc..7e88eccd00ea2e777818a2355a6643bc52202958 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = 'Systemkonfiguration'; $wb['smtp_missing_admin_mail_txt'] = 'Bitte geben Sie die Administrator E-Mail und den Namen ein, wenn Sie SMTP Versand nutzen wollen.'; $wb['warning'] = 'Bearbeiten Sie diese Werte sorgfältig! Entfernen Sie die Präfixe nicht auf Systemen mit mehr als einem Kunden.'; @@ -37,6 +38,8 @@ $wb['admin_mail_txt'] = 'Administrator E-Mail'; $wb['monitor_key_txt'] = 'ISPConfig Monitor App Passwort'; $wb['admin_name_txt'] = 'Name des Administrators'; $wb['maintenance_mode_txt'] = 'Wartungsmodus'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'SMTP zum System E-Mailversand nutzen'; $wb['smtp_host_txt'] = 'SMTP Server'; $wb['smtp_port_txt'] = 'SMTP Port'; @@ -72,6 +75,10 @@ $wb['session_allow_endless_txt'] = '"Eingeloggt bleiben" aktivieren'; $wb['No'] = 'Nein'; $wb['min_password_length_txt'] = 'Minimale Passwortlänge'; $wb['min_password_strength_txt'] = 'Minimale Passwortstärke'; +$wb['ssh_authentication_txt'] = 'Erlaubte SSH Authentifizierung'; +$wb['ssh_authentication_password_key'] = 'Passwort & Schlüssel'; +$wb['ssh_authentication_password'] = 'Passwort'; +$wb['ssh_authentication_key'] = 'Schlüssel'; $wb['company_name_txt'] = 'Firmenname fuer den Seitentitel'; $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; @@ -81,12 +88,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Wildcard verwenden'; -$wb['ca_critical_txt'] = 'Strikte Überprüfung'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strikte Überprüfung'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktiv'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; +$wb['web_php_options_txt'] = 'PHP Handler (Nur Apache)'; ?> diff --git a/interface/web/admin/lib/lang/de_users.lng b/interface/web/admin/lib/lang/de_users.lng index 255e7bca0bfa5b7161d651766dd3d2247198c327..9bc13061c0e110fcc3f2aab12bf59ccd49032819 100644 --- a/interface/web/admin/lib/lang/de_users.lng +++ b/interface/web/admin/lib/lang/de_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Benutzername'; $wb['username_err'] = 'Der Benutzername enthält ungültige Zeichen.'; $wb['passwort_txt'] = 'Passwort'; diff --git a/interface/web/admin/lib/lang/dk_directive_snippets.lng b/interface/web/admin/lib/lang/dk_directive_snippets.lng index 7b43dcd40b8059b344ca2155647296bab1fe13dd..1b158e5c8053714fbee35186f633e46fbc6eb532 100644 --- a/interface/web/admin/lib/lang/dk_directive_snippets.lng +++ b/interface/web/admin/lib/lang/dk_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Der er allerede et direktiv uddra $wb['variables_txt'] = 'Variabler'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/dk_remote_user.lng b/interface/web/admin/lib/lang/dk_remote_user.lng index 80f61c8929202a85fbd89c972fb8bd111c840653..aae5089aa137a6440b6170e9d489a22cce816a89 100644 --- a/interface/web/admin/lib/lang/dk_remote_user.lng +++ b/interface/web/admin/lib/lang/dk_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Brugernavn:'; $wb['password_txt'] = 'Adgangskode:'; $wb['function_txt'] = 'Funktioner:'; @@ -35,6 +36,7 @@ $wb['DNS alias functions'] = 'DNS alias funktioner'; $wb['DNS cname functions'] = 'DNS cname funktioner'; $wb['DNS hinfo functions'] = 'DNS hinfo funktioner'; $wb['DNS mx functions'] = 'DNS mx funktioner'; +$wb['DNS naptr functions'] = 'DNS naptr funktioner'; $wb['DNS ns functions'] = 'DNS ns funktioner'; $wb['DNS ptr functions'] = 'DNS ptr funktioner'; $wb['DNS rp functions'] = 'DNS rp funktioner'; diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 47daacd86a10b7902920792a8844894bf6282ec7..476e43216105bb5ed402fb7c81d0a689c952f33d 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Administrer Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -19,6 +22,9 @@ $wb['website_autoalias_txt'] = 'Webside auto alias'; $wb['website_autoalias_note_txt'] = 'Pladsholdere:'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_note_txt'] = 'Forlader denne tomme vilje automatisk registrering Apache init-script'; +$wb['apache_init_script_error_regex'] = 'Ugyldigt Apache init-script.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -260,13 +266,13 @@ $wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_ip.lng b/interface/web/admin/lib/lang/dk_server_ip.lng index ba1586644d4312f738d81488807c668121dd5d32..a6ba3ba045b338cd2953eea372988bcd87c8a84e 100644 --- a/interface/web/admin/lib/lang/dk_server_ip.lng +++ b/interface/web/admin/lib/lang/dk_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['client_id_txt'] = 'Kunde'; $wb['ip_type_txt'] = 'Type'; diff --git a/interface/web/admin/lib/lang/dk_server_ip_map.lng b/interface/web/admin/lib/lang/dk_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/dk_server_ip_map.lng +++ b/interface/web/admin/lib/lang/dk_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/dk_server_php_list.lng b/interface/web/admin/lib/lang/dk_server_php_list.lng index 8dbcdd211f22835327bee276da60d7cbfeb55a0c..65869ce2ed3dd1f042a4d9e5e27427fbdeed1c4a 100644 --- a/interface/web/admin/lib/lang/dk_server_php_list.lng +++ b/interface/web/admin/lib/lang/dk_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Tilføj ny PHP version'; $wb['client_id_txt'] = 'Kunde'; $wb['name_txt'] = 'PHP Navn'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 5e96639d2c85f05ce1f9764093f859f1759af897..2be15ca1a087bd17476a9b4d93e11426aded1dad 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['smtp_missing_admin_mail_txt'] = 'Indtast venligst admin navn og admin mail adresse, hvis du vil bruge smtp mail afsendelse.'; $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)'; @@ -35,6 +36,8 @@ $wb['admin_mail_txt'] = 'Administratorer e-mail'; $wb['monitor_key_txt'] = 'Monitor nøgleord'; $wb['admin_name_txt'] = 'Administratorer navn'; $wb['maintenance_mode_txt'] = 'Vedligeholdelsestilstand'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Brug SMTP for at sende system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/dk_users.lng b/interface/web/admin/lib/lang/dk_users.lng index 2e86ab4ca9b497646bc4a2759eca5c379940d9c4..f5811d771d1ef1f3265284a8b4c3f1471e6028ed 100644 --- a/interface/web/admin/lib/lang/dk_users.lng +++ b/interface/web/admin/lib/lang/dk_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Brugernavn'; $wb['username_err'] = 'Brugernavnet er for langt eller indeholder ugyldige karaktere.'; $wb['username_empty'] = 'Brugernavnet er tomt.'; diff --git a/interface/web/admin/lib/lang/el_directive_snippets.lng b/interface/web/admin/lib/lang/el_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/el_directive_snippets.lng +++ b/interface/web/admin/lib/lang/el_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/el_remote_user.lng b/interface/web/admin/lib/lang/el_remote_user.lng index c38f1de2f05ff525cbcc2f89e13327e71078d4e2..65efbd8f961a7e476ecb3d104a5660a40fcec8dc 100644 --- a/interface/web/admin/lib/lang/el_remote_user.lng +++ b/interface/web/admin/lib/lang/el_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Όνομα ΧÏήστη:'; $wb['password_txt'] = 'Συνθηματικό:'; $wb['function_txt'] = 'ΕνÎÏγειες:'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'ΕνÎÏγειες εγγÏαφών alias του D $wb['DNS cname functions'] = 'ΕνÎÏγειες εγγÏαφών cname του DNS'; $wb['DNS hinfo functions'] = 'ΕνÎÏγειες εγγÏαφών hinfo του DNS'; $wb['DNS mx functions'] = 'ΕνÎÏγειες εγγÏαφών mx του DNS'; +$wb['DNS naptr functions'] = 'ΕνÎÏγειες εγγÏαφών naptr του DNS'; $wb['DNS ns functions'] = 'ΕνÎÏγειες εγγÏαφών ns του DNS'; $wb['DNS ptr functions'] = 'ΕνÎÏγειες εγγÏαφών ptr του DNS'; $wb['DNS rp functions'] = 'ΕνÎÏγειες εγγÏαφών rp του DNS'; diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 2755ade7c2238838ef827ca58cee14afd7fce7d0..cf215b939e148c2707c55f7b348bb2d0d1cfaba8 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'ΔημιουÏγία σχετικών symlink $wb['website_basedir_txt'] = 'Βασικός φάκελος Website'; $wb['vhost_conf_dir_txt'] = 'Φάκελος Ïυθμίσεων Vhost'; $wb['vhost_conf_enabled_dir_txt'] = 'Φάκελος Ïυθμίσεων (ενεÏγών) Vhost'; +$wb['apache_init_script_txt'] = 'Apache script init'; +$wb['apache_init_script_note_txt'] = 'Εάν αφήσετε αυτό το κενό, θα ανιχνευθεί αυτόματα το σενάÏιο εισαγωγής Apache'; +$wb['apache_init_script_error_regex'] = 'Μη ÎγκυÏη δÎσμη ενεÏγειών Apache.'; $wb['getmail_config_dir_txt'] = 'Φάκελος Ïυθμίσεων Getmail'; $wb['fastcgi_starter_path_txt'] = 'ΔιαδÏομή εκκίνησης FastCGI'; $wb['fastcgi_starter_script_txt'] = 'Script εκκίνησης FastCGI'; @@ -261,13 +267,13 @@ $wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/el_server_ip.lng b/interface/web/admin/lib/lang/el_server_ip.lng index 212f432793c0ef23131d64fa34939bb3dd6e7681..f00925fc62dbeab86126a67f60ccda7ff59b2aa9 100644 --- a/interface/web/admin/lib/lang/el_server_ip.lng +++ b/interface/web/admin/lib/lang/el_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'ΔιεÏθυνση IP'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/el_server_ip_map.lng b/interface/web/admin/lib/lang/el_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/el_server_ip_map.lng +++ b/interface/web/admin/lib/lang/el_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/el_server_php_list.lng b/interface/web/admin/lib/lang/el_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/el_server_php_list.lng +++ b/interface/web/admin/lib/lang/el_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 0191eb85e7207440db7af224696387e0b8e23020..045e20d02105bbfbe3adbdec37b5d8d87e6c4280 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)'; $wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'e-mail ΔιαχειÏιστών'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Όνομα Administrator'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP θÏÏα'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/el_users.lng b/interface/web/admin/lib/lang/el_users.lng index f0307b95eca8d9ab65a653fc96032eb67b64e0a4..e25fbe17fa8dd24f60768db37283dbcda24a6c77 100644 --- a/interface/web/admin/lib/lang/el_users.lng +++ b/interface/web/admin/lib/lang/el_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Όνομα ΧÏήστη'; $wb['username_err'] = 'Το όνομα χÏήστη είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ ή πεÏιÎχει μη επιτÏεπόμενους χαÏακτήÏες'; $wb['username_empty'] = 'Το όνομα χÏήστη δεν Îχει οÏιστεί.'; diff --git a/interface/web/admin/lib/lang/en_directive_snippets.lng b/interface/web/admin/lib/lang/en_directive_snippets.lng index 8e8a63afe1e3a8e3d5cd7d60b0c46432db51f2b6..da164a531879a2687cd18d0d427dfa73c34fcdfa 100644 --- a/interface/web/admin/lib/lang/en_directive_snippets.lng +++ b/interface/web/admin/lib/lang/en_directive_snippets.lng @@ -9,4 +9,5 @@ $wb["directive_snippets_name_error_unique"] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_remote_user.lng b/interface/web/admin/lib/lang/en_remote_user.lng index 2fc633b555d240c15457f3ec2fdd48d9e55a756e..e0b911afe5e3cb61cbdb9b8dd3b8d1d0617fc8f1 100644 --- a/interface/web/admin/lib/lang/en_remote_user.lng +++ b/interface/web/admin/lib/lang/en_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Username'; $wb['password_txt'] = 'Password'; $wb['function_txt'] = 'Functions'; @@ -35,6 +36,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 7ca9967922b68b20a9e0d1f1d88dbc5a1fde4d85..e12e1d40426ca203f7579865c791eb1b3235fa96 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb["ufw_enable_txt"] = 'Enable'; $wb["ufw_manage_builtins_txt"] = 'Manage Builtin Rules'; $wb["ufw_ipv6_txt"] = 'Enable IPv6'; @@ -19,6 +22,9 @@ $wb["website_autoalias_txt"] = 'Website auto alias'; $wb["website_autoalias_note_txt"] = 'Placeholders:'; $wb["vhost_conf_dir_txt"] = 'Vhost config dir'; $wb["vhost_conf_enabled_dir_txt"] = 'Vhost config enabled dir'; +$wb["apache_init_script_txt"] = 'Apache init script'; +$wb["apache_init_script_note_txt"] = 'Leaving this empty will auto-detect the Apache init script'; +$wb["apache_init_script_error_regex"] = 'Invalid Apache init script.'; $wb["getmail_config_dir_txt"] = 'Getmail config dir'; $wb["fastcgi_starter_path_txt"] = 'FastCGI starter path'; $wb["fastcgi_starter_script_txt"] = 'FastCGI starter script'; @@ -94,7 +100,7 @@ $wb["backup_tmp_txt"] = 'Backup tmp directory for zip'; $wb["named_conf_local_path_txt"] = 'BIND named.conf.local path'; $wb["php_ini_path_cgi_txt"] = 'CGI php.ini path'; $wb["php_ini_path_apache_txt"] = 'Apache php.ini path'; -$wb["check_apache_config_txt"] = 'Test apache configuration on restart'; +$wb["check_apache_config_txt"] = 'Test webserver configuration on restart'; $wb["network_config_warning_txt"] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.'; $wb["CA_path_txt"] = 'CA Path'; $wb["CA_pass_txt"] = 'CA passphrase'; @@ -212,6 +218,7 @@ $wb["overquota_db_notify_admin_txt"] = 'Send DB quota warnings to admin'; $wb["overquota_db_notify_client_txt"] = 'Send DB quota warnings to client'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; $wb['php_handler_txt'] = "Default PHP Handler"; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; @@ -270,7 +277,6 @@ $wb['network_filesystem_txt'] = 'Network Filesystem'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -293,7 +299,15 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; -?> +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; diff --git a/interface/web/admin/lib/lang/en_server_ip.lng b/interface/web/admin/lib/lang/en_server_ip.lng index fd91fc30d644fc9d7786a9736bf80858c3f939c1..8ef448f85d8e6f3f1e604c39d0d84cbae3ed907a 100644 --- a/interface/web/admin/lib/lang/en_server_ip.lng +++ b/interface/web/admin/lib/lang/en_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb["server_id_txt"] = 'Server'; $wb["client_id_txt"] = 'Client'; $wb["ip_type_txt"] = 'Type'; @@ -8,4 +10,4 @@ $wb["virtualhost_port_txt"] = 'HTTP Ports'; $wb["ip_error_wrong"] = 'The IP address is invalid'; $wb["ip_error_unique"] = 'The IP address must be unique'; $wb["error_port_syntax"] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443'; -?> \ No newline at end of file +?> diff --git a/interface/web/admin/lib/lang/en_server_ip_map.lng b/interface/web/admin/lib/lang/en_server_ip_map.lng index 94508abb79482826e697520969cf9948b1dc61e4..d47d33cf360ea2c95341a81efa3e29257a708273 100644 --- a/interface/web/admin/lib/lang/en_server_ip_map.lng +++ b/interface/web/admin/lib/lang/en_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb["server_id_txt"] = 'Rewrite on Server'; $wb["source_txt"] = 'Source IP'; $wb["destination_txt"] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/en_server_php.lng b/interface/web/admin/lib/lang/en_server_php.lng index 179a8fc357142ea401cd663697ef817237957d10..9d322804bb689273678d0733d9ba6e23c738b6c6 100644 --- a/interface/web/admin/lib/lang/en_server_php.lng +++ b/interface/web/admin/lib/lang/en_server_php.lng @@ -14,4 +14,6 @@ $wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; $wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; $wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; $wb['active_txt'] = 'Active'; +$wb['php_in_use_error'] = 'This PHP-Version is in use.'; +$wb['php_name_in_use_error'] = 'The name can not be changed.'; ?> diff --git a/interface/web/admin/lib/lang/en_server_php_list.lng b/interface/web/admin/lib/lang/en_server_php_list.lng index 62cbe6168714b18ba4fca490280c30c945e09e7c..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/en_server_php_list.lng +++ b/interface/web/admin/lib/lang/en_server_php_list.lng @@ -5,4 +5,5 @@ $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; $wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 29732e4169fe04cc2ab3cba6ce6e961b2f6eb758..27a5e58f28ef69c819f72bb93aefac13b9e93011 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail address if you want to use smtp mail sending.'; $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)'; @@ -40,6 +41,8 @@ $wb['admin_mail_txt'] = 'Administrator\'s e-mail'; $wb["monitor_key_txt"] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrator\'s name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -74,6 +77,10 @@ $wb['session_allow_endless_txt'] = 'Enable "stay logged in"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; +$wb['ssh_authentication_txt'] = 'Allowed SSH authentication'; +$wb['ssh_authentication_password_key'] = 'Password & Key'; +$wb['ssh_authentication_password'] = 'Password'; +$wb['ssh_authentication_key'] = 'Key'; $wb["default_mailserver_txt"] = 'Default Mailserver'; $wb["default_webserver_txt"] = 'Default Webserver'; $wb["default_dnsserver_txt"] = 'Default DNS Server'; @@ -84,6 +91,8 @@ $wb["reseller_can_use_options_txt"] = "Reseller can use the option-tab for websi $wb["custom_login_text_txt"] = "Custom Text on Login-Page"; $wb["custom_login_link_txt"] = "Custom Link on Login-Page"; $wb["login_link_error_regex"] = "Invalid Link for Custom Login"; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; @@ -92,4 +101,5 @@ $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Active'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/en_users.lng b/interface/web/admin/lib/lang/en_users.lng index 81f3742a35d3774757a17ebf57390fe4509ce9dd..72d93eb4d2249d4dac9ce7df06c01fab56c2287e 100644 --- a/interface/web/admin/lib/lang/en_users.lng +++ b/interface/web/admin/lib/lang/en_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb["username_txt"] = 'Username'; $wb["username_err"] = 'The username is too long or contains invalid characters.'; $wb["username_empty"] = 'The username is empty.'; @@ -33,4 +34,8 @@ $wb['username_error_collision'] = 'The username may not be web or web plus a num $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; +$wb['startmodule_empty'] = 'Startmodule empty.'; +$wb['startmodule_regex'] = 'Invalid chars in Startmodule.'; +$wb['app_theme_empty'] = 'App theme empty.'; +$wb['app_theme_regex'] = 'Invalid chars in App theme.'; ?> diff --git a/interface/web/admin/lib/lang/es.lng b/interface/web/admin/lib/lang/es.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_directive_snippets.lng b/interface/web/admin/lib/lang/es_directive_snippets.lng old mode 100755 new mode 100644 index 8e2a9270791b70c7a2a9d287496dc1645dd3420e..a5bb21b494464ba69e782120057824d53aef0572 --- a/interface/web/admin/lib/lang/es_directive_snippets.lng +++ b/interface/web/admin/lib/lang/es_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['snippet_txt'] = 'Fragmento'; $wb['type_txt'] = 'Tipo'; $wb['variables_txt'] = 'Variables'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/es_directive_snippets_list.lng b/interface/web/admin/lib/lang/es_directive_snippets_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_firewall.lng b/interface/web/admin/lib/lang/es_firewall.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_firewall_list.lng b/interface/web/admin/lib/lang/es_firewall_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_groups.lng b/interface/web/admin/lib/lang/es_groups.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_groups_list.lng b/interface/web/admin/lib/lang/es_groups_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_iptables.lng b/interface/web/admin/lib/lang/es_iptables.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_iptables_list.lng b/interface/web/admin/lib/lang/es_iptables_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_language_add.lng b/interface/web/admin/lib/lang/es_language_add.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_language_complete.lng b/interface/web/admin/lib/lang/es_language_complete.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_language_edit.lng b/interface/web/admin/lib/lang/es_language_edit.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_language_export.lng b/interface/web/admin/lib/lang/es_language_export.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_language_import.lng b/interface/web/admin/lib/lang/es_language_import.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_language_list.lng b/interface/web/admin/lib/lang/es_language_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_package_install.lng b/interface/web/admin/lib/lang/es_package_install.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_remote_action.lng b/interface/web/admin/lib/lang/es_remote_action.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_remote_user.lng b/interface/web/admin/lib/lang/es_remote_user.lng old mode 100755 new mode 100644 index 7cefa1e5dbebcabb655413e0f1f8c91ab379edbe..bb52540f4cfd98fc69b20755f8a6e781b3477291 --- a/interface/web/admin/lib/lang/es_remote_user.lng +++ b/interface/web/admin/lib/lang/es_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['Client functions'] = 'Funciones para clientes'; $wb['DNS a functions'] = 'Funciones DNS para registro A'; $wb['DNS aaaa functions'] = 'Funciones DNS para registro AAAA'; @@ -6,6 +7,7 @@ $wb['DNS alias functions'] = 'Funciones DNS para registro ALIAS'; $wb['DNS cname functions'] = 'Funciones DNS para registro CNAME'; $wb['DNS hinfo functions'] = 'Funciones DNS para registro HINFO'; $wb['DNS mx functions'] = 'Funciones DNS para registro MX'; +$wb['DNS naptr functions'] = 'Funciones DNS para registro NAPTR'; $wb['DNS ns functions'] = 'Funciones DNS para registro NS'; $wb['DNS ptr functions'] = 'Funciones DNS para registro PTR'; $wb['DNS rp functions'] = 'Funciones DNS para registro RP'; diff --git a/interface/web/admin/lib/lang/es_remote_user_list.lng b/interface/web/admin/lib/lang/es_remote_user_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server.lng b/interface/web/admin/lib/lang/es_server.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng old mode 100755 new mode 100644 index 042671e5948ba2b591f57dda401282f590bfbcf0..f34393169587445521f160bd3420c5244532bf9f --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -1,7 +1,13 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['add_web_users_to_sshusers_group_txt'] = 'Añadir usuarios web al grupo -sshusers-'; $wb['admin_notify_events_txt'] = 'Enviar correo al administrador a partir de siguiente nivel'; $wb['apache_group_error_empty'] = 'El grupo de Apache está vacÃo.'; +$wb['apache_init_script_note_txt'] = 'Dejar esto vacÃo detectará automáticamente el script de inicio de Apache'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_error_regex'] = 'Guión de inicio Apache no válido.'; $wb['apache_user_error_empty'] = 'El usuario de Apache está vacÃo.'; $wb['apps_vhost_enabled_txt'] = 'Host virtual de aplicaciones habilitado'; $wb['apps_vhost_ip_error_empty'] = 'La IP para el host virtual de las aplicaciones está vacÃa.'; @@ -62,7 +68,6 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Deshabilitar monitorización de MongoDB' $wb['do_not_try_rescue_mysql_txt'] = 'Deshabilitar monitorización de MySQL'; $wb['enable_ip_wildcard_txt'] = 'Activar comodÃn IP (*)'; $wb['enable_sni_txt'] = 'Habilitar SNI'; -$wb['enable_spdy_txt'] = 'Hacer que SPDY/HTTP2 esté disponible'; $wb['fastcgi_alias_error_empty'] = 'El alias de FastCGI está vacÃo.'; $wb['fastcgi_alias_error_regex'] = 'El alias de fastcgi es inválido.'; $wb['fastcgi_alias_txt'] = 'Alias de FastCGI'; @@ -206,6 +211,7 @@ $wb['php_fpm_socket_dir_txt'] = 'Directorio para el socket de PHP-FPM'; $wb['php_fpm_start_port_error_empty'] = 'El puerto de inicio de PHP-FPM está vacÃo.'; $wb['php_fpm_start_port_txt'] = 'Puerto de inicio de PHP-FPM'; $wb['php_handler_txt'] = 'Controlador PHP por defecto'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['php_ini_check_minutes_error_empty'] = 'Por favor especifique un valor para definir con qué frecuencia se deberÃan buscar cambios en el archivo php.ini.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no comprobar'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config_list.lng b/interface/web/admin/lib/lang/es_server_config_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server_ip.lng b/interface/web/admin/lib/lang/es_server_ip.lng old mode 100755 new mode 100644 index 5cd2d77e52bb66cbbb93724dfb1d847e0b1bdb00..ba4d06d0982826bbca32ef64ec7797ca545b0bb9 --- a/interface/web/admin/lib/lang/es_server_ip.lng +++ b/interface/web/admin/lib/lang/es_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['client_id_txt'] = 'Cliente'; $wb['error_port_syntax'] = 'Caracteres inválidos en el campo puerto, por favor introduzca sólo números separados por comas. Por ejemplo: 80,443'; $wb['ip_address_txt'] = 'Dirección IP'; diff --git a/interface/web/admin/lib/lang/es_server_ip_list.lng b/interface/web/admin/lib/lang/es_server_ip_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server_ip_map.lng b/interface/web/admin/lib/lang/es_server_ip_map.lng old mode 100755 new mode 100644 index 4cf57cdc82e87405d5d6f32ddea57bb028c00bcf..c151fb565c1937fb77db691c8b49399da3963d79 --- a/interface/web/admin/lib/lang/es_server_ip_map.lng +++ b/interface/web/admin/lib/lang/es_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['active_txt'] = 'Activo'; $wb['destination_ip_empty'] = 'La IP de destino está vacÃa.'; $wb['destination_txt'] = 'IP de destino'; diff --git a/interface/web/admin/lib/lang/es_server_ip_map_list.lng b/interface/web/admin/lib/lang/es_server_ip_map_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server_list.lng b/interface/web/admin/lib/lang/es_server_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server_php.lng b/interface/web/admin/lib/lang/es_server_php.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_server_php_list.lng b/interface/web/admin/lib/lang/es_server_php_list.lng old mode 100755 new mode 100644 index 2e6257cfac99ff0853b7d43e57d56220cafbe022..8d62ee891926fd8ee2b32de02b10ae8bc3b6c093 --- a/interface/web/admin/lib/lang/es_server_php_list.lng +++ b/interface/web/admin/lib/lang/es_server_php_list.lng @@ -4,4 +4,6 @@ $wb['client_id_txt'] = 'Cliente'; $wb['list_head_txt'] = 'Versiones adicionales de PHP'; $wb['name_txt'] = 'Versión de PHP'; $wb['server_id_txt'] = 'Servidor'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/es_software_package.lng b/interface/web/admin/lib/lang/es_software_package.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_software_package_install.lng b/interface/web/admin/lib/lang/es_software_package_install.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_software_package_list.lng b/interface/web/admin/lib/lang/es_software_package_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_software_repo.lng b/interface/web/admin/lib/lang/es_software_repo.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_software_repo_list.lng b/interface/web/admin/lib/lang/es_software_repo_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_software_update_list.lng b/interface/web/admin/lib/lang/es_software_update_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng old mode 100755 new mode 100644 index 21575571f000e3c10baa7b2317652b06be78ef27..96e1e4487a549bcd3d14be03d2c07550998da066 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['admin_dashlets_left_txt'] = 'Componentes del administrador a la izquierda'; $wb['admin_dashlets_right_txt'] = 'Componentes del administrador a la derecha'; $wb['admin_mail_txt'] = 'Correo del administrador'; @@ -40,6 +41,8 @@ $wb['mailboxlist_webmail_link_txt'] = 'Vinculo a correo web en la lista de buzon $wb['mailmailinglist_link_txt'] = 'VÃnculo a la lista de correos en la lista de la Lista de correos'; $wb['mailmailinglist_url_txt'] = 'URL a la lista de correos'; $wb['maintenance_mode_txt'] = 'Modo de mantenimiento'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['min_password_length_txt'] = 'Longitud mÃnima de la contraseña'; $wb['min_password_strength_txt'] = 'Fortaleza mÃnima de la contraseña'; $wb['monitor_key_txt'] = 'Palabra clave del Monitor'; @@ -81,12 +84,15 @@ $wb['webftp_url_txt'] = 'Enlace al cliente FTP por web'; $wb['webmail_url_error_regex'] = 'Dirección del correo web inválida'; $wb['webmail_url_note_txt'] = 'Marcador de posición:'; $wb['webmail_url_txt'] = 'URL de correo web'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/es_tpl_default_admin.lng b/interface/web/admin/lib/lang/es_tpl_default_admin.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/es_users.lng b/interface/web/admin/lib/lang/es_users.lng old mode 100755 new mode 100644 index 65baeb666f1930be22896b18c4fce3ad52b8622d..127d5431e2b1022bf8006623acce65eda82afa8c --- a/interface/web/admin/lib/lang/es_users.lng +++ b/interface/web/admin/lib/lang/es_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['active_txt'] = 'Habilitado'; $wb['app_theme_txt'] = 'Diseño'; $wb['client_not_admin_err'] = 'Un usuario que pertenece a un cliente no puede ser del tipo: admin'; diff --git a/interface/web/admin/lib/lang/es_users_list.lng b/interface/web/admin/lib/lang/es_users_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi.lng b/interface/web/admin/lib/lang/fi.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_directive_snippets.lng b/interface/web/admin/lib/lang/fi_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/fi_directive_snippets.lng +++ b/interface/web/admin/lib/lang/fi_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/fi_firewall.lng b/interface/web/admin/lib/lang/fi_firewall.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_firewall_list.lng b/interface/web/admin/lib/lang/fi_firewall_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_groups.lng b/interface/web/admin/lib/lang/fi_groups.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_groups_list.lng b/interface/web/admin/lib/lang/fi_groups_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_language_add.lng b/interface/web/admin/lib/lang/fi_language_add.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_language_complete.lng b/interface/web/admin/lib/lang/fi_language_complete.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_language_edit.lng b/interface/web/admin/lib/lang/fi_language_edit.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_language_export.lng b/interface/web/admin/lib/lang/fi_language_export.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_language_import.lng b/interface/web/admin/lib/lang/fi_language_import.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_language_list.lng b/interface/web/admin/lib/lang/fi_language_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_remote_user.lng b/interface/web/admin/lib/lang/fi_remote_user.lng index 2ae3420d621c94c3168d9b04d73806aae6e37d2c..7bdb977afd1993515c1e7bca8b23f6c853b6f4c2 100644 --- a/interface/web/admin/lib/lang/fi_remote_user.lng +++ b/interface/web/admin/lib/lang/fi_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Käyttäjätunnus'; $wb['password_txt'] = 'Salasana'; $wb['function_txt'] = 'Toiminnot'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias-tietuetoiminnot'; $wb['DNS cname functions'] = 'DNS cname-tietuetoiminnot'; $wb['DNS hinfo functions'] = 'DNS hinfo-tietuetoiminnot'; $wb['DNS mx functions'] = 'DNS mx-tietuetoiminnot'; +$wb['DNS naptr functions'] = 'DNS naptr-tietuetoiminnot'; $wb['DNS ns functions'] = 'DNS ns-tietuetoiminnot'; $wb['DNS ptr functions'] = 'DNS ptr-tietuetoiminnot'; $wb['DNS rp functions'] = 'DNS rp-tietuetoiminnot'; diff --git a/interface/web/admin/lib/lang/fi_server.lng b/interface/web/admin/lib/lang/fi_server.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng old mode 100755 new mode 100644 index 4d76c3f5eb8a1f80ed40482d1bc173183ebe254b..6eefadb45f44fbf9d8c69851a1d4fbd0214842e9 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot-kotikansio'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot-ohjelmaosiot'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted-ohjelmat'; @@ -7,6 +10,9 @@ $wb['website_symlinks_txt'] = 'Verkkotunnuksen symmetriset linkit'; $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['vhost_conf_dir_txt'] = 'Virtuaalipalvelimen asetuskansio'; $wb['vhost_conf_enabled_dir_txt'] = 'Virtuaalipalvelimen käyttöönottokansio'; +$wb['apache_init_script_txt'] = 'Apache-aloituskomentosarja'; +$wb['apache_init_script_note_txt'] = 'Jätä tämä tyhjä tunnistaa Apache-aloitusohjelman automaattisesti'; +$wb['apache_init_script_error_regex'] = 'Virheellinen Apache-aloituskomentosarja.'; $wb['getmail_config_dir_txt'] = 'Getmail-asetuskansio'; $wb['fastcgi_starter_path_txt'] = 'FastCGI:n käynnistyspolku'; $wb['fastcgi_starter_script_txt'] = 'FastCGI:n käynnistysskripti'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['CA_path_txt'] = 'CA Path'; $wb['CA_pass_txt'] = 'CA passphrase'; $wb['ufw_enable_txt'] = 'Enable'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config_list.lng b/interface/web/admin/lib/lang/fi_server_config_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_server_ip.lng b/interface/web/admin/lib/lang/fi_server_ip.lng old mode 100755 new mode 100644 index 7d2b642fc2dec76fee3c2ced9edb69e5f4404928..a9f49cc124404c787ee0bdc1ecabc558815f47b1 --- a/interface/web/admin/lib/lang/fi_server_ip.lng +++ b/interface/web/admin/lib/lang/fi_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Palvelin'; $wb['ip_address_txt'] = 'IP-osoite'; $wb['virtualhost_txt'] = 'Virtuaalipalvelin'; diff --git a/interface/web/admin/lib/lang/fi_server_ip_list.lng b/interface/web/admin/lib/lang/fi_server_ip_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_server_ip_map.lng b/interface/web/admin/lib/lang/fi_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/fi_server_ip_map.lng +++ b/interface/web/admin/lib/lang/fi_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/fi_server_list.lng b/interface/web/admin/lib/lang/fi_server_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_server_php_list.lng b/interface/web/admin/lib/lang/fi_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/fi_server_php_list.lng +++ b/interface/web/admin/lib/lang/fi_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/fi_software_package_list.lng b/interface/web/admin/lib/lang/fi_software_package_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_software_repo.lng b/interface/web/admin/lib/lang/fi_software_repo.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_software_repo_list.lng b/interface/web/admin/lib/lang/fi_software_repo_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_software_update_list.lng b/interface/web/admin/lib/lang/fi_software_update_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index 7fe364c9720d69e3f75c5a38022e4bad45c7a24e..b6102f7f62e8e224d96c8a818d0f4abec2d32375 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Muokkaa näitä arvoja varoen! Älä poista etuliitteitä jos järjestelmässä on enemmän kuin yksi asiakas.'; $wb['dbname_prefix_txt'] = 'Tietokannan nimen etuliite'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/fi_users.lng b/interface/web/admin/lib/lang/fi_users.lng old mode 100755 new mode 100644 index 199601f5207d7889a1aaffe66660cdc77e990a35..3e44e56678b3a14c391c93e7c39fe55325a21de1 --- a/interface/web/admin/lib/lang/fi_users.lng +++ b/interface/web/admin/lib/lang/fi_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Käyttäjätunnus'; $wb['username_err'] = 'Käyttäjätunnus on liian pitkä tai sisältää kiellettyjä merkkejä.'; $wb['username_empty'] = 'Käyttäjätunnus on tyhjä.'; diff --git a/interface/web/admin/lib/lang/fi_users_list.lng b/interface/web/admin/lib/lang/fi_users_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/admin/lib/lang/fr_directive_snippets.lng b/interface/web/admin/lib/lang/fr_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/fr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/fr_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/fr_remote_user.lng b/interface/web/admin/lib/lang/fr_remote_user.lng index 1594e60fb4c8baacc2e1e0cba5152de0e4a73419..7eae30dff3da86361090e9d810fcde00482a4b71 100644 --- a/interface/web/admin/lib/lang/fr_remote_user.lng +++ b/interface/web/admin/lib/lang/fr_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Identifiant'; $wb['password_txt'] = 'Mot de passe'; $wb['function_txt'] = 'Fonctions'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'Fonction alias DNS'; $wb['DNS cname functions'] = 'Fonctions CNAME DNS'; $wb['DNS hinfo functions'] = 'Fonctions HINFO DNS'; $wb['DNS mx functions'] = 'Fonctions MX DNS'; +$wb['DNS naptr functions'] = 'Fonctions NAPTR DNS'; $wb['DNS ns functions'] = 'Fonctions NS DNS'; $wb['DNS ptr functions'] = 'Fonctions PTR DNS'; $wb['DNS rp functions'] = 'Fonctions RP DNS'; diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index d1e229e7ce80ae0413881746e945a6a7d257ec73..88717952099a752ca420245a0566b1cf3d508d47 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Accueil du chroot Jailkit'; $wb['jailkit_chroot_app_sections_txt'] = 'Sections des applications chrootées Jailkit'; $wb['jailkit_chroot_app_programs_txt'] = 'Applications chrootées Jailkit'; @@ -7,6 +10,9 @@ $wb['website_symlinks_txt'] = 'Liens symboliques du site web'; $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['vhost_conf_dir_txt'] = 'Répertoire de configuration des VHosts'; $wb['vhost_conf_enabled_dir_txt'] = 'Répertoire de configuration des VHosts actifs'; +$wb['apache_init_script_txt'] = 'Script d\'initiation Apache'; +$wb['apache_init_script_note_txt'] = 'Si vous laissez ce champ vide, le script init Apache sera automatiquement détecté.'; +$wb['apache_init_script_error_regex'] = 'Script d\'initialisation Apache non valide.'; $wb['getmail_config_dir_txt'] = 'Répertoire de configuration de Getmail'; $wb['fastcgi_starter_path_txt'] = 'Chemin du lanceur de FastCGI'; $wb['fastcgi_starter_script_txt'] = 'Script lanceur de FastCGI'; @@ -259,13 +265,13 @@ $wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_ip.lng b/interface/web/admin/lib/lang/fr_server_ip.lng index 471abb87ae2e34555568327895aaffe220df50eb..1289cd755ab173a0f0e0a3f86396633e3740b8b8 100644 --- a/interface/web/admin/lib/lang/fr_server_ip.lng +++ b/interface/web/admin/lib/lang/fr_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Serveur'; $wb['ip_address_txt'] = 'Adresse IP'; $wb['virtualhost_txt'] = 'NameVirtualHost HTTP'; diff --git a/interface/web/admin/lib/lang/fr_server_ip_map.lng b/interface/web/admin/lib/lang/fr_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/fr_server_ip_map.lng +++ b/interface/web/admin/lib/lang/fr_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/fr_server_php_list.lng b/interface/web/admin/lib/lang/fr_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/fr_server_php_list.lng +++ b/interface/web/admin/lib/lang/fr_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 0d9d27d14f5ca068d14c78201208f1cd0743bb47..38e2573044b93340c8cb496387d16f0d9f5e6086 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['dashboard_atom_url_admin_txt'] = 'URL du fil de syndication Atom du tableau de bord (admin)'; $wb['dashboard_atom_url_reseller_txt'] = 'URL du fil de syndication Atom du tableau de bord ( reseller)'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'E-mail de l’administrateur'; $wb['monitor_key_txt'] = 'Mot-clé du moniteur'; $wb['admin_name_txt'] = 'Nom des administrateurs'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/fr_users.lng b/interface/web/admin/lib/lang/fr_users.lng index 6cc3e116b4dd6e0533bd76f9ddf34e0f7adcdbcb..2f91cab83a61da3b2a1dbfb6d80fe31de6951182 100644 --- a/interface/web/admin/lib/lang/fr_users.lng +++ b/interface/web/admin/lib/lang/fr_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Nom d’utilisateur'; $wb['username_err'] = 'Le nom d’utilisateur est trop long ou contient des caractères invalides.'; $wb['passwort_txt'] = 'Mot de passe'; diff --git a/interface/web/admin/lib/lang/hr_directive_snippets.lng b/interface/web/admin/lib/lang/hr_directive_snippets.lng index 077896577db3f9b8aec8aad5f33966bd1780ea6c..5709d6075d24c0811c5b51cdc3c04b98a89c3bf1 100644 --- a/interface/web/admin/lib/lang/hr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/hr_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Već postoji direktiva sa tim ime $wb['variables_txt'] = 'Varijable'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/hr_remote_user.lng b/interface/web/admin/lib/lang/hr_remote_user.lng index 069177e5ed09db186cdbb8dc2de65f498ab5e031..fecbd7e33c47a59a1f98c56485fc4a8fb0158642 100644 --- a/interface/web/admin/lib/lang/hr_remote_user.lng +++ b/interface/web/admin/lib/lang/hr_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['password_txt'] = 'Å ifra'; $wb['function_txt'] = 'Funkcije'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias funkcije'; $wb['DNS cname functions'] = 'DNS cname funkcije'; $wb['DNS hinfo functions'] = 'DNS hinfo funkcije'; $wb['DNS mx functions'] = 'DNS mx funkcije'; +$wb['DNS naptr functions'] = 'DNS naptr funkcije'; $wb['DNS ns functions'] = 'DNS ns funkcije'; $wb['DNS ptr functions'] = 'DNS ptr funkcije'; $wb['DNS rp functions'] = 'DNS rp funkcije'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index ebfe30a16deed35236112fc1597987acc1918fd0..b36fd1348643d5833a2891a007373581e98fb8ac 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot direktorij'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sekcije'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrootane aplikacije'; @@ -8,6 +11,9 @@ $wb['website_symlinks_txt'] = 'Symlinkovi Web stranice'; $wb['website_basedir_txt'] = 'Bazni direktorij Web stranice'; $wb['vhost_conf_dir_txt'] = 'Vhost konfiguracijski direktorij'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost dozvoljeni konfiguracijski direktorij'; +$wb['apache_init_script_txt'] = 'Apache init skripta'; +$wb['apache_init_script_note_txt'] = 'Ostavite ovo prazno automatski će otkriti skriptu Apache init'; +$wb['apache_init_script_error_regex'] = 'Nevažeća skripta Apache init.'; $wb['getmail_config_dir_txt'] = 'Getmail konfiguracijski direktorij'; $wb['fastcgi_starter_path_txt'] = 'Put do FastCGI-a'; $wb['fastcgi_starter_script_txt'] = 'FastCGI poÄetna skripta'; @@ -261,13 +267,13 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_ip.lng b/interface/web/admin/lib/lang/hr_server_ip.lng index 0ddf8be14cc68d95c529dbf220098722d4e0e98e..f26fd720ca1342dc779d954cc8b5c707bb387216 100644 --- a/interface/web/admin/lib/lang/hr_server_ip.lng +++ b/interface/web/admin/lib/lang/hr_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP adresa'; $wb['virtualhost_txt'] = 'HTTP ime virtualnog hosta'; diff --git a/interface/web/admin/lib/lang/hr_server_ip_map.lng b/interface/web/admin/lib/lang/hr_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/hr_server_ip_map.lng +++ b/interface/web/admin/lib/lang/hr_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/hr_server_php_list.lng b/interface/web/admin/lib/lang/hr_server_php_list.lng index 8fd3db7a05dff9ccf466c4237c782b3c4eef2406..1851ac8395305bf7c9aac965656ac56cbe766b12 100644 --- a/interface/web/admin/lib/lang/hr_server_php_list.lng +++ b/interface/web/admin/lib/lang/hr_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Klijent'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index ba926e3a71d1bef8f3f0809916ef09f03e9cf2e0..ab8756e95621c3666a91d2c507700938e404f2fa 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Oprezno mijenjajte prefikse i postavke! Nemojte brisati prefikse na sistemima gdje postoji viÅ¡e od jednog klijenata.'; $wb['dbname_prefix_txt'] = 'Prefiks nazivu baze'; @@ -29,6 +30,8 @@ $wb['mailmailinglist_url_txt'] = 'URL mailing liste'; $wb['admin_mail_txt'] = 'e-mail administratora'; $wb['admin_name_txt'] = 'Ime administratora'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/hr_users.lng b/interface/web/admin/lib/lang/hr_users.lng index 7be3f968f27d22f0a6c1aef99cd5312dc2593d80..c274a9498daf7643989d355f2002516ec91ab25e 100644 --- a/interface/web/admin/lib/lang/hr_users.lng +++ b/interface/web/admin/lib/lang/hr_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['username_err'] = 'KorisniÄko ime je predugaÄko ili sadrži nedozvoljene znakove.'; $wb['username_empty'] = 'KorisniÄko ime je prazno.'; diff --git a/interface/web/admin/lib/lang/hu_directive_snippets.lng b/interface/web/admin/lib/lang/hu_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/hu_directive_snippets.lng +++ b/interface/web/admin/lib/lang/hu_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/hu_remote_user.lng b/interface/web/admin/lib/lang/hu_remote_user.lng index bae9d82f53ceaac588e1baa311655edec36fc7cb..6a32f3cea7803db41819c825f6ba1badcacee36d 100644 --- a/interface/web/admin/lib/lang/hu_remote_user.lng +++ b/interface/web/admin/lib/lang/hu_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Felhasználónév'; $wb['password_txt'] = 'Jelszó'; $wb['function_txt'] = 'Funkciók'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index f491b4b2da24224507f7f5cc46c165a554c2b996..789e86a64989643f0a039e5edc585bd869fd6b08 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -7,6 +10,9 @@ $wb['website_symlinks_txt'] = 'Website symlinks'; $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init parancsfájl'; +$wb['apache_init_script_note_txt'] = 'Ha üresen hagyja, az automatikusan felismeri az Apache init parancsfájlját'; +$wb['apache_init_script_error_regex'] = 'Érvénytelen Apache init parancsfájl.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Mentés könyvtára'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['network_config_warning_txt'] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.'; $wb['CA_path_txt'] = 'CA Path'; $wb['CA_pass_txt'] = 'CA passphrase'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_ip.lng b/interface/web/admin/lib/lang/hu_server_ip.lng index 33be4f514ef0276a693e04cf692aff34b7626381..2e8f88a2f714b58a29ac45384a419ebcf3a3925a 100644 --- a/interface/web/admin/lib/lang/hu_server_ip.lng +++ b/interface/web/admin/lib/lang/hu_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Szerver'; $wb['ip_address_txt'] = 'IP cÃm'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/hu_server_ip_map.lng b/interface/web/admin/lib/lang/hu_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/hu_server_ip_map.lng +++ b/interface/web/admin/lib/lang/hu_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/hu_server_php_list.lng b/interface/web/admin/lib/lang/hu_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/hu_server_php_list.lng +++ b/interface/web/admin/lib/lang/hu_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index 9944f68b7895f9fdc8847172d25fe81bfd4fe575..4262b892099af4ec5e6d366ec53824b7c5ca7bad 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one Ügyfél.'; $wb['dbname_prefix_txt'] = 'Database name prefix'; @@ -29,6 +30,8 @@ $wb['admin_name_txt'] = 'Administrators name'; $wb['enable_custom_login_txt'] = 'Allow custom login name'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/hu_users.lng b/interface/web/admin/lib/lang/hu_users.lng index e2cf25fb79521f342e6a167e339f2fa1fdb0109d..5cb86c850a18046bd76e30e28e745b5b924565bf 100644 --- a/interface/web/admin/lib/lang/hu_users.lng +++ b/interface/web/admin/lib/lang/hu_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Felhasználónév'; $wb['username_err'] = 'A Felhasználónév túl hosszú vagy érvénytelen karaktereket tartalmaz'; $wb['username_empty'] = 'A Felhasználónév üres.'; diff --git a/interface/web/admin/lib/lang/id_directive_snippets.lng b/interface/web/admin/lib/lang/id_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/id_directive_snippets.lng +++ b/interface/web/admin/lib/lang/id_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/id_remote_user.lng b/interface/web/admin/lib/lang/id_remote_user.lng index cc6efb627ac03112e9204fcb1299126812d0da66..0b148796867cc9e22c37dc51e5b9a3e347c4dcf2 100644 --- a/interface/web/admin/lib/lang/id_remote_user.lng +++ b/interface/web/admin/lib/lang/id_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Nama pengguna'; $wb['password_txt'] = 'Kata Sandi'; $wb['function_txt'] = 'Fungsi'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'Fungsi-fungsi Alias DNS'; $wb['DNS cname functions'] = 'Fungsi-fungsi CNAME DNS'; $wb['DNS hinfo functions'] = 'Fungsi-fungsi HINFO DNS'; $wb['DNS mx functions'] = 'Fungsi-fungsi MX DNS'; +$wb['DNS naptr functions'] = 'Fungsi-fungsi NAPTR DNS'; $wb['DNS ns functions'] = 'Fungsi-fungsi NS DNS'; $wb['DNS ptr functions'] = 'Fungsi-fungsi PTR DNS'; $wb['DNS rp functions'] = 'Fungsi-fungsi RP DNS'; diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index f56204188a9ce4438f8dfda2347d728566e62ef5..ee197a4d0a9e9154c78b6c09363d8231c66f162e 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Home chroot Jailkit'; $wb['jailkit_chroot_app_sections_txt'] = 'Bagian app chroot'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit aplikasi yang ter-chroot'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'Basedir Situs web'; $wb['vhost_conf_dir_txt'] = 'Direktori konfigurasi vhost'; $wb['vhost_conf_enabled_dir_txt'] = 'Direktori konfigurasi vhost yang aktif'; +$wb['apache_init_script_txt'] = 'Skrip init Apache'; +$wb['apache_init_script_note_txt'] = 'Membiarkan ini kosong akan secara otomatis mendeteksi skrip init Apache'; +$wb['apache_init_script_error_regex'] = 'Skrip init Apache tidak valid.'; $wb['getmail_config_dir_txt'] = 'Direktori konfigurasi getmail'; $wb['fastcgi_starter_path_txt'] = 'Path pemicu FastCGI'; $wb['fastcgi_starter_script_txt'] = 'Skrip pemicu FastCGI'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/id_server_ip.lng b/interface/web/admin/lib/lang/id_server_ip.lng index c6d99a121239da80568579a40160d76afb8089af..00cecf50262d718301bb1d0656002946a1165e41 100644 --- a/interface/web/admin/lib/lang/id_server_ip.lng +++ b/interface/web/admin/lib/lang/id_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'Alamat IP'; $wb['virtualhost_txt'] = 'Nama VirtualHost HTTP'; diff --git a/interface/web/admin/lib/lang/id_server_ip_map.lng b/interface/web/admin/lib/lang/id_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/id_server_ip_map.lng +++ b/interface/web/admin/lib/lang/id_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/id_server_php_list.lng b/interface/web/admin/lib/lang/id_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/id_server_php_list.lng +++ b/interface/web/admin/lib/lang/id_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 65c17683542c3db64cee43301b9db8f49533fbcf..fe545e7476f06ecc07e8499434024ac4aa853e6d 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Sunting nilai-nilai ini dengan hati-hati! Jangan hapus prefiks di sistem yang memiliki lebih dari 1 klien.'; $wb['dbname_prefix_txt'] = 'Prefiks nama database'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/id_users.lng b/interface/web/admin/lib/lang/id_users.lng index f9e961192c09a9bc6e68ccb8d0c2a90e68e8f1ec..e6ed3d5befb95050be97122368195af74ce25ac9 100644 --- a/interface/web/admin/lib/lang/id_users.lng +++ b/interface/web/admin/lib/lang/id_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Nama Pengguna'; $wb['username_err'] = 'Nama pengguna terlalu panjang atau mengandung karakter yang tidak valid.'; $wb['username_empty'] = 'Nama pengguna kosong.'; diff --git a/interface/web/admin/lib/lang/it_directive_snippets.lng b/interface/web/admin/lib/lang/it_directive_snippets.lng index 5598aacecc152ca4c07d07a7e9ad5cd0e6af4c28..e9a473f92ecc562a54c57785cb4a2d3046c60f66 100644 --- a/interface/web/admin/lib/lang/it_directive_snippets.lng +++ b/interface/web/admin/lib/lang/it_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Esiste già una direttiva snippet $wb['variables_txt'] = 'Variabili'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/it_remote_user.lng b/interface/web/admin/lib/lang/it_remote_user.lng index caef58a8c68b35ac6445cf6ec47485f16c89c985..f5fc847d68a317c7c8395c0adfc0b8692efb1094 100644 --- a/interface/web/admin/lib/lang/it_remote_user.lng +++ b/interface/web/admin/lib/lang/it_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Nome Utente'; $wb['password_txt'] = 'Password'; $wb['function_txt'] = 'Funzioni'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 24b89ee8bd96941ffca7e151618e746fc4d9d540..cd71123720fffca2b2ed0f0d35ee11e55bcca809 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -6,6 +9,9 @@ $wb['website_path_txt'] = 'Percorso Sito Web'; $wb['website_symlinks_txt'] = 'Sito Web symlinks'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config dir abilitata'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_note_txt'] = 'Lasciare questo vuoto rileverà automaticamente lo script init di Apache'; +$wb['apache_init_script_error_regex'] = 'Script init Apache non valido.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'Percorso FastCGI starter'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -259,13 +265,13 @@ $wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/it_server_ip.lng b/interface/web/admin/lib/lang/it_server_ip.lng index 0d36ac79c36b077a8781a86cbc9203b3d0830080..9850f2e38bd01dad3672029d27bcb5d0179388d3 100644 --- a/interface/web/admin/lib/lang/it_server_ip.lng +++ b/interface/web/admin/lib/lang/it_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'Indirizzo IP'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/it_server_ip_map.lng b/interface/web/admin/lib/lang/it_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/it_server_ip_map.lng +++ b/interface/web/admin/lib/lang/it_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/it_server_php_list.lng b/interface/web/admin/lib/lang/it_server_php_list.lng index 36bfcbc40eb08347320c54322fc52dc91af0add0..5ff1ebe31460dad547308f710edbd3e25769195b 100644 --- a/interface/web/admin/lib/lang/it_server_php_list.lng +++ b/interface/web/admin/lib/lang/it_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Aggiungi una nuova versione PHP'; $wb['client_id_txt'] = 'Cliente'; $wb['name_txt'] = 'Nome PHP'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index e3c4fcaae7a887bdece82aac6fb93ba9f8edf70a..f261ba3e8127bcfe843a64c32c0d6a9a24bed76c 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.'; $wb['dbname_prefix_txt'] = 'Prefisso nome database'; @@ -29,6 +30,8 @@ $wb['mailmailinglist_url_txt'] = 'Mailing list URL'; $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb["default_remote_dbserver_txt"] = "DB remoti predefiniti"; +$wb["disable_client_remote_dbserver_txt"] = "Disabilita la configurazione dei DB Remoti per i clienti"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/it_users.lng b/interface/web/admin/lib/lang/it_users.lng index 1bde73a67ba192ed59c1f0100ddb116fa3dbfb61..60c80063f4f355595cdabce714b912f9223c8613 100644 --- a/interface/web/admin/lib/lang/it_users.lng +++ b/interface/web/admin/lib/lang/it_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Nome utente'; $wb['username_err'] = 'Nome utente troppo lungo o avente caratteri non validi.'; $wb['username_empty'] = 'Nome utente mancante.'; diff --git a/interface/web/admin/lib/lang/ja_directive_snippets.lng b/interface/web/admin/lib/lang/ja_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ja_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ja_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ja_remote_user.lng b/interface/web/admin/lib/lang/ja_remote_user.lng index 2b9ce2bbf046a25245ffce724be6aa0053488d5a..9b8ca0f9c97f7b9510d0e526733927ea326e87b8 100644 --- a/interface/web/admin/lib/lang/ja_remote_user.lng +++ b/interface/web/admin/lib/lang/ja_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'ユーザーå'; $wb['password_txt'] = 'パスワード'; $wb['function_txt'] = '機能'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 72cecbcccd74d955191b4bc90a61f08d7528cfb0..4ef8d13422baef55f4a63c3031bee07294a658a9 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'chroot ホーム'; $wb['jailkit_chroot_app_sections_txt'] = '利用å¯èƒ½ã‚¢ãƒ—リケーションセクション'; $wb['jailkit_chroot_app_programs_txt'] = '利用å¯èƒ½ã‚¢ãƒ—リケーション'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'ウェブサイトã®ãƒ™ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª'; $wb['vhost_conf_dir_txt'] = 'ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆè¨å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª'; $wb['vhost_conf_enabled_dir_txt'] = 'ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆè¨å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªï¼ˆæœ‰åŠ¹ï¼‰'; +$wb['apache_init_script_txt'] = 'Apache initスクリプト'; +$wb['apache_init_script_note_txt'] = 'ã“れを空ã®ã¾ã¾ã«ã™ã‚‹ã¨ã€Apache initスクリプトãŒè‡ªå‹•検出ã•れã¾ã™'; +$wb['apache_init_script_error_regex'] = '無効ãªApache initスクリプト。'; $wb['getmail_config_dir_txt'] = 'Getmail è¨å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª'; $wb['fastcgi_starter_path_txt'] = 'FastCGIスターターã®ãƒ‘ス'; $wb['fastcgi_starter_script_txt'] = 'FastCGIスタータースクリプト'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_ip.lng b/interface/web/admin/lib/lang/ja_server_ip.lng index fdd8681ebb3c1f13a5564e6a1509b91fbcd93cb7..982d797760e61bdef90587faf1e618da91f956d4 100644 --- a/interface/web/admin/lib/lang/ja_server_ip.lng +++ b/interface/web/admin/lib/lang/ja_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'サーãƒãƒ¼'; $wb['ip_address_txt'] = 'IPアドレス'; $wb['virtualhost_txt'] = 'HTTP ã® NameVirtualHost を使ã†'; diff --git a/interface/web/admin/lib/lang/ja_server_ip_map.lng b/interface/web/admin/lib/lang/ja_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/ja_server_ip_map.lng +++ b/interface/web/admin/lib/lang/ja_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/ja_server_php_list.lng b/interface/web/admin/lib/lang/ja_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/ja_server_php_list.lng +++ b/interface/web/admin/lib/lang/ja_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index ce16ad15bbef7e1ce47fca87e3b6c646c01c778a..96ce2d2ad64d66ba0f3fbcb8b5014c382642397c 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = '値ã®å¤‰æ›´ã«ã¯ç´°å¿ƒã®æ³¨æ„を払ã£ã¦ãã ã•ã„。クライアントãŒåˆ©ç”¨ä¸ã®ã‚·ã‚¹ãƒ†ãƒ ã®ãƒ—リフィックスã¯å‰Šé™¤ã—ãªã„ã§ãã ã•ã„。'; $wb['dbname_prefix_txt'] = 'データベースåã®ãƒ—リフィックス'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ja_users.lng b/interface/web/admin/lib/lang/ja_users.lng index 64f8339ffa9a4c9bbfbad023cd10cc3b96754089..7d77bb8ac081802f12ef0dd4b70646df470382cf 100644 --- a/interface/web/admin/lib/lang/ja_users.lng +++ b/interface/web/admin/lib/lang/ja_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'ユーザーå'; $wb['username_err'] = 'ユーザーåãŒé•·ã™ãŽã‚‹ã‹ã€ã¾ãŸã¯ä¸æ£ãªæ–‡å—ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚'; $wb['username_empty'] = 'ユーザーåを入力ã—ã¦ãã ã•ã„。'; diff --git a/interface/web/admin/lib/lang/nl.lng b/interface/web/admin/lib/lang/nl.lng index 26d231ffcd67ba0f376ea4a79eacdcfcec116d02..99a4b53da1e8879b7802a87f57f03a78f0010442 100644 --- a/interface/web/admin/lib/lang/nl.lng +++ b/interface/web/admin/lib/lang/nl.lng @@ -1,6 +1,6 @@ <?php -$wb['1001'] = 'Username or password is empty.'; -$wb['1002'] = 'Username or password is wrong.'; +$wb['1001'] = 'Gebruikersnaam of wachtwoord is leeg.'; +$wb['1002'] = 'Gebruikersnaam of wachtwoord is incorrect.'; $wb['Groups'] = 'Groepen'; $wb['groups_description'] = 'Formulier om systeemgebruiker groepen te wijzigen.'; $wb['Servers'] = 'Servers'; @@ -12,13 +12,13 @@ $wb['Edit group'] = 'Wijzigen groep'; $wb['Edit server'] = 'Wijzigen server'; $wb['Sync. Now'] = 'Sync. nu'; $wb['DB Sync.'] = 'DB Sync.'; -$wb['User Management'] = 'User Management'; +$wb['User Management'] = 'Gebruikers beheren'; $wb['CP Users'] = 'CP Gebruikers'; $wb['Remote Users'] = 'Remote gebruikers'; -$wb['System'] = 'System'; +$wb['System'] = 'Systeem'; $wb['Server Services'] = 'Server Services'; $wb['Services'] = 'Services'; -$wb['Server Config'] = 'Server Config'; +$wb['Server Config'] = 'Server Configuratie'; $wb['Server'] = 'Server'; $wb['Mail'] = 'Mail'; $wb['Getmail'] = 'Getmail'; @@ -27,10 +27,10 @@ $wb['FastCGI'] = 'FastCGI'; $wb['Jailkit'] = 'Jailkit'; $wb['Rescue'] = 'Rescue'; $wb['Server IP addresses'] = 'Server IP adressen'; -$wb['Additional PHP Versions'] = 'Additional PHP Versions'; +$wb['Additional PHP Versions'] = 'Additionele PHP Versies'; $wb['Firewall'] = 'Firewall'; $wb['Interface'] = 'Interface'; -$wb['Interface Config'] = 'Main Config'; +$wb['Interface Config'] = 'Interface configuratie'; $wb['Domains'] = 'Domains'; $wb['Misc'] = 'Misc'; $wb['Software'] = 'Apps & addons'; diff --git a/interface/web/admin/lib/lang/nl_directive_snippets.lng b/interface/web/admin/lib/lang/nl_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..d216622c6f5c8701361d5b816f9e6811cac90374 100644 --- a/interface/web/admin/lib/lang/nl_directive_snippets.lng +++ b/interface/web/admin/lib/lang/nl_directive_snippets.lng @@ -1,12 +1,13 @@ <?php $wb['Directive Snippets'] = 'Directive Snippets'; -$wb['name_txt'] = 'Name of Snippet'; +$wb['name_txt'] = 'Naam van de Snippet'; $wb['type_txt'] = 'Type'; $wb['snippet_txt'] = 'Snippet'; $wb['active_txt'] = 'Active'; -$wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.'; -$wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; -$wb['variables_txt'] = 'Variables'; -$wb['customer_viewable_txt'] = 'Customer viewable'; -$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['directive_snippets_name_empty'] = 'Geef de Directive Snippet een naam.'; +$wb['directive_snippets_name_error_unique'] = 'Er is al een Directive Snippet met deze naam.'; +$wb['variables_txt'] = 'Variabelen'; +$wb['customer_viewable_txt'] = 'Zichtbaar voor klanten'; +$wb['required_php_snippets_txt'] = 'Vereiste PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/nl_directive_snippets_list.lng b/interface/web/admin/lib/lang/nl_directive_snippets_list.lng index 8e189f9f7909f34b06b76eca63a2316b2543f366..5c12ac4808a1ec2c5af4beba9ad589849fa6ebf8 100644 --- a/interface/web/admin/lib/lang/nl_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/nl_directive_snippets_list.lng @@ -1,8 +1,8 @@ <?php $wb['list_head_txt'] = 'Directive Snippets'; -$wb['active_txt'] = 'Active'; -$wb['name_txt'] = 'Name of Snippet'; +$wb['active_txt'] = 'Actief'; +$wb['name_txt'] = 'Naam'; $wb['type_txt'] = 'Type'; -$wb['add_new_record_txt'] = 'Add Directive Snippet'; -$wb['customer_viewable_txt'] = 'Customer viewable'; +$wb['add_new_record_txt'] = 'Directive Snippet toevoegen'; +$wb['customer_viewable_txt'] = 'Zichtbaar voor klanten'; ?> diff --git a/interface/web/admin/lib/lang/nl_firewall.lng b/interface/web/admin/lib/lang/nl_firewall.lng index 443aca29e630be25b9ad4f9f97c4a6b3ff8800e1..284af5c435588938b6a0470f6064d502cdd09211 100644 --- a/interface/web/admin/lib/lang/nl_firewall.lng +++ b/interface/web/admin/lib/lang/nl_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Gescheiden door komma'; $wb['udp_port_help_txt'] = 'Gescheiden door komma'; $wb['active_txt'] = 'Actief'; $wb['firewall_error_unique'] = 'Er is al een firewall record voor deze server.'; -$wb['tcp_ports_error_regex'] = 'Karakter niet toegestaan in tcp port definitie. Toegestane karakters zijn nummers, : en ,.'; -$wb['udp_ports_error_regex'] = 'Karakter niet toegestaan in udp port definitie. Toegestane karakters zijn nummers, : en ,.'; +$wb['tcp_ports_error_regex'] = 'Karakter niet toegestaan in TCP port definitie. Toegestane karakters zijn nummers, : en ,.'; +$wb['udp_ports_error_regex'] = 'Karakter niet toegestaan in UDP port definitie. Toegestane karakters zijn nummers, : en ,.'; ?> diff --git a/interface/web/admin/lib/lang/nl_firewall_list.lng b/interface/web/admin/lib/lang/nl_firewall_list.lng index 394d093493187c737f5f41665fa869b789343fd5..11746c6e5b42a5cc2e683f0a72f745e1d200c984 100644 --- a/interface/web/admin/lib/lang/nl_firewall_list.lng +++ b/interface/web/admin/lib/lang/nl_firewall_list.lng @@ -4,5 +4,5 @@ $wb['active_txt'] = 'Actief'; $wb['server_id_txt'] = 'Server'; $wb['tcp_port_txt'] = 'Open TCP poorten'; $wb['udp_port_txt'] = 'Open UDP poorten'; -$wb['add_new_record_txt'] = 'Toevoegen Firewall record'; +$wb['add_new_record_txt'] = 'Firewall regel toevoegen'; ?> diff --git a/interface/web/admin/lib/lang/nl_groups.lng b/interface/web/admin/lib/lang/nl_groups.lng index e3ec317a4e6981127decc8540e7d0d5a35ac9bd9..cdc75880ceb5944a7893e68364a105c66ca244ce 100644 --- a/interface/web/admin/lib/lang/nl_groups.lng +++ b/interface/web/admin/lib/lang/nl_groups.lng @@ -1,5 +1,5 @@ <?php $wb['description_txt'] = 'Omschrijving'; $wb['name_txt'] = 'Groep'; -$wb['name_err'] = 'Groep moet min. 1, max. 30 karakters zijn.'; +$wb['name_err'] = 'Groepsnaam moet uit minimaal 1, en maximaal 30 karakters bestaan.'; ?> diff --git a/interface/web/admin/lib/lang/nl_language_add.lng b/interface/web/admin/lib/lang/nl_language_add.lng index c7463518275ccb5538bc671e92e67ddf9c111d9e..f1541093e673fd0b7c926a8452a390eea000c914 100644 --- a/interface/web/admin/lib/lang/nl_language_add.lng +++ b/interface/web/admin/lib/lang/nl_language_add.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Toevoegen nieuwe taal'; -$wb['language_select_txt'] = 'Selecteer taal basis'; +$wb['list_head_txt'] = 'Nieuwe taal toevoegen'; +$wb['language_select_txt'] = 'Selecteer basistaal'; $wb['language_new_txt'] = 'Nieuwe taal'; -$wb['language_new_hint_txt'] = '2 karakters ISO 639-1 language-code (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; -$wb['btn_save_txt'] = 'Aanmaken nieuwe nieuw taalbestand set'; +$wb['language_new_hint_txt'] = '2 karakters ISO 639-1 taal-code (Zie http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; +$wb['btn_save_txt'] = 'Maak nieuwe taalbestanden aan'; $wb['btn_cancel_txt'] = 'Terug'; ?> diff --git a/interface/web/admin/lib/lang/nl_language_import.lng b/interface/web/admin/lib/lang/nl_language_import.lng index ae407efecbe3bbaf413e644ba0408c4b0c958187..bec27a95286faf3bc7c43d0f5041ed3cad9ea97a 100644 --- a/interface/web/admin/lib/lang/nl_language_import.lng +++ b/interface/web/admin/lib/lang/nl_language_import.lng @@ -5,5 +5,5 @@ $wb['btn_save_txt'] = 'Importeer het geselecteerde taalbestand'; $wb['language_overwrite_txt'] = 'Overschrijf bestand, als dit bestaat.'; $wb['btn_cancel_txt'] = 'Terug'; $wb['ignore_version_txt'] = 'Sla ISPConfig versie controle over'; -$wb['list_desc_txt'] = 'WARNING: Do not import language files from untrustworthy sources.'; +$wb['list_desc_txt'] = 'Waarschuwing: Importeer geen taalbestanden van onvertrouwde bronnen.'; ?> diff --git a/interface/web/admin/lib/lang/nl_remote_user.lng b/interface/web/admin/lib/lang/nl_remote_user.lng index f049116094a7d7f194552141667e0d147c50240e..b0053f182f11a360ce9a1ee8c4d237bce4b7b062 100644 --- a/interface/web/admin/lib/lang/nl_remote_user.lng +++ b/interface/web/admin/lib/lang/nl_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Externe Gebruiker'; $wb['username_txt'] = 'Gebruikersnaam'; $wb['password_txt'] = 'Wachtwoord'; $wb['function_txt'] = 'Funties'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functies'; $wb['DNS cname functions'] = 'DNS cname functies'; $wb['DNS hinfo functions'] = 'DNS hinfo functies'; $wb['DNS mx functions'] = 'DNS mx functies'; +$wb['DNS naptr functions'] = 'DNS naptr functies'; $wb['DNS ns functions'] = 'DNS ns functies'; $wb['DNS ptr functions'] = 'DNS ptr functies'; $wb['DNS rp functions'] = 'DNS rp functies'; diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 389a0ea8770cd958b25c2326dd8ecb6a10c39ccf..5b5fcf122bf4350700f11285a66eb928b832a16b 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Configuratie'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app secties'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applicaties'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Maak relative symlinks'; $wb['website_basedir_txt'] = 'Website basedir'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_note_txt'] = 'Als u dit leeg laat, wordt het Apache init-script automatisch gedetecteerd'; +$wb['apache_init_script_error_regex'] = 'Ongeldig Apache init-script.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter pad'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_ip.lng b/interface/web/admin/lib/lang/nl_server_ip.lng index 3b281d60a049456c4dc95d0d9b821aab392abcf1..1fd397e01b83f7e0406ddfb3030625f60cac628d 100644 --- a/interface/web/admin/lib/lang/nl_server_ip.lng +++ b/interface/web/admin/lib/lang/nl_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP adres'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/nl_server_ip_map.lng b/interface/web/admin/lib/lang/nl_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/nl_server_ip_map.lng +++ b/interface/web/admin/lib/lang/nl_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/nl_server_php_list.lng b/interface/web/admin/lib/lang/nl_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/nl_server_php_list.lng +++ b/interface/web/admin/lib/lang/nl_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/nl_software_package_list.lng b/interface/web/admin/lib/lang/nl_software_package_list.lng index 33e66022bc33e6348d962c81aa34f4e3d4c1eb29..44aaa563ad06f472796aa96a31d9a241c9cee4fc 100644 --- a/interface/web/admin/lib/lang/nl_software_package_list.lng +++ b/interface/web/admin/lib/lang/nl_software_package_list.lng @@ -6,7 +6,7 @@ $wb['package_description_txt'] = 'Omschrijving'; $wb['action_txt'] = 'Actie'; $wb['toolsarea_head_txt'] = 'Pakketten'; $wb['repoupdate_txt'] = 'Update pakketlijst'; -$wb['package_id_txt'] = 'locaal App-ID'; +$wb['package_id_txt'] = 'lokaal App-ID'; $wb['no_packages_txt'] = 'No packages available'; $wb['edit_txt'] = 'Edit'; $wb['delete_txt'] = 'Delete'; diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 20df45f2bce860e08a7c21194fae4ea41e1e3fd6..f9f59896bfc226da7d2839d62e28ae6676b632f6 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)'; $wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)'; @@ -32,6 +33,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/nl_users.lng b/interface/web/admin/lib/lang/nl_users.lng index 1e6d4ef586166171b18e799ce2f73c2d93d11bec..53611ff56ee3ac391407e876b46f8ac62c13a6bf 100644 --- a/interface/web/admin/lib/lang/nl_users.lng +++ b/interface/web/admin/lib/lang/nl_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Gebruikers'; $wb['username_txt'] = 'Gebruikersnaam'; $wb['username_err'] = 'De gebruikersnaam is te lang of bevat ongeldige karakters.'; $wb['username_empty'] = 'De gebruikersnaam is niet ingvuld.'; diff --git a/interface/web/admin/lib/lang/pl_directive_snippets.lng b/interface/web/admin/lib/lang/pl_directive_snippets.lng index 4902bf3282ce2e1148d5e5a40c9c73c998c3ccdc..abef1e28faa56c89174aef76e87ad10fa53b7b1d 100644 --- a/interface/web/admin/lib/lang/pl_directive_snippets.lng +++ b/interface/web/admin/lib/lang/pl_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Istnieje już zestaw dyrektyw o p $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/pl_remote_user.lng b/interface/web/admin/lib/lang/pl_remote_user.lng index 5df48fb29b83bb7dbc667feb6af6963bc4332ea0..e5274930953f227946b8da0da480e5e0a9cca4a7 100644 --- a/interface/web/admin/lib/lang/pl_remote_user.lng +++ b/interface/web/admin/lib/lang/pl_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Nazwa użytkownika'; $wb['password_txt'] = 'HasÅ‚o'; $wb['function_txt'] = 'Funkcje'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'Funkcje aliasów DNS'; $wb['DNS cname functions'] = 'Funkcje rekordu CNAME DNS'; $wb['DNS hinfo functions'] = 'Funkcje rekordu HINFO DNS'; $wb['DNS mx functions'] = 'Funkcje rekordu MX DNS'; +$wb['DNS naptr functions'] = 'Funkcje rekordu NAPTR DNS'; $wb['DNS ns functions'] = 'Funkcje rekordu NS DNS'; $wb['DNS ptr functions'] = 'Funkcje rekordu PTR DNS'; $wb['DNS rp functions'] = 'Funkcje rekordu RP DNS'; diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index a05df057524e153a0c4b21350f003929746ef7bc..1d6caa8e5eff0879c14e9dac9e7c42d7e8a47441 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Adres roota Jailkit'; $wb['jailkit_chroot_app_sections_txt'] = 'Sekcje aplikacji roota Jailkit'; $wb['jailkit_chroot_app_programs_txt'] = 'Åšcieżki aplikacji roota Jailkit'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Twórz linki relatywne'; $wb['website_basedir_txt'] = 'Åšcieżka bazowa strony WWW'; $wb['vhost_conf_dir_txt'] = 'Åšcieżka do konfiguracyji wirtualnego serwera'; $wb['vhost_conf_enabled_dir_txt'] = 'Åšcieżka do aktywnej konfiguracyji Vhost'; +$wb['apache_init_script_txt'] = 'Skrypt inicjujÄ…cy Apache'; +$wb['apache_init_script_note_txt'] = 'Pozostawienie tego pustego spowoduje automatyczne wykrycie skryptu inicjujÄ…cego Apache'; +$wb['apache_init_script_error_regex'] = 'Niepoprawny skrypt inicjujÄ…cy Apache.'; $wb['getmail_config_dir_txt'] = 'Åšcieżka do konfiguracyji Getmail'; $wb['fastcgi_starter_path_txt'] = 'Adres startowy FastCGI'; $wb['fastcgi_starter_script_txt'] = 'Startowy skrypt FastCGI'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_ip.lng b/interface/web/admin/lib/lang/pl_server_ip.lng index cb16e104d5822d4b794b1a0d6410dd666545de8c..0e31866078b2f18d9315731f78e1d492ec57a379 100644 --- a/interface/web/admin/lib/lang/pl_server_ip.lng +++ b/interface/web/admin/lib/lang/pl_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Serwer'; $wb['ip_address_txt'] = 'Adres IP'; $wb['virtualhost_txt'] = 'Nazwa wirtualnego hosta HTTP'; diff --git a/interface/web/admin/lib/lang/pl_server_ip_map.lng b/interface/web/admin/lib/lang/pl_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/pl_server_ip_map.lng +++ b/interface/web/admin/lib/lang/pl_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/pl_server_php_list.lng b/interface/web/admin/lib/lang/pl_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/pl_server_php_list.lng +++ b/interface/web/admin/lib/lang/pl_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index 1c51b949a763dd68e1680f09950cfadfc0c3e01c..5f49133f561589911d3e9095e7891ab98ca6e628 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['warning'] = 'Edytuj te wartoÅ›ci ostrożnie! Nie usuwaj prefiksów w systemie w wiÄ™cej niż jednym kliencie.'; $wb['dbname_prefix_txt'] = 'Prefiks nazwy bazy danych'; $wb['dbuser_prefix_txt'] = 'Prefiks użytkownika bazy danych'; @@ -37,6 +38,8 @@ $wb['vhost_subdomains_note_txt'] = 'Nie możesz wyłączyć tego tak dÅ‚ugo jak $wb['vhost_aliasdomains_txt'] = 'Twórz aliasdomeny jako strony web'; $wb['vhost_aliasdomains_note_txt'] = 'Nie możesz wyłączyć tego tak dÅ‚ugo jak istniejÄ… w systemie vhosty aliasdomen.'; $wb['maintenance_mode_txt'] = 'Tryb serwisowy'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Używaj SMTP do wysyÅ‚ania powiadomieÅ„ systemowych'; $wb['smtp_host_txt'] = 'Host SMTP'; $wb['smtp_port_txt'] = 'Port SMTP'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/pl_users.lng b/interface/web/admin/lib/lang/pl_users.lng index e6dfcb57b294981b74b31cf62f96e1c5ad80885e..c303b1ab1eb949556f03ee3500acad0b5742759c 100644 --- a/interface/web/admin/lib/lang/pl_users.lng +++ b/interface/web/admin/lib/lang/pl_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Nazwa użytkownika'; $wb['username_err'] = 'Nazwa użytkownika jest za dÅ‚uga lub zawiera niedozwolone znaki.'; $wb['username_empty'] = 'Nazwa użytkownika jest pusta.'; diff --git a/interface/web/admin/lib/lang/pt_directive_snippets.lng b/interface/web/admin/lib/lang/pt_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/pt_directive_snippets.lng +++ b/interface/web/admin/lib/lang/pt_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/pt_remote_user.lng b/interface/web/admin/lib/lang/pt_remote_user.lng index f23a6abd5c5b37f78b84f0ebe93cd570f65bd8f8..24b4a5eac8bd1576773f866d482d27d3a09323d0 100644 --- a/interface/web/admin/lib/lang/pt_remote_user.lng +++ b/interface/web/admin/lib/lang/pt_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Nome do utilizador'; $wb['password_txt'] = 'Senha'; $wb['function_txt'] = 'Funções'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'Funções de alias DNS'; $wb['DNS cname functions'] = 'Funções de cname DNS'; $wb['DNS hinfo functions'] = 'Funções de hinfo DNS'; $wb['DNS mx functions'] = 'Funções de mx DNS'; +$wb['DNS naptr functions'] = 'Funções de naptr DNS'; $wb['DNS ns functions'] = 'Funções de ns DNS'; $wb['DNS ptr functions'] = 'Funções de ptr DNS'; $wb['DNS rp functions'] = 'Funções de rp DNS'; diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index ba5bd38248e36387d6bd2cd704575a7bbb5a9f86..fcf7a23e88117d6f58b1cf75950fd5e4947f4944 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Raiz do Chroot Jailkit'; $wb['jailkit_chroot_app_sections_txt'] = 'Aplicações Jailkit chroot (Sessões)'; $wb['jailkit_chroot_app_programs_txt'] = 'Aplicações Jailkit em ambiente chroot'; @@ -8,6 +11,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'Website basedir: pasta base '; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost pasta de configuração activo'; +$wb['apache_init_script_txt'] = 'Script de inicialização do Apache'; +$wb['apache_init_script_note_txt'] = 'Deixando esta vontade vazio detectar automaticamente o script de inicialização do Apache'; +$wb['apache_init_script_error_regex'] = 'Script de inicialização do Apache inválido.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI: Pasta inicial'; $wb['fastcgi_starter_script_txt'] = 'FastCGI: Script inicial'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['CA_path_txt'] = 'CA Path'; $wb['CA_pass_txt'] = 'CA passphrase'; $wb['ufw_enable_txt'] = 'Enable'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_ip.lng b/interface/web/admin/lib/lang/pt_server_ip.lng index 62f9ad351a5ce8a9d02f83d970c1e55782f382b4..8a3d00be6132edba87b2fdeefa7ed6aeffbe3821 100644 --- a/interface/web/admin/lib/lang/pt_server_ip.lng +++ b/interface/web/admin/lib/lang/pt_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Servidor'; $wb['ip_address_txt'] = 'Endereço IP'; $wb['virtualhost_txt'] = 'Nome VirtualHost HTTP'; diff --git a/interface/web/admin/lib/lang/pt_server_ip_map.lng b/interface/web/admin/lib/lang/pt_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/pt_server_ip_map.lng +++ b/interface/web/admin/lib/lang/pt_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/pt_server_php_list.lng b/interface/web/admin/lib/lang/pt_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/pt_server_php_list.lng +++ b/interface/web/admin/lib/lang/pt_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 4a28e49a7507440f7ebd723ec3630d87a4f5b7f3..10b87a40ae223ca364da96b44c5fad4543913016 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Edite estes valores com cuidado! Não remova os prefixos em um sistema com mais de um cliente!!'; $wb['dbname_prefix_txt'] = 'Prefixo Nome da Base de Dados'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/pt_users.lng b/interface/web/admin/lib/lang/pt_users.lng index 67cfe4f572cdce0ad2f301cf0000a069bf1f7a32..3e620e02cd931f885d2148110ed65c8ad99f5de8 100644 --- a/interface/web/admin/lib/lang/pt_users.lng +++ b/interface/web/admin/lib/lang/pt_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Utilizador '; $wb['username_err'] = 'O Nome do utilizador é muito longo ou contém caracteres inválidos!'; $wb['username_empty'] = 'Por favor, entre com um nome de utilizador .'; diff --git a/interface/web/admin/lib/lang/ro_directive_snippets.lng b/interface/web/admin/lib/lang/ro_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ro_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ro_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ro_remote_user.lng b/interface/web/admin/lib/lang/ro_remote_user.lng index d0504005e310ec5464c4c9fda2eb637bd008f75a..98670aea070653a7d752c9724c08db8efbf97196 100644 --- a/interface/web/admin/lib/lang/ro_remote_user.lng +++ b/interface/web/admin/lib/lang/ro_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Username'; $wb['password_txt'] = 'Password'; $wb['function_txt'] = 'Functions'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 5a29d0eff039d497f6a9d2cf4f0baa4f0982a85a..2c3b4fdce48d33abc402d4312ba7f338c68e4b1e 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -8,6 +11,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'Website basedir'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Scriptul Apache init'; +$wb['apache_init_script_note_txt'] = 'Lăsând acest gol, va detecta automat scriptul iniÈ›ial Apache'; +$wb['apache_init_script_error_regex'] = 'Scriptul iniÈ›ial de Apache nevalid.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_ip.lng b/interface/web/admin/lib/lang/ro_server_ip.lng index 88d8a2f6043c7655289f1cc985fa40a20aa36393..1947d3ec371178e804086ad8b872b8bdeccb538f 100644 --- a/interface/web/admin/lib/lang/ro_server_ip.lng +++ b/interface/web/admin/lib/lang/ro_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP Address'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/ro_server_ip_map.lng b/interface/web/admin/lib/lang/ro_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/ro_server_ip_map.lng +++ b/interface/web/admin/lib/lang/ro_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/ro_server_php_list.lng b/interface/web/admin/lib/lang/ro_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/ro_server_php_list.lng +++ b/interface/web/admin/lib/lang/ro_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index efbc6bf2637a09042b4fa1a037fa6c0cff507955..56c7e40059a858ff89d41c80aed078db9b1a69e9 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.'; $wb['dbname_prefix_txt'] = 'Database name prefix'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ro_users.lng b/interface/web/admin/lib/lang/ro_users.lng index dcbc4f4727145c78a9a6a70b4ac3cca5b3ecc0c7..dd4ef0143de1544544ac635454cd3dc9040bbddf 100644 --- a/interface/web/admin/lib/lang/ro_users.lng +++ b/interface/web/admin/lib/lang/ro_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Username'; $wb['username_err'] = 'The username is too long or contains invalid characters.'; $wb['username_empty'] = 'The username is empty.'; diff --git a/interface/web/admin/lib/lang/ru_directive_snippets.lng b/interface/web/admin/lib/lang/ru_directive_snippets.lng index cfa09a02fcb1ea396c0c8a7257ae673a31e281fa..120a962d7ff5934de3b41c91dd4a41c4a03aa3f6 100644 --- a/interface/web/admin/lib/lang/ru_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ru_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Уже еÑть заготовк $wb['variables_txt'] = 'Переменные:'; $wb['customer_viewable_txt'] = 'Видимый клиентам'; $wb['required_php_snippets_txt'] = 'ОбÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ PHP-заготовка'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ru_firewall.lng b/interface/web/admin/lib/lang/ru_firewall.lng index c30f26f2e89618ae52bafc636006a36d59624264..70beb30437001e94beb6109e8c518019a5d6059f 100644 --- a/interface/web/admin/lib/lang/ru_firewall.lng +++ b/interface/web/admin/lib/lang/ru_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'ПеречиÑлить порты TCP через з $wb['udp_port_help_txt'] = 'ПеречиÑлить порты UDP через запÑтую'; $wb['active_txt'] = 'Ðктивно'; $wb['firewall_error_unique'] = 'Уже еÑть Ñ‚Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ брандмауÑра Ð´Ð»Ñ Ñтого Ñервера.'; -$wb['tcp_ports_error_regex'] = 'ÐедопуÑтимый Ñимвол в указании tcp порта. Корректные Ñиволы - цифры, \":\" и \",\"'; -$wb['udp_ports_error_regex'] = 'Ðекорректный Ñимвол в указании UDP порта. ДопуÑтимые Ñиволы - цифры, \":\" и \",\"'; +$wb['tcp_ports_error_regex'] = 'ÐедопуÑтимый Ñимвол в указании tcp порта. Корректные Ñиволы - цифры, \\":\\" и \\",\\"'; +$wb['udp_ports_error_regex'] = 'Ðекорректный Ñимвол в указании UDP порта. ДопуÑтимые Ñиволы - цифры, \\":\\" и \\",\\"'; ?> diff --git a/interface/web/admin/lib/lang/ru_remote_user.lng b/interface/web/admin/lib/lang/ru_remote_user.lng index 2d556b0800746f8a59543fd95b05a69f5697260a..ea3d502a6a86adc888b77de87158fa6264157b22 100644 --- a/interface/web/admin/lib/lang/ru_remote_user.lng +++ b/interface/web/admin/lib/lang/ru_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Логин'; $wb['password_txt'] = 'Пароль'; $wb['function_txt'] = 'Функции'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'Функции DNS ALIAS'; $wb['DNS cname functions'] = 'Функции DNS CNAME'; $wb['DNS hinfo functions'] = 'Функции DNS hinfo'; $wb['DNS mx functions'] = 'Функции DNS mx'; +$wb['DNS naptr functions'] = 'Функции DNS naptr'; $wb['DNS ns functions'] = 'Функции DNS ns'; $wb['DNS ptr functions'] = 'Функции DNS ptr'; $wb['DNS rp functions'] = 'Функции DNS rp'; diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 7ed1fb88abb094432b9325b176559949a2985f2d..f3f5a47c7d907006a4f4f4a80e62b163d4484c16 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Путь к домашней папке Jailkit chroot'; $wb['jailkit_chroot_app_sections_txt'] = 'Пакеты программ Jailkit chroot'; $wb['jailkit_chroot_app_programs_txt'] = 'Программы Jailkit chrooted'; @@ -6,6 +9,9 @@ $wb['website_path_txt'] = 'Путь к web-Ñайту'; $wb['website_symlinks_txt'] = 'Симлинки Web-Ñайта'; $wb['vhost_conf_dir_txt'] = 'Каталог config Vhost'; $wb['vhost_conf_enabled_dir_txt'] = 'Каталог Vhost conf enabled'; +$wb['apache_init_script_txt'] = 'Apache init script'; +$wb['apache_init_script_note_txt'] = 'ЕÑли оÑтавить Ñто поле пуÑтым, будет автоматичеÑки обнаружен Ñкрипт инициализации Apache.'; +$wb['apache_init_script_error_regex'] = 'ÐедопуÑтимый Ñкрипт инициализации Apache.'; $wb['getmail_config_dir_txt'] = 'Папка конфига Getmail'; $wb['fastcgi_starter_path_txt'] = 'Стартовый путь FastCGI'; $wb['fastcgi_starter_script_txt'] = 'Стартовый Ñкрипт FastCGI'; @@ -152,7 +158,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'Каталог PHP-FPM Ñокета п $wb['try_rescue_txt'] = 'Включить мониторинг Ñлужбы и перезапуÑк при Ñбое'; $wb['do_not_try_rescue_mysql_txt'] = 'Отключить мониторинг MySQL'; $wb['do_not_try_rescue_mail_txt'] = 'Отключить мониторинг Email'; -$wb['rescue_description_txt'] = '<b>ИнформациÑ:</b> ЕÑли вы хотите выключить MySQL, вы должны уÑтановить флажок \"Отключить мониторинг MySQL\" и подождать 2-3 минуты.<br>ЕÑли вы не подождёте 2-3 минуты, мониторинг будет пытатьÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑтить MySQL!'; +$wb['rescue_description_txt'] = '<b>ИнформациÑ:</b> ЕÑли вы хотите выключить MySQL, вы должны уÑтановить флажок \\"Отключить мониторинг MySQL\\" и подождать 2-3 минуты.<br>ЕÑли вы не подождёте 2-3 минуты, мониторинг будет пытатьÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑтить MySQL!'; $wb['enable_sni_txt'] = 'Включить SNI'; $wb['do_not_try_rescue_httpd_txt'] = 'Отключить мониторинг HTTPD'; $wb['set_folder_permissions_on_update_txt'] = 'УÑтановить Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð°Ð¿ÐºÐ¸ на обновлениÑ'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Выполните команду монти $wb['overquota_db_notify_admin_txt'] = 'ПриÑылать Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ²Ð¾Ñ‚Ñ‹ DB админиÑтратору'; $wb['overquota_db_notify_client_txt'] = 'ПриÑылать Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ²Ð¾Ñ‚Ñ‹ DB клиенту'; $wb['php_handler_txt'] = 'Обработчик PHP по умолчанию'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Отключено'; $wb['dkim_strength_txt'] = 'СтойкоÑть DKIM'; $wb['php_ini_check_minutes_txt'] = 'ПроверÑть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² PHP.ini файле каждые Ð¥ минут'; $wb['php_ini_check_minutes_error_empty'] = 'ПожалуйÑта, укажите значение, как чаÑто php.ini должен быть проверен на изменениÑ.'; $wb['php_ini_check_minutes_info_txt'] = '0 = не проверÑть'; -$wb['enable_spdy_txt'] = 'Сделать SPDY/HTTP2 доÑтупным'; $wb['web_settings_txt'] = 'Web-Ñервер'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'ИÑпользовать IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_ip.lng b/interface/web/admin/lib/lang/ru_server_ip.lng index fd82e2efa17cb5d0eda5af34950995c9f1a6417a..f874ba1bbddda825ddebcad91d7b3861a3d77ea0 100644 --- a/interface/web/admin/lib/lang/ru_server_ip.lng +++ b/interface/web/admin/lib/lang/ru_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Сервер'; $wb['ip_address_txt'] = 'IP-адреÑ'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/ru_server_ip_map.lng b/interface/web/admin/lib/lang/ru_server_ip_map.lng index 2b284360e506113421c9644131a82544ef59fae0..467edf86e4563910bd85f3348598bd40f6072ac9 100644 --- a/interface/web/admin/lib/lang/ru_server_ip_map.lng +++ b/interface/web/admin/lib/lang/ru_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite на Ñервер'; $wb['source_txt'] = 'IP-Ð°Ð´Ñ€ÐµÑ Ð¸Ñточника'; $wb['destination_txt'] = 'IP-Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ'; diff --git a/interface/web/admin/lib/lang/ru_server_php_list.lng b/interface/web/admin/lib/lang/ru_server_php_list.lng index bb4cc308e49121f4417f9fa37f8bf525396c7473..5be582f23daf324d4ba7e90203d074a73a081641 100644 --- a/interface/web/admin/lib/lang/ru_server_php_list.lng +++ b/interface/web/admin/lib/lang/ru_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Сервер'; $wb['add_new_record_txt'] = 'Добавить новую верÑию PHP'; $wb['client_id_txt'] = 'ID Клиента'; $wb['name_txt'] = 'Ð˜Ð¼Ñ PHP'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 301827893e4237e6014dd0be51537defbad8ea80..c0da3d894a8ebcfb8c6121a8011cfb79273dbc67 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = 'ÐаÑтройка параметров по умолчанию'; $wb['warning'] = 'ИзменÑйте Ñти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð°ÐºÐºÑƒÑ€Ð°Ñ‚Ð½Ð¾! Ðе удалÑйте префикÑÑ‹ на ÑиÑтемах где более одного пользователÑ.'; $wb['dbname_prefix_txt'] = 'ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð±Ð°Ð·Ñ‹ данных'; @@ -14,7 +15,7 @@ $wb['mailboxlist_webmail_link_txt'] = 'СÑылка на веб-почту в Ñ $wb['webmail_url_txt'] = 'URL веб-почты'; $wb['phpmyadmin_url_txt'] = 'URL PHPMyAdmin'; $wb['use_domain_module_txt'] = 'ИÑпользовать модуль домена, чтобы добавить новые домены'; -$wb['use_domain_module_hint'] = 'При иÑпользовании Ñтого модулÑ, Ваши клиенты Ñмогут выбрать только один из доменов, Ñозданных Ð´Ð»Ñ Ð½Ð¸Ñ… админиÑтратором. Они не могут Ñвободно редактировать поле \"домен\". Чтобы Ñделать Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¸Ð¼Ñ‹Ð¼Ð¸, Ð’Ñ‹ должны выйти и повторно войти в панель поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтого значениÑ.'; +$wb['use_domain_module_hint'] = 'При иÑпользовании Ñтого модулÑ, Ваши клиенты Ñмогут выбрать только один из доменов, Ñозданных Ð´Ð»Ñ Ð½Ð¸Ñ… админиÑтратором. Они не могут Ñвободно редактировать поле \\"домен\\". Чтобы Ñделать Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¸Ð¼Ñ‹Ð¼Ð¸, Ð’Ñ‹ должны выйти и повторно войти в панель поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтого значениÑ.'; $wb['new_domain_txt'] = 'HTML текÑÑ‚, чтобы Ñоздать новый домен'; $wb['webdavuser_prefix_txt'] = 'ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ WebDAV'; $wb['webdavuser_prefix_error_regex'] = 'Ðекорректный Ñимвол в префикÑе Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ WebDAV.'; @@ -29,6 +30,8 @@ $wb['mailmailinglist_url_txt'] = 'URL почтовой раÑÑылки'; $wb['admin_mail_txt'] = 'E-mail админиÑтратора'; $wb['admin_name_txt'] = 'Ð˜Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора'; $wb['maintenance_mode_txt'] = 'Режим техничеÑкого бÑлуживаниÑ'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'ИÑпользовать SMTP Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑиÑтемных Ñообщений'; $wb['smtp_host_txt'] = 'ХоÑÑ‚ SMTP'; $wb['smtp_port_txt'] = 'Порт SMTP'; @@ -67,7 +70,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Шаблон номера Кли $wb['customer_no_start_txt'] = 'Ðачальное значение номера Клиента'; $wb['customer_no_counter_txt'] = 'Счётчик номера Клиента'; $wb['session_timeout_txt'] = 'Тайм-аут ÑеÑÑии (в минутах)'; -$wb['session_allow_endless_txt'] = 'Включить \"оÑтаватьÑÑ Ð² ÑиÑтеме\"'; +$wb['session_allow_endless_txt'] = 'Включить \\"оÑтаватьÑÑ Ð² ÑиÑтеме\\"'; $wb['No'] = 'Ðет'; $wb['min_password_length_txt'] = 'ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° паролÑ'; $wb['min_password_strength_txt'] = 'ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÑтойкоÑть паролÑ'; @@ -81,20 +84,15 @@ $wb['default_webserver_txt'] = 'Web-Ñервер по умолчанию'; $wb['default_dnsserver_txt'] = 'DNS-Ñервер по умолчанию'; $wb['default_slave_dnsserver_txt'] = 'Вторичный DNS-Ñервер по умолчанию'; $wb['default_dbserver_txt'] = 'Сервер базы данных по умолчанию'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA<E2><80><99>s do not recognize any other flag values as described in RFC 6844 -$wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ru_users.lng b/interface/web/admin/lib/lang/ru_users.lng index bd1b8034ff441abf1db0a52185c3e4672823b89a..9ed98ca021312fc797d4367b24059072e1e8564e 100644 --- a/interface/web/admin/lib/lang/ru_users.lng +++ b/interface/web/admin/lib/lang/ru_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Логин'; $wb['username_err'] = 'Ошибка в логине'; $wb['passwort_txt'] = 'Пароль'; @@ -29,7 +30,7 @@ $wb['generate_password_txt'] = 'Создать пароль'; $wb['repeat_password_txt'] = 'Повторить пароль'; $wb['password_mismatch_txt'] = 'Пароли не Ñовпадают.'; $wb['password_match_txt'] = 'Ðти пароли Ñовпадают.'; -$wb['username_error_collision'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может начинатьÑÑ Ñо Ñлова \"web\" или \"web\" Ð¿Ð»ÑŽÑ Ñ‡Ð¸Ñло.'; +$wb['username_error_collision'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может начинатьÑÑ Ñо Ñлова \\"web\\" или \\"web\\" Ð¿Ð»ÑŽÑ Ñ‡Ð¸Ñло.'; $wb['client_not_admin_err'] = 'Пользователь, который принадлежит к клиенту не может быть уÑтановлен тип: admin'; $wb['lost_password_function_txt'] = 'Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупна'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/se_directive_snippets.lng b/interface/web/admin/lib/lang/se_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/se_directive_snippets.lng +++ b/interface/web/admin/lib/lang/se_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/se_remote_user.lng b/interface/web/admin/lib/lang/se_remote_user.lng index 657e5878f1ad5af6ea9fa6e5a470574164713430..f6600173fe6300f4780ddfefdfbfb5038d6cd651 100644 --- a/interface/web/admin/lib/lang/se_remote_user.lng +++ b/interface/web/admin/lib/lang/se_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Användarnamn'; $wb['password_txt'] = 'Lösenord'; $wb['function_txt'] = 'Funktioner'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 196fe3ffd090e543f37aae390b42152bfecd660e..634c3655a76d2c7a32dac14b8906275d940f4349 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications'; @@ -7,6 +10,9 @@ $wb['website_symlinks_txt'] = 'Website symlinks'; $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['vhost_conf_dir_txt'] = 'Vhost config dir'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir'; +$wb['apache_init_script_txt'] = 'Apache init-skript'; +$wb['apache_init_script_note_txt'] = 'Om du lämnar detta tomt kommer det automatiskt att upptäcka Apache-init-skriptet'; +$wb['apache_init_script_error_regex'] = 'Ogiltigt Apache-init-skript.'; $wb['getmail_config_dir_txt'] = 'Getmail config dir'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/se_server_ip.lng b/interface/web/admin/lib/lang/se_server_ip.lng index c6f92d8b60d66a1d1726f1c872baf5a60acecbb7..09bc3b593a126b37cd9700515c8428ed1fa6d53c 100644 --- a/interface/web/admin/lib/lang/se_server_ip.lng +++ b/interface/web/admin/lib/lang/se_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP-adress'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/se_server_ip_map.lng b/interface/web/admin/lib/lang/se_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/se_server_ip_map.lng +++ b/interface/web/admin/lib/lang/se_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/se_server_php_list.lng b/interface/web/admin/lib/lang/se_server_php_list.lng index f5762ad3a6573b8465e7cef786a8e283d8283294..b2f8b5511219e8538d8e1ad32d24d01c0d656245 100644 --- a/interface/web/admin/lib/lang/se_server_php_list.lng +++ b/interface/web/admin/lib/lang/se_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Lägg till ny PHP-version'; $wb['client_id_txt'] = 'Kund'; $wb['name_txt'] = 'PHP-namn'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index c9ccca89e996dca53e8104f12b98f03341416691..bf24b9852b8b275da9a8d8f7b143271bf7d760c8 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Redigera dess värden försiktigt! Ta inte bort prefix pÃ¥ system med mer än en kund.'; $wb['dbname_prefix_txt'] = 'Prefix för databasnamn'; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administratörens epostadress'; $wb['monitor_key_txt'] = 'Bevakning nyckelord'; $wb['admin_name_txt'] = 'Administratörens namn'; $wb['maintenance_mode_txt'] = 'UnderhÃ¥llsläge'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Använd SMTP för att skicka systemmail'; $wb['smtp_host_txt'] = 'SMTP-värd'; $wb['smtp_port_txt'] = 'SMTP-port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/se_users.lng b/interface/web/admin/lib/lang/se_users.lng index ac56cdf083565792415fdd170f839eddfc6e7743..4f8814842cda5c7fadf7ef593f1f48e2a67023dc 100644 --- a/interface/web/admin/lib/lang/se_users.lng +++ b/interface/web/admin/lib/lang/se_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'Användarnamn'; $wb['username_err'] = 'användarnamn_fel'; $wb['passwort_txt'] = 'Lösenord'; diff --git a/interface/web/admin/lib/lang/sk_directive_snippets.lng b/interface/web/admin/lib/lang/sk_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/sk_directive_snippets.lng +++ b/interface/web/admin/lib/lang/sk_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/sk_remote_user.lng b/interface/web/admin/lib/lang/sk_remote_user.lng index 200cd288613a6e1a0e6144ac11dccdf5d2685313..d6cee727572c01f4c89a9fcdbc6848af5b6b235f 100644 --- a/interface/web/admin/lib/lang/sk_remote_user.lng +++ b/interface/web/admin/lib/lang/sk_remote_user.lng @@ -1,4 +1,5 @@ <?php +$wb['remote_user_txt'] = 'Remote User'; $wb['username_txt'] = 'Uživateľ'; $wb['password_txt'] = 'Heslo'; $wb['function_txt'] = 'Funkcia'; @@ -34,6 +35,7 @@ $wb['DNS alias functions'] = 'DNS alias functions'; $wb['DNS cname functions'] = 'DNS cname functions'; $wb['DNS hinfo functions'] = 'DNS hinfo functions'; $wb['DNS mx functions'] = 'DNS mx functions'; +$wb['DNS naptr functions'] = 'DNS naptr functions'; $wb['DNS ns functions'] = 'DNS ns functions'; $wb['DNS ptr functions'] = 'DNS ptr functions'; $wb['DNS rp functions'] = 'DNS rp functions'; diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 9d4703c4b3b0aff9f56d4ef98986f7a078470fab..50c8c0b4c9d0bac3c70cc96802c8d430ab0ab2e3 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['jailkit_chroot_home_txt'] = 'Jailkit chroot domov'; $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sekcia'; $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted aplikácia'; @@ -9,6 +12,9 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; $wb['website_basedir_txt'] = 'Website základny adresár'; $wb['vhost_conf_dir_txt'] = 'Vhost konfig adresár'; $wb['vhost_conf_enabled_dir_txt'] = 'Vhost konfig odblokovaný adresár'; +$wb['apache_init_script_txt'] = 'InicializaÄný skript Apache'; +$wb['apache_init_script_note_txt'] = 'Ak ponecháte toto pole prázdne, automaticky zistà iniciaÄný skript Apache'; +$wb['apache_init_script_error_regex'] = 'Neplatný iniciaÄný skript Apache.'; $wb['getmail_config_dir_txt'] = 'Getmail konfig adresár'; $wb['fastcgi_starter_path_txt'] = 'FastCGI starter cesta'; $wb['fastcgi_starter_script_txt'] = 'FastCGI starter skript'; @@ -81,7 +87,7 @@ $wb['backup_dir_txt'] = 'Backup directory'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini path'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini path'; -$wb['check_apache_config_txt'] = 'Test apache configuration on restart'; +$wb['check_apache_config_txt'] = 'Test webserver configuration on restart'; $wb['ufw_enable_txt'] = 'Enable'; $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules'; $wb['ufw_ipv6_txt'] = 'Enable IPv6'; @@ -261,13 +267,13 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; $wb['php_handler_txt'] = 'Default PHP Handler'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; $wb['disabled_txt'] = 'Disabled'; $wb['dkim_strength_txt'] = 'DKIM strength'; $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; $wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; $wb['web_settings_txt'] = 'Web Server'; $wb['xmpp_server_txt'] = 'XMPP Server'; $wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; @@ -292,7 +298,16 @@ $wb['logging_txt'] = 'Store website access and error logs'; $wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_ip.lng b/interface/web/admin/lib/lang/sk_server_ip.lng index 65915cc56b803ee0291d9514d2410eb2a6c885e7..02f84ded4c462f04133eae562e404561d48c03b3 100644 --- a/interface/web/admin/lib/lang/sk_server_ip.lng +++ b/interface/web/admin/lib/lang/sk_server_ip.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Server'; $wb['ip_address_txt'] = 'IP Adresa'; $wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; diff --git a/interface/web/admin/lib/lang/sk_server_ip_map.lng b/interface/web/admin/lib/lang/sk_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644 --- a/interface/web/admin/lib/lang/sk_server_ip_map.lng +++ b/interface/web/admin/lib/lang/sk_server_ip_map.lng @@ -1,4 +1,6 @@ <?php +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; $wb['server_id_txt'] = 'Rewrite on Server'; $wb['source_txt'] = 'Source IP'; $wb['destination_txt'] = 'Destination IP'; diff --git a/interface/web/admin/lib/lang/sk_server_php_list.lng b/interface/web/admin/lib/lang/sk_server_php_list.lng index b402fd1ed19978b32027a9ed16e7b44f241db93e..291302cbb72f6b6ac12dc3e6cb95f18e9dcde90f 100644 --- a/interface/web/admin/lib/lang/sk_server_php_list.lng +++ b/interface/web/admin/lib/lang/sk_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index fdeb1648c47e069b12b32533c1a0033338de5634..2fdce03e691badf87b628a17e21c66ee2d50995d 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -1,4 +1,5 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; $wb['warning'] = 'Upravte tieto hodnoty pozorne! Neodstraňujte predpony na systémoch s viac ako jedného klienta.'; $wb['dbname_prefix_txt'] = 'Predpona názvu databázy '; @@ -29,6 +30,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; @@ -81,12 +84,15 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/sk_users.lng b/interface/web/admin/lib/lang/sk_users.lng index d71952fa3ed2dc9379579b758e330e93a2cc77df..b037e307c02528ce754da163ec6faa05d53b4b1c 100644 --- a/interface/web/admin/lib/lang/sk_users.lng +++ b/interface/web/admin/lib/lang/sk_users.lng @@ -1,4 +1,5 @@ <?php +$wb['users_txt'] = 'Users'; $wb['username_txt'] = 'UžÃvateľské meno'; $wb['username_err'] = 'UžÃvateľské meno je prÃliÅ¡ dlhá alebo obsahuje neplatné znaky.'; $wb['username_empty'] = 'UžÃvateľské meno je prázdne.'; diff --git a/interface/web/admin/lib/lang/tr.lng b/interface/web/admin/lib/lang/tr.lng index 23dbc45a49cbd41519ab98f4183c5bcda1136148..9b0dfc59ece09eea1096381ee14b430696594f40 100644 --- a/interface/web/admin/lib/lang/tr.lng +++ b/interface/web/admin/lib/lang/tr.lng @@ -1,20 +1,26 @@ <?php $wb['1001'] = 'Kullanıcı adı ya da parola boÅŸ.'; $wb['1002'] = 'Kullanıcı adı ya da parola hatalı.'; + $wb['Groups'] = 'Gruplar'; $wb['groups_description'] = 'Sistem kullanıcısı gruplarını düzenleme formu.'; + $wb['Servers'] = 'Sunucular'; $wb['Config'] = 'Ayarlar'; -$wb['Add user'] = 'Kullanıcı ekle'; -$wb['Edit user'] = 'Kullanıcıyı düzenle'; -$wb['Add group'] = 'Grup ekle'; -$wb['Edit group'] = 'Grubu düzenle'; -$wb['Edit server'] = 'Sunucuyu düzenle'; -$wb['Sync. Now'] = 'Åžimdi EÅŸleÅŸtir'; -$wb['DB Sync.'] = 'Veritabanı EÅŸleÅŸtirme'; + +$wb['Add user'] = 'Kullanıcı Ekle'; +$wb['Edit user'] = 'Kullanıcıyı Düzenle'; +$wb['Add group'] = 'Grup Ekle'; +$wb['Edit group'] = 'Grubu Düzenle'; +$wb['Edit server'] = 'Sunucuyu Düzenle'; + +$wb['Sync. Now'] = 'Åžimdi EÅŸitle'; +$wb['DB Sync.'] = 'Veritabanı EÅŸitleme'; + $wb['User Management'] = 'Kullanıcı Yönetimi'; $wb['CP Users'] = 'Panel Kullanıcıları'; $wb['Remote Users'] = 'Uzak Kullanıcılar'; + $wb['System'] = 'Sistem'; $wb['Server Services'] = 'Sunucu Hizmetleri'; $wb['Services'] = 'Hizmetler'; @@ -28,25 +34,29 @@ $wb['Jailkit'] = 'Jailkit'; $wb['Rescue'] = 'Kurtarma'; $wb['Server IP addresses'] = 'Sunucu IP Adresleri'; $wb['Additional PHP Versions'] = 'DiÄŸer PHP Sürümleri'; -$wb['Directive Snippets'] = 'Yönerge Parçacıkları'; +$wb['Directive Snippets'] = 'Yönerge Kod Parçaları'; $wb['Firewall'] = 'Güvenlik Duvarı'; + $wb['Interface'] = 'Arayüz'; $wb['Interface Config'] = 'Temel Ayarlar'; +$wb['Sites'] = 'Siteler'; +$wb['DNS'] = 'DNS'; $wb['Domains'] = 'Alan Adları'; $wb['Misc'] = 'ÇeÅŸitli'; + $wb['Software'] = 'Uygulama ve Eklentiler'; $wb['Repositories'] = 'Depolar'; $wb['Packages'] = 'Paketler'; $wb['Updates'] = 'Güncellemeler'; + $wb['Language Editor'] = 'Dil İşlemleri'; $wb['Languages'] = 'Dil Dosyaları'; $wb['New Language'] = 'Dil Ekleme'; $wb['Merge'] = 'Dil BirleÅŸtirme'; $wb['Export'] = 'Dil İndirme'; $wb['Import'] = 'Dil Yükleme'; + $wb['Remote Actions'] = 'Uzak İşlemler'; $wb['Do OS-Update'] = 'İşletim Sistemi Güncelleme'; $wb['Do ISPConfig-Update'] = 'ISPConfig Güncelleme'; -$wb['Sites'] = 'Sites'; -$wb['DNS'] = 'DNS'; ?> diff --git a/interface/web/admin/lib/lang/tr_directive_snippets.lng b/interface/web/admin/lib/lang/tr_directive_snippets.lng index f5034865282259e495dba557390156b9eaa27eb0..4c1cebea4e503d632e193013817c5004d5fb7685 100644 --- a/interface/web/admin/lib/lang/tr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/tr_directive_snippets.lng @@ -1,12 +1,13 @@ <?php -$wb['Directive Snippets'] = 'Yönerge Parçacıkları'; -$wb['name_txt'] = 'Parçacık Adı'; -$wb['type_txt'] = 'Tip'; -$wb['snippet_txt'] = 'Parçacık'; +$wb['Directive Snippets'] = 'Yönerge Kod Parçaları'; +$wb['name_txt'] = 'Kod Parçası Adı'; +$wb['type_txt'] = 'Tür'; +$wb['snippet_txt'] = 'Kod Parçası'; $wb['active_txt'] = 'Etkin'; -$wb['directive_snippets_name_empty'] = 'Parçacık adı boÅŸ olamaz.'; -$wb['directive_snippets_name_error_unique'] = 'Aynı adlı bir yönerge parçacığı zaten var.'; +$wb['directive_snippets_name_empty'] = 'Kod Parçası adı boÅŸ olamaz.'; +$wb['directive_snippets_name_error_unique'] = 'Aynı adlı bir yönerge kod parçası zaten var.'; $wb['variables_txt'] = 'DeÄŸiÅŸkenler'; -$wb['customer_viewable_txt'] = 'Customer viewable'; -$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['customer_viewable_txt'] = 'Müşteri görebilir'; +$wb['required_php_snippets_txt'] = 'Gerekli PHP Parçası'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/tr_directive_snippets_list.lng b/interface/web/admin/lib/lang/tr_directive_snippets_list.lng index 766a194dc1556cc77e5c92c7ce162b5e2f029e65..4a1fb954a526b0100e9ba1076c9672eb92ad04e6 100644 --- a/interface/web/admin/lib/lang/tr_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/tr_directive_snippets_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Yönerge Parçacıkları'; +$wb['list_head_txt'] = 'Yönerge Kod Parçaları'; $wb['active_txt'] = 'Etkin'; -$wb['name_txt'] = 'Parçacık Adı'; -$wb['type_txt'] = 'Tip'; -$wb['add_new_record_txt'] = 'Yönerge Parçacığı Ekle'; -$wb['customer_viewable_txt'] = 'Customer viewable'; +$wb['name_txt'] = 'Kod Parçası Adı'; +$wb['type_txt'] = 'Tür'; +$wb['add_new_record_txt'] = 'Yönerge Kod Parçası Ekle'; +$wb['customer_viewable_txt'] = 'Müşteri Görebilsin'; ?> diff --git a/interface/web/admin/lib/lang/tr_firewall.lng b/interface/web/admin/lib/lang/tr_firewall.lng index a45998d4e1dc8c73104456e044b03a2eb9c21b71..9e853c7bde18718ec3a520fc070ea7604f5aa466 100644 --- a/interface/web/admin/lib/lang/tr_firewall.lng +++ b/interface/web/admin/lib/lang/tr_firewall.lng @@ -6,6 +6,7 @@ $wb['tcp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['active_txt'] = 'Etkin'; $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.'; -$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; -$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; +$wb['active_txt'] = 'Etkin'; +$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; +$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; ?> diff --git a/interface/web/admin/lib/lang/tr_groups.lng b/interface/web/admin/lib/lang/tr_groups.lng index d41fcace9d742d6dfe6f25c578a3a85741cca543..4bf60a284bb3c5502afecb545612bc3a97c36ba8 100644 --- a/interface/web/admin/lib/lang/tr_groups.lng +++ b/interface/web/admin/lib/lang/tr_groups.lng @@ -1,5 +1,5 @@ <?php $wb['description_txt'] = 'Açıklama'; $wb['name_txt'] = 'Grup'; -$wb['name_err'] = 'Grup 1-30 karakter arasında olmalı.'; +$wb['name_err'] = 'Grup 1 ile 30 karakter arasında olmalı.'; ?> diff --git a/interface/web/admin/lib/lang/tr_iptables.lng b/interface/web/admin/lib/lang/tr_iptables.lng index dcec556485f843e6da8d7cc49bcce43d0304eba2..970bc23931fe71d106a754b0297b25107aad8d38 100644 --- a/interface/web/admin/lib/lang/tr_iptables.lng +++ b/interface/web/admin/lib/lang/tr_iptables.lng @@ -1,4 +1,5 @@ <?php + $wb['server_id_txt'] = 'Sunucu'; $wb['multiport_txt'] = 'Çok Kapı'; $wb['singleport_txt'] = 'Tek Kapı'; @@ -10,4 +11,5 @@ $wb['destination_ip_txt'] = 'Hedef Adresi'; $wb['source_ip_txt'] = 'Kaynak Adresi'; $wb['active_txt'] = 'Etkin'; $wb['iptables_error_unique'] = 'Bu sunucu için zaten bir güvenlik duvarı kaydı var.'; + ?> diff --git a/interface/web/admin/lib/lang/tr_iptables_list.lng b/interface/web/admin/lib/lang/tr_iptables_list.lng index a884ef7f7868bfcf148e208434d975f06276eb84..ba8a1345fef4e1d4444ebdc15f29f595da6a278f 100644 --- a/interface/web/admin/lib/lang/tr_iptables_list.lng +++ b/interface/web/admin/lib/lang/tr_iptables_list.lng @@ -1,4 +1,5 @@ <?php + $wb['list_head_txt'] = 'IPTables'; $wb['add_new_rule_txt'] = 'IPTables Kuralı Ekle'; $wb['server_id_txt'] = 'Sunucu'; @@ -12,4 +13,5 @@ $wb['destination_ip_txt'] = 'Hedef Adresi'; $wb['source_ip_txt'] = 'Kaynak Adresi'; $wb['active_txt'] = 'Etkin'; $wb['iptables_error_unique'] = 'Bu sunucu için zaten bir güvenlik duvarı kaydı var.'; + ?> diff --git a/interface/web/admin/lib/lang/tr_language_import.lng b/interface/web/admin/lib/lang/tr_language_import.lng index 581fcb597406e5e5971ab4d8e7356d805a946e9f..be319837ddc222fcc3e4f5054fb45ddbf23476a6 100644 --- a/interface/web/admin/lib/lang/tr_language_import.lng +++ b/interface/web/admin/lib/lang/tr_language_import.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'Dil Paketi Yükleme'; $wb['list_desc_txt'] = 'UYARI: Güvenilmeyen kaynaklardan aldığınız dil paketlerini yüklemeyin.'; $wb['language_import_txt'] = 'Yüklenecek Dil Dosyası'; $wb['btn_save_txt'] = 'Dil Paketini Yükle'; -$wb['language_overwrite_txt'] = 'Var olan dosyaları deÄŸiÅŸtir'; +$wb['language_overwrite_txt'] = 'Var Olan Dosyalar DeÄŸiÅŸtirilsin'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['ignore_version_txt'] = 'ISPConfig sürümüne bakma'; +$wb['ignore_version_txt'] = 'ISPConfig Sürümü Denetlenmesin'; ?> diff --git a/interface/web/admin/lib/lang/tr_login_as.lng b/interface/web/admin/lib/lang/tr_login_as.lng new file mode 100644 index 0000000000000000000000000000000000000000..b7fc8ff987bebc4ac16d4dd8bcc614cdefbdc13c --- /dev/null +++ b/interface/web/admin/lib/lang/tr_login_as.lng @@ -0,0 +1,12 @@ +<?php +$wb['login_1_txt'] = 'Bu kullanıcı olarak oturum açmak ister misiniz'; +$wb['login_2_txt'] = '"Geri dönmek" için oturumu kapat üzerine tıklayın.'; +$wb['btn_yes_txt'] = 'Evet, Müşteri olarak oturum aç'; +$wb['btn_back_txt'] = 'Hayır, listeye geri dön'; +$wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın'; +$wb['active_txt'] = 'Etkin'; +$wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.'; +$wb['active_txt'] = 'Etkin'; +$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; +$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; +?> diff --git a/interface/web/admin/lib/lang/tr_remote_action.lng b/interface/web/admin/lib/lang/tr_remote_action.lng index c067f67e88758a46f93cca37080a42849731e871..b2ed0a6da747e7f9970348375bce467099ca4165 100644 --- a/interface/web/admin/lib/lang/tr_remote_action.lng +++ b/interface/web/admin/lib/lang/tr_remote_action.lng @@ -1,12 +1,12 @@ <?php $wb['select_server_txt'] = 'Sunucu Seçin'; -$wb['btn_do_txt'] = 'İşlemi BaÅŸlatın'; -$wb['do_osupdate_caption'] = 'Uzak sunucudaki iÅŸletim sistemini güncelleyin'; -$wb['do_osupdate_desc'] = 'Bu iÅŸlem seçilmiÅŸ sunucuda \\"aptitude -y upgrade\\" komutunu yürütür.<br><br><strong>OLUÅžABİLECEK RİSKLER SİZE AİTTİR!</strong>'; -$wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelleyin'; +$wb['btn_do_txt'] = 'İşlemi BaÅŸlat'; +$wb['do_osupdate_caption'] = 'Uzak sunucudaki iÅŸletim sistemini güncelle'; +$wb['do_osupdate_desc'] = 'Bu iÅŸlem seçilmiÅŸ sunucuda komutunu yürütür.<br><br><strong>OLUÅžABİLECEK RİSKLER SİZE AİTTİR!</strong>'; +$wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelle'; $wb['do_ispcupdate_desc'] = 'Bu iÅŸlem seçilmiÅŸ sunucuda ISPConfig3 güncellemesini yürütür.<br><br><strong>OLUÅžABİLECEK RİSKLER SÜZE AİTTİR!</strong>'; $wb['action_scheduled'] = 'İşlem yürütülmek üzere zamanlandı'; $wb['select_all_server'] = 'Tüm Sunucularda'; $wb['ispconfig_update_title'] = 'ISPConfig güncelleme yönergeleri'; -$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini baÅŸlatmak için<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />komutunu yürütün.<br /><br /><a href=\\"http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\\" target=\\"_blank\\">Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın</a>'; +$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini baÅŸlatmak için<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />komutunu yürütün.<br /><br /><a href= target=>Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın</a>'; ?> diff --git a/interface/web/admin/lib/lang/tr_remote_user.lng b/interface/web/admin/lib/lang/tr_remote_user.lng index d9e11f8308aee177653e7c8580690d98d7f29762..5c2746f7ccf0c88ffd72c0694547576d8374b34c 100644 --- a/interface/web/admin/lib/lang/tr_remote_user.lng +++ b/interface/web/admin/lib/lang/tr_remote_user.lng @@ -1,50 +1,52 @@ <?php -$wb['username_txt'] = 'Kullanıcı adı:'; +$wb['remote_user_txt'] = 'Remote User'; +$wb['username_txt'] = 'Kullanıcı Adı:'; $wb['password_txt'] = 'Parola:'; $wb['function_txt'] = 'İşlevler:'; $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var'; $wb['username_error_empty'] = 'Kullanıcı adı boÅŸ olamaz'; $wb['password_error_empty'] = 'Parola boÅŸ olamaz'; -$wb['password_strength_txt'] = 'Parola Güçlüğü:'; -$wb['Mail domain functions'] = 'Posta alan adı iÅŸlevleri'; -$wb['Mail mailing list functions'] = 'Posta posta listesi iÅŸlevleri'; -$wb['Mail user functions'] = 'Posta kullanıcı iÅŸlevleri'; -$wb['Mail alias functions'] = 'Posta takma ad iÅŸlevleri'; -$wb['Mail forward functions'] = 'Posta yönlendirme iÅŸlevleri'; -$wb['Mail catchall functions'] = 'Posta tümünü al iÅŸlevleri'; -$wb['Mail transport functions'] = 'Posta aktarım iÅŸlevleri'; -$wb['Mail whitelist functions'] = 'Posta beyaz liste iÅŸlevleri'; -$wb['Mail blacklist functions'] = 'Posta kara liste iÅŸlevleri'; -$wb['Mail spamfilter user functions'] = 'Posta önemsiz posta süzgeci kullanıcı iÅŸlevleri'; -$wb['Mail spamfilter policy functions'] = 'Posta önemsiz posta süzgeci kuralları iÅŸlevleri'; -$wb['Mail fetchmail functions'] = 'Posta posta alma iÅŸlevleri'; -$wb['Mail user filter functions'] = 'Posta kullanıcı ve süzgeç iÅŸlevleri'; -$wb['Mail filter functions'] = 'Posta süzgeç iÅŸlevleri'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu:'; +$wb['Mail domain functions'] = 'E-posta etki alanı iÅŸlevleri'; +$wb['Mail mailing list functions'] = 'E-posta e-posta listesi iÅŸlevleri'; +$wb['Mail user functions'] = 'E-posta kullanıcı iÅŸlevleri'; +$wb['Mail alias functions'] = 'E-posta takma ad iÅŸlevleri'; +$wb['Mail forward functions'] = 'E-posta yönlendirme iÅŸlevleri'; +$wb['Mail catchall functions'] = 'E-posta tümünü al iÅŸlevleri'; +$wb['Mail transport functions'] = 'E-posta aktarım iÅŸlevleri'; +$wb['Mail whitelist functions'] = 'E-posta beyaz liste iÅŸlevleri'; +$wb['Mail blacklist functions'] = 'E-posta kara liste iÅŸlevleri'; +$wb['Mail spamfilter user functions'] = 'E-posta önemsiz ileti süzgeci kullanıcı iÅŸlevleri'; +$wb['Mail spamfilter policy functions'] = 'E-posta önemsiz ileti süzgeci kuralları iÅŸlevleri'; +$wb['Mail fetchmail functions'] = 'E-posta e-posta alma iÅŸlevleri'; +$wb['Mail user filter functions'] = 'E-posta kullanıcı ve süzgeç iÅŸlevleri'; +$wb['Mail filter functions'] = 'E-posta süzgeç iÅŸlevleri'; $wb['Client functions'] = 'Müşteri iÅŸlevleri'; $wb['Sites cron functions'] = 'Sitelerin zamanlanmış görev iÅŸlevleri'; $wb['Sites database functions'] = 'Sitelerin veritabanı iÅŸlevleri'; $wb['Sites FTP-User functions'] = 'Sitelerin FTP kullanıcısı iÅŸlevleri'; $wb['Sites Shell-User functions'] = 'Sitelerin kabuk kullanıcısı iÅŸlevleri'; -$wb['Sites Domain functions'] = 'Sitelerin alan adı iÅŸlevleri'; -$wb['Sites Aliasdomain functions'] = 'Sitelerin takma alan adı iÅŸlevleri'; -$wb['Sites Subdomain functions'] = 'Sitelerin alt alan adı iÅŸlevleri'; +$wb['Sites Domain functions'] = 'Sitelerin etki alanı iÅŸlevleri'; +$wb['Sites Aliasdomain functions'] = 'Sitelerin takma etki alanı iÅŸlevleri'; +$wb['Sites Subdomain functions'] = 'Sitelerin alt etki alanı iÅŸlevleri'; $wb['DNS zone functions'] = 'DNS bölgesi iÅŸlevleri'; $wb['DNS a functions'] = 'DNS a iÅŸlevleri'; $wb['DNS aaaa functions'] = 'DNS aaaa iÅŸlevleri'; -$wb['DNS alias functions'] = 'DNS takma ad iÅŸlevleri'; +$wb['DNS alias functions'] = 'DNS alias iÅŸlevleri'; $wb['DNS cname functions'] = 'DNS cname iÅŸlevleri'; $wb['DNS hinfo functions'] = 'DNS hinfo iÅŸlevleri'; $wb['DNS mx functions'] = 'DNS mx iÅŸlevleri'; +$wb['DNS naptr functions'] = 'DNS naptr iÅŸlevleri'; $wb['DNS ns functions'] = 'DNS ns iÅŸlevleri'; $wb['DNS ptr functions'] = 'DNS ptr iÅŸlevleri'; $wb['DNS rp functions'] = 'DNS rp iÅŸlevleri'; $wb['DNS srv functions'] = 'DNS srv iÅŸlevleri'; $wb['DNS txt functions'] = 'DNS txt iÅŸlevleri'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['remote_access_txt'] = 'Remote Access'; -$wb['remote_ips_txt'] = 'Remote Access IPs / Hostnames (separate by , and leave blank for <i>any</i>)'; -$wb['remote_user_error_ips'] = 'At least one of the entered ip addresses or hostnames is invalid.'; +$wb['remote_access_txt'] = 'Uzaktan EriÅŸim'; +$wb['remote_ips_txt'] = 'Uzaktan EriÅŸim IP Adresleri / Sunucu Adları (, ile ayırarak yazın ve <i>tümü</i> için boÅŸ bırakın)'; +$wb['remote_user_error_ips'] = 'Yazılmış IP adresi ya da sunucu adlarından en az biri geçersiz.'; ?> diff --git a/interface/web/admin/lib/lang/tr_server.lng b/interface/web/admin/lib/lang/tr_server.lng index 61e0b7dd6b5791ab3cffafb1a4ecefe32b4fc646..bdc70761e1661e020a215f6c8dcfe925a2b4eaa0 100644 --- a/interface/web/admin/lib/lang/tr_server.lng +++ b/interface/web/admin/lib/lang/tr_server.lng @@ -1,16 +1,16 @@ <?php $wb['config_txt'] = 'Ayarlar'; $wb['server_name_txt'] = 'Sunucu Adı'; -$wb['mail_server_txt'] = 'Posta Sunucusu'; +$wb['mail_server_txt'] = 'E-posta Sunucusu'; $wb['web_server_txt'] = 'Web Sunucusu'; $wb['dns_server_txt'] = 'DNS Sunucusu'; $wb['file_server_txt'] = 'Dosya Sunucusu'; $wb['db_server_txt'] = 'Veritabanı Sunucusu'; -$wb['vserver_server_txt'] = 'SSunucu Sunucusu'; +$wb['vserver_server_txt'] = 'sSunucu Sunucusu'; $wb['proxy_server_txt'] = 'Vekil Sunucu'; $wb['firewall_server_txt'] = 'Güvenlik Duvarı Sunucusu'; $wb['active_txt'] = 'Etkin'; $wb['mirror_server_id_txt'] = 'Sunucunun Yansısı'; $wb['- None -'] = '- Hiçbiri -'; -$wb['xmpp_server_txt'] = 'XMPP Server'; +$wb['xmpp_server_txt'] = 'XMPP Sunucusu'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index b6a742781d0c6974b43c8bfc804e02d73861da89..09aa3adf2d9bd484cd242db73f572a3b23230872 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -1,4 +1,7 @@ <?php +$wb['server_config'] = 'Server Config'; +$wb['server_config_error_not_updated'] = 'Error in Server Config: not updated'; +$wb['server_config_error_section_not_updated'] = 'Error in Server Config: %s section not updated'; $wb['ufw_enable_txt'] = 'Etkin'; $wb['ufw_manage_builtins_txt'] = 'İç Kural Yönetimi'; $wb['ufw_ipv6_txt'] = 'IPv6 Kullanılsın'; @@ -13,13 +16,16 @@ $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chroot Uygulamaları'; $wb['jailkit_chroot_cron_programs_txt'] = 'Jailkit Zamanlanmış Görev chroot Uygulamaları'; $wb['website_path_txt'] = 'Web Sitesi Yolu'; $wb['website_symlinks_txt'] = 'Web Sitesi Sembolik BaÄŸlantıları'; -$wb['website_symlinks_rel_txt'] = 'Sembolik BaÄŸlantılar Bağıl Olsun'; +$wb['website_symlinks_rel_txt'] = 'Sembolik BaÄŸlantılar Göreli Olsun'; $wb['website_basedir_txt'] = 'Web Sitesi Klasörü'; $wb['website_autoalias_txt'] = 'Otomatik Web Sitesi Takma Adı'; $wb['website_autoalias_note_txt'] = 'Kodlar:'; -$wb['vhost_conf_dir_txt'] = 'SSunucu Ayar Klasörü'; -$wb['vhost_conf_enabled_dir_txt'] = 'Etkin SSunucu Ayar Klasörü'; -$wb['getmail_config_dir_txt'] = 'Getmail Ayar Klasörü'; +$wb['vhost_conf_dir_txt'] = 'Sanal Sunucu Ayarları Klasörü'; +$wb['vhost_conf_enabled_dir_txt'] = 'Etkin Sanal Sunucu Ayarları Klasörü'; +$wb['apache_init_script_txt'] = 'Apache init betiÄŸi'; +$wb['apache_init_script_note_txt'] = 'Bu deÄŸerin boÅŸ bırakılması Apache init betiÄŸini otomatik olarak algılar'; +$wb['apache_init_script_error_regex'] = 'Geçersiz Apache init betiÄŸi.'; +$wb['getmail_config_dir_txt'] = 'Getmail Ayarları Klasörü'; $wb['fastcgi_starter_path_txt'] = 'FastCGI BaÅŸlatıcı Yolu'; $wb['fastcgi_starter_script_txt'] = 'FastCGI BaÅŸlatıcı BetiÄŸi'; $wb['fastcgi_alias_txt'] = 'FastCGI Takma Adı'; @@ -28,16 +34,24 @@ $wb['fastcgi_children_txt'] = 'FastCGI ÇocuÄŸu'; $wb['fastcgi_max_requests_txt'] = 'FastCGI En Fazla İstek'; $wb['fastcgi_bin_txt'] = 'FastCGI Bin'; $wb['module_txt'] = 'Modül'; -$wb['maildir_path_txt'] = 'Posta Klasörü Yolu'; +$wb['maildir_path_txt'] = 'E-posta Klasörü Yolu'; +$wb['maildir_format_txt'] = 'E-posta Klasörü Biçimi'; $wb['homedir_path_txt'] = 'Kullanıcı Klasörü Yolu'; -$wb['mailuser_uid_txt'] = 'Posta Kullanıcısı UID'; -$wb['mailuser_gid_txt'] = 'Posta Kullanıcısı GID'; -$wb['mailuser_name_txt'] = 'Posta Kullanıcısı Adı'; -$wb['mailuser_group_txt'] = 'Posta Kullanıcısı Grubu'; +$wb['dkim_path_txt'] = 'DKIM Yolu'; +$wb['mailuser_uid_txt'] = 'E-posta Kullanıcısı UID'; +$wb['mailuser_gid_txt'] = 'E-posta Kullanıcısı GID'; +$wb['mailuser_name_txt'] = 'E-posta Kullanıcısı Adı'; +$wb['mailuser_group_txt'] = 'E-posta Kullanıcısı Grubu'; +$wb['mailbox_virtual_uidgid_maps_txt'] = 'E-posta Kutusunda Web Sitesinin Linux Kullanıcı Kodu Kullanılsın'; +$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'Yalnız tek bir web ve e-posta sunucusu kurulumunda'; +$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Çoklu sunucu kurulumunda UID eÅŸleÅŸtirilemez.'; +$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'UID eÅŸleÅŸtirmesi yalnız dovecot ile kullanılabilir.'; +$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Daha önce oluÅŸturulmuÅŸ e-posta kullanıcıları varsa UID eÅŸleÅŸtirme deÄŸiÅŸtirilemez.'; $wb['relayhost_txt'] = 'Aktarım Sunucusu'; $wb['relayhost_user_txt'] = 'Aktarım Sunucu Kullanıcı Adı'; $wb['relayhost_password_txt'] = 'Aktarım Sunucu Parolası'; -$wb['mailbox_size_limit_txt'] = 'Posta Kutusu Boyutu Sınırı'; +$wb['reject_sender_login_mismatch_txt'] = 'Gönderen ile Oturum Açmış Kullanıcı EÅŸleÅŸmiyorsa Reddedilsin'; +$wb['mailbox_size_limit_txt'] = 'E-posta Kutusu Boyutu Sınırı'; $wb['message_size_limit_txt'] = 'İleti Boyutu Sınırı'; $wb['ip_address_txt'] = 'IP Adresi'; $wb['netmask_txt'] = 'AÄŸ Maskesi'; @@ -51,69 +65,73 @@ $wb['gateway_error_wrong'] = 'AÄŸ geçidi biçimi geçersiz.'; $wb['hostname_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['hostname_error_regex'] = 'Sunucu adı geçersiz.'; $wb['nameservers_error_empty'] = 'Ad sunucusu boÅŸ olamaz.'; -$wb['config_dir_txt'] = 'Ayar Klasörü'; +$wb['config_dir_txt'] = 'Ayarlar Klasörü'; $wb['init_script_txt'] = 'Zamanlanmış Görev BaÅŸlatma BetiÄŸinin Adı'; $wb['crontab_dir_txt'] = 'Bireysel Zamanlanmış Görevler Yolu'; -$wb['wget_txt'] = 'wget Yazılımının Yolu'; +$wb['wget_txt'] = 'wget Uygulamasının Yolu'; $wb['web_user_txt'] = 'Apache Kullanıcı Adı'; $wb['web_group_txt'] = 'Apache Grubu'; $wb['security_level_txt'] = 'Güvenlik Düzeyi'; $wb['loglevel_txt'] = 'Günlükleme Düzeyi'; -$wb['apps_vhost_port_txt'] = 'Apps-vhost Kapısı'; -$wb['apps_vhost_ip_txt'] = 'Apps-vhost IP Adresi'; -$wb['apps_vhost_servername_txt'] = 'Apps-vhost Alan Adı'; +$wb['apps_vhost_port_txt'] = 'Uygulama Sanal Sunucusu Kapısı'; +$wb['apps_vhost_ip_txt'] = 'Uygulama Sanal Sunucusu IP Adresi'; +$wb['apps_vhost_servername_txt'] = 'Uygulama Sanal Sunucusu Etki Alanı'; $wb['bind_user_txt'] = 'BIND Kullanıcı Adı'; $wb['bind_group_txt'] = 'BIND Grubu'; -$wb['bind_zonefiles_dir_txt'] = 'BIND zonefiles Klasörü'; +$wb['bind_zonefiles_dir_txt'] = 'BIND Bölge Dosyaları Klasörü'; $wb['named_conf_path_txt'] = 'BIND named.conf Dosyası Yolu'; $wb['bind_user_error_empty'] = 'BIND kullanıcı adı boÅŸ olamaz.'; $wb['bind_group_error_empty'] = 'BIND grubu boÅŸ olamaz.'; -$wb['bind_zonefiles_dir_error_empty'] = 'BIND zonefiles klasörü boÅŸ olamaz.'; +$wb['bind_zonefiles_dir_error_empty'] = 'BIND bölge dosyaları klasörü boÅŸ olamaz.'; $wb['named_conf_path_error_empty'] = 'BIND named.conf dosyası yolu boÅŸ olamaz.'; $wb['named_conf_local_path_error_empty'] = 'BIND named.conf.local dosyasının yolu boÅŸ olamaz.'; -$wb['mail_filter_syntax_txt'] = 'Posta Süzgeci Yazımı'; +$wb['mail_filter_syntax_txt'] = 'E-posta Süzgeci Yazımı'; $wb['pop3_imap_daemon_txt'] = 'POP3/IMAP Sunucusu'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['php_open_basedir_error_empty'] = 'PHP open_basedir boÅŸ olamaz.'; $wb['htaccess_allow_override_txt'] = '.htaccess AllowOverride'; $wb['htaccess_allow_override_error_empty'] = '.htaccess AllowOverride boÅŸ olamaz.'; -$wb['awstats_conf_dir_txt'] = 'Awstats Ayar Klasörü'; +$wb['awstats_conf_dir_txt'] = 'Awstats Ayarları Klasörü'; $wb['awstats_data_dir_txt'] = 'Awstats Veri Klasörü'; $wb['awstats_pl_txt'] = 'awstats.pl BetiÄŸi'; $wb['awstats_buildstaticpages_pl_txt'] = 'awstats_buildstaticpages.pl BetiÄŸi'; $wb['backup_dir_txt'] = 'Yedek Klasörü'; +$wb['backup_tmp_txt'] = 'Geçici Zip Yedek Klasörü'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local Yolu'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini Yolu'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini Yolu'; -$wb['check_apache_config_txt'] = 'Yeniden baÅŸlatıldığında apache ayarları denetlensin'; -$wb['network_config_warning_txt'] = 'AÄŸ ayarlama seçeneÄŸi yalnız Debian ve Ubuntu sunucularda kullanılabilir. AÄŸ arayüzünüz eth0 deÄŸil ise bu seçeneÄŸi etkinleÅŸtirmeyin.'; +$wb['check_apache_config_txt'] = 'Apache Ayarları Yeniden BaÅŸlatmalarda Denetlensin'; +$wb['network_config_warning_txt'] = 'AÄŸ ayarlama seçeneÄŸi yalnız Debian ve Ubuntu sunucularda kullanılabilir. AÄŸ arayüzü eth0 deÄŸil ise bu seçeneÄŸi etkinleÅŸtirmeyin.'; $wb['CA_path_txt'] = 'CA Yolu'; -$wb['CA_pass_txt'] = 'CA parolası'; +$wb['CA_pass_txt'] = 'CA Parolası'; $wb['fastcgi_config_syntax_txt'] = 'FastCGI Ayar Yazımı'; $wb['backup_mode_txt'] = 'Yedekleme Kipi'; $wb['backup_mode_userzip'] = 'Web kullanıcısına ait web dosyaları ZIP biçiminde yedeklensin'; $wb['backup_mode_rootgz'] = 'Web klasöründeki tüm dosyalar root kullanıcısı olarak yedeklensin'; -$wb['server_type_txt'] = 'Sunucu Tipi'; -$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Vhost ayar klasörü'; -$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Nginx Vhost etkin ayar klasörü'; +$wb['tmpdir_path_error_empty'] = 'tmp klasörü yolu boÅŸ olamaz.'; +$wb['tmpdir_path_error_regex'] = 'tmp klasörü yolu geçersiz.'; +$wb['backup_time_txt'] = 'Yedekleme Zamanı'; +$wb['server_type_txt'] = 'Sunucu Türü'; +$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Sanal Sunucu Ayarları Klasörü'; +$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Etkin Nginx sanal sunucu ayarları klasörü'; $wb['nginx_user_txt'] = 'Nginx kullanıcı adı'; $wb['nginx_group_txt'] = 'Nginx grubu'; $wb['nginx_cgi_socket_txt'] = 'Nginx CGI Soketi'; $wb['backup_dir_error_empty'] = 'Yedekleme klasörü boÅŸ olamaz.'; -$wb['maildir_path_error_empty'] = 'Posta klasörü yolu boÅŸ olamaz.'; +$wb['maildir_path_error_empty'] = 'E-posta klasörü yolu boÅŸ olamaz.'; $wb['homedir_path_error_empty'] = 'Kullanıcı klasörü yolu boÅŸ olamaz.'; -$wb['mailuser_uid_error_empty'] = 'Posta kullanıcısı UID boÅŸ olamaz.'; -$wb['mailuser_gid_error_empty'] = 'Posta kullanıcısı GID boÅŸ olamaz.'; -$wb['mailuser_name_error_empty'] = 'Posta kullanıcısı adı boÅŸ olamaz.'; -$wb['mailuser_group_error_empty'] = 'Posta kullanıcısı grubu boÅŸ olamaz.'; -$wb['getmail_config_dir_error_empty'] = 'Getmail ayar klasörü boÅŸ olamaz.'; +$wb['mailuser_uid_error_empty'] = 'E-posta kullanıcısı UID boÅŸ olamaz.'; +$wb['mailuser_gid_error_empty'] = 'E-posta kullanıcısı GID boÅŸ olamaz.'; +$wb['mailuser_name_error_empty'] = 'E-posta kullanıcısı adı boÅŸ olamaz.'; +$wb['mailuser_group_error_empty'] = 'E-posta kullanıcısı grubu boÅŸ olamaz.'; +$wb['getmail_config_dir_error_empty'] = 'Getmail ayarları klasörü boÅŸ olamaz.'; $wb['website_basedir_error_empty'] = 'Web sitesi kök klasörü boÅŸ olamaz.'; $wb['website_path_error_empty'] = 'Web sitesi yolu boÅŸ olamaz.'; $wb['website_symlinks_error_empty'] = 'Web sitesi sembolik baÄŸlantısı boÅŸ olamaz.'; -$wb['vhost_conf_dir_error_empty'] = 'Vhost ayar klasörü boÅŸ olamaz.'; -$wb['vhost_conf_enabled_dir_error_empty'] = 'Vhost etkin ayar klasörü boÅŸ olamaz.'; -$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx Vhost ayar klasörü boÅŸ olamaz.'; -$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Nginx Vhost etkin ayar klasörü boÅŸ olamaz.'; +$wb['vhost_conf_dir_error_empty'] = 'Sanal sunucu ayarları klasörü boÅŸ olamaz.'; +$wb['vhost_conf_enabled_dir_error_empty'] = 'Etkin sanal sunucu ayarları klasörü boÅŸ olamaz.'; +$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx sanal sunucu ayarları klasörü boÅŸ olamaz.'; +$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Etkin nginx sanal sunucu ayarları klasörü boÅŸ olamaz.'; $wb['apache_user_error_empty'] = 'Apache kullanıcısı boÅŸ olamaz.'; $wb['apache_group_error_empty'] = 'Apache grubu boÅŸ olamaz.'; $wb['nginx_user_error_empty'] = 'Nginx kullanıcısı boÅŸ olamaz.'; @@ -121,8 +139,8 @@ $wb['nginx_group_error_empty'] = 'Nginx grubu boÅŸ olamaz.'; $wb['php_ini_path_apache_error_empty'] = 'Apache php.ini yolu boÅŸ olamaz.'; $wb['php_ini_path_cgi_error_empty'] = 'CGI php.ini yolu boÅŸ olamaz.'; $wb['nginx_cgi_socket_empty'] = 'Nginx CGI soketi boÅŸ olamaz.'; -$wb['apps_vhost_port_error_empty'] = 'Apps-vhost kapısı boÅŸ olamaz.'; -$wb['apps_vhost_ip_error_empty'] = 'Apps-vhost IP adresi boÅŸ olamaz.'; +$wb['apps_vhost_port_error_empty'] = 'Uygulama sanal sunucusu kapısı boÅŸ olamaz.'; +$wb['apps_vhost_ip_error_empty'] = 'Uygulama sanal sunucusu IP adresi boÅŸ olamaz.'; $wb['fastcgi_starter_path_error_empty'] = 'FastCGI baÅŸlatıcı yolu boÅŸ olamaz.'; $wb['fastcgi_starter_script_error_empty'] = 'FastCGI baÅŸlatıcı betiÄŸi boÅŸ olamaz.'; $wb['fastcgi_alias_error_empty'] = 'FastCGI takma adı boÅŸ olamaz.'; @@ -137,7 +155,7 @@ $wb['jailkit_chroot_cron_programs_error_empty'] = 'Jailkit zamanlanmış görev $wb['vlogger_config_dir_error_empty'] = 'Ayarlar klasörü boÅŸ olamaz.'; $wb['cron_init_script_error_empty'] = 'Zamanlanmış görevler baÅŸlatma betiÄŸi adı boÅŸ olamaz.'; $wb['crontab_dir_error_empty'] = 'Bireysel zamanlanmış görev yolu boÅŸ olamaz.'; -$wb['cron_wget_error_empty'] = 'wget yazılımı yolu boÅŸ olamaz.'; +$wb['cron_wget_error_empty'] = 'wget uygulaması yolu boÅŸ olamaz.'; $wb['php_fpm_init_script_txt'] = 'PHP-FPM BaÅŸlatma BetiÄŸi'; $wb['php_fpm_init_script_error_empty'] = 'PHP-FPM baÅŸlatma betiÄŸi boÅŸ olamaz.'; $wb['php_fpm_ini_path_txt'] = 'PHP-FPM php.ini Yolu'; @@ -148,11 +166,12 @@ $wb['php_fpm_start_port_txt'] = 'PHP-FPM BaÅŸlangıç Kapısı'; $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM baÅŸlangıç kapısı boÅŸ olamaz.'; $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM Soket Klasörü'; $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM soket klasörü boÅŸ olamaz.'; -$wb['try_rescue_txt'] = 'Hizmetler izlensin ve sorun çıktığında yeniden baÅŸlatılsın'; -$wb['do_not_try_rescue_httpd_txt'] = 'HTTPD izlenmesin'; -$wb['do_not_try_rescue_mysql_txt'] = 'MySQL izlenmesin'; -$wb['do_not_try_rescue_mail_txt'] = 'E-posta izlenmesin'; -$wb['rescue_description_txt'] = '<b>Uyarı:</b> mysql sunucusunu kapatmak istiyorsanız \\"MySQL izlenmesin\\" seçeneÄŸini iÅŸaretleyip 2-3 dakika bekleyin.<br>2-3 dakika beklemezseniz, kurtarma iÅŸlemi mysql sunucusunu yeniden baÅŸlatmaya çalışır!'; +$wb['try_rescue_txt'] = 'Hizmetler İzlensin ve Sorun Çıktığında Yeniden BaÅŸlatılsın'; +$wb['do_not_try_rescue_httpd_txt'] = 'HTTPD İzlenmesin'; +$wb['do_not_try_rescue_mongodb_txt'] = 'MongoDB İzlenmesin'; +$wb['do_not_try_rescue_mysql_txt'] = 'MySQL İzlenmesin'; +$wb['do_not_try_rescue_mail_txt'] = 'E-posta İzlenmesin'; +$wb['rescue_description_txt'] = '<b>Uyarı:</b> mysql sunucusunu kapatmak istiyorsanız "MySQL İzlenmesin" seçeneÄŸini etkinleÅŸtirip 2-3 dakika bekleyin.<br>2-3 dakika beklemezseniz, kurtarma iÅŸlemi mysql sunucusunu yeniden baÅŸlatmaya çalışır!'; $wb['enable_sni_txt'] = 'SNI Kullanılsın'; $wb['set_folder_permissions_on_update_txt'] = 'Güncellenirken klasör izinleri ayarlansın'; $wb['add_web_users_to_sshusers_group_txt'] = 'Web kullanıcıları -sshusers- grubuna eklensin'; @@ -163,20 +182,20 @@ $wb['realtime_blackhole_list_note_txt'] = '(RBL adlarını virgül ile ayırarak $wb['ssl_settings_txt'] = 'SSL Ayarları'; $wb['permissions_txt'] = 'İzinler'; $wb['php_settings_txt'] = 'PHP Ayarları'; -$wb['apps_vhost_settings_txt'] = 'Uygulama SSunucu Ayarları'; +$wb['apps_vhost_settings_txt'] = 'Uygulama Sanal Sunucu Ayarları'; $wb['awstats_settings_txt'] = 'AWStats Ayarları'; $wb['firewall_txt'] = 'Güvenlik Duvarı'; -$wb['mailbox_quota_stats_txt'] = 'Posta Kutusu Kota İstatistikleri'; -$wb['enable_ip_wildcard_txt'] = 'IP genel karakteri (*) kullanılsın'; +$wb['mailbox_quota_stats_txt'] = 'E-posta Kutusu Kota İstatistikleri'; +$wb['enable_ip_wildcard_txt'] = 'IP Genel Karakteri (*) Kullanılsın'; $wb['web_folder_protection_txt'] = 'Web klasörleri ayarlanamasın (geniÅŸletilmiÅŸ öznitelikler)'; -$wb['overtraffic_notify_admin_txt'] = 'Yöneticiye aşırı trafik bildirimi gönderilsin'; -$wb['overtraffic_notify_client_txt'] = 'Müşteriye aşırı trafik bildirimi gönderilsin'; +$wb['overtraffic_notify_admin_txt'] = 'Trafik Aşımı Bildirimi Yöneticiye Gönderilsin'; +$wb['overtraffic_notify_client_txt'] = 'Trafik Aşımı Bildirimi Müşteriye Gönderilsin'; $wb['rbl_error_regex'] = 'Lütfen geçerli RBL sunucu adları yazın.'; -$wb['overquota_notify_admin_txt'] = 'Yöneticiye kota uyarıları gönderilsin'; -$wb['overquota_notify_client_txt'] = 'Müşteriye kota uyarıları gönderilsin'; -$wb['overquota_notify_onok_txt'] = 'Müşteriye kota tamam iletisi gönderilsin'; -$wb['overquota_notify_freq_txt'] = 'Kota uyarılarının kaç günde bir gönderileceÄŸi'; -$wb['overquota_notify_freq_note_txt'] = '0 = ileti yalnız bir kez gönderilir, yinelenmez'; +$wb['overquota_notify_admin_txt'] = 'Kota Uyarıları Yöneticiye Gönderilsin'; +$wb['overquota_notify_client_txt'] = 'Kota Uyarıları Müşteriye Gönderilsin'; +$wb['overquota_notify_onok_txt'] = 'Kota Tamam İletisi Müşteriye Gönderilsin'; +$wb['overquota_notify_freq_txt'] = 'Kota Uyarısı Gönderim Sıklığı (Gün)'; +$wb['overquota_notify_freq_note_txt'] = '0 yazıldığında ileti yalnız bir kez gönderilir, yinelenmez'; $wb['admin_notify_events_txt'] = 'Yönetici Bildirim Düzeyi'; $wb['no_notifications_txt'] = 'Bildirim Gönderilmesin'; $wb['monit_url_txt'] = 'Monit Adresi'; @@ -189,24 +208,36 @@ $wb['munin_user_txt'] = 'Munin Kullanıcı Adı'; $wb['munin_password_txt'] = 'Munin Parolası'; $wb['munin_url_error_regex'] = 'Munin adresi geçersiz'; $wb['munin_url_note_txt'] = 'Kod:'; +$wb['v6_prefix_txt'] = 'IPv6 Ön Eki'; +$wb['vhost_rewrite_v6_txt'] = 'Yansı Üzerinde IPv6 Yeniden Yazılsın'; +$wb['v6_prefix_length'] = 'Ön ek tanımlanmış IPv6 adresine göre çok uzun '; $wb['backup_dir_is_mount_txt'] = 'Yedek Klasörü Takılı mı?'; +$wb['backup_dir_mount_cmd_txt'] = 'Mount komutu, yedek klasörü takılı deÄŸil ise'; +$wb['backup_delete_txt'] = 'Etki alanı ya da web sitesi silindiÄŸinde yedekler de silinsin'; +$wb['overquota_db_notify_admin_txt'] = 'Veritabanı Kotası Bildirimleri Yöneticiye Gönderilsin'; +$wb['overquota_db_notify_client_txt'] = 'Veritabanı Kotası Bildirimleri Müşteriye Gönderilsin'; +$wb['monitor_system_updates_txt'] = 'Linux Güncellemeleri Denetlensin'; +$wb['php_handler_txt'] = 'Varsayılan PHP İşleyici'; +$wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM'; +$wb['disabled_txt'] = 'Devre Dışı'; +$wb['dkim_strength_txt'] = 'DKIM zorluÄŸu'; $wb['monitor_system_updates_txt'] = 'Linux Güncelleme Denetimi'; $wb['invalid_apache_user_txt'] = 'Apache kullanıcısı geçersiz.'; $wb['invalid_apache_group_txt'] = 'Apache grubu geçersiz.'; $wb['backup_dir_error_regex'] = 'Yedek klasörü geçersiz.'; -$wb['maildir_path_error_regex'] = 'Posta klasörü yolu geçersiz.'; +$wb['maildir_path_error_regex'] = 'E-posta klasörü yolu geçersiz.'; $wb['homedir_path_error_regex'] = 'Kullanıcı klasörü yolu geçersiz.'; -$wb['mailuser_name_error_regex'] = 'Posta kullanıcısı adı geçersiz.'; -$wb['mailuser_group_name_error_regex'] = 'Posta kullanıcısı grup adı geçersiz.'; -$wb['mailuser_uid_error_range'] = 'Posta kullanıcısı UID deÄŸeri >= 2000 olmalıdır'; -$wb['mailuser_gid_error_range'] = 'Posta kullanıcısı GID deÄŸeri >= 2000 olmalıdır'; -$wb['getmail_config_dir_error_regex'] = 'Getmail ayar klasörü geçersiz.'; +$wb['mailuser_name_error_regex'] = 'E-posta kullanıcısı adı geçersiz.'; +$wb['mailuser_group_name_error_regex'] = 'E-posta kullanıcısı grup adı geçersiz.'; +$wb['mailuser_uid_error_range'] = 'E-posta kullanıcısı UID deÄŸeri >= 2000 olmalıdır'; +$wb['mailuser_gid_error_range'] = 'E-posta kullanıcısı GID deÄŸeri >= 2000 olmalıdır'; +$wb['getmail_config_dir_error_regex'] = 'Getmail ayarları klasörü geçersiz.'; $wb['website_basedir_error_regex'] = 'Web sitesi kök klasörü geçersiz.'; $wb['website_symlinks_error_regex'] = 'Web sitesi sembolik baÄŸlantıları geçersiz.'; -$wb['vhost_conf_dir_error_regex'] = 'Vhost ayar klasörü geçersiz.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Etkin vhost ayar klasörü geçersiz.'; -$wb['nginx_vhost_conf_dir_error_regex'] = 'Nginx ayar klasörü geçersiz.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Etkin nginx ayar klasörü geçersiz.'; +$wb['vhost_conf_dir_error_regex'] = 'Sanal sunucu ayarları klasörü geçersiz.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Etkin sanal sunucu ayarları klasörü geçersiz.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Nginx ayarları klasörü geçersiz.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Etkin nginx ayarları klasörü geçersiz.'; $wb['ca_path_error_regex'] = 'CA yolu geçersiz.'; $wb['invalid_nginx_user_txt'] = 'nginx kullanıcısı geçersiz.'; $wb['invalid_nginx_group_txt'] = 'nginx grubu geçersiz.'; @@ -225,7 +256,7 @@ $wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl boÅŸ ola $wb['awstats_buildstaticpages_pl_error_regex'] = 'awstats_buildstaticpages.pl yolu geçersiz.'; $wb['invalid_bind_user_txt'] = 'BIND kullanıcısı geçersiz.'; $wb['invalid_bind_group_txt'] = 'BIND grubu geçersiz.'; -$wb['bind_zonefiles_dir_error_regex'] = 'BIND zonefiles klasörü geçersiz.'; +$wb['bind_zonefiles_dir_error_regex'] = 'BIND bölge dosyaları klasörü geçersiz.'; $wb['named_conf_path_error_regex'] = 'named.conf yolu geçersiz.'; $wb['named_conf_local_path_error_regex'] = 'named.conf.local yolu geçersiz.'; $wb['fastcgi_starter_path_error_regex'] = 'fastcgi baÅŸlatıcı yolu geçersiz.'; @@ -237,62 +268,40 @@ $wb['jailkit_chroot_home_error_regex'] = 'Jailkit chroot kök klasörü geçersi $wb['jailkit_chroot_app_sections_error_regex'] = 'Jailkit chroot bölümleri geçersiz.'; $wb['jailkit_chroot_app_programs_error_regex'] = 'Jailkit chroot app uygulama yazılımları geçersiz.'; $wb['jailkit_chroot_cron_programs_error_regex'] = 'Jailkit chroot zamanlanmış görev yazılımları geçersiz.'; -$wb['vlogger_config_dir_error_regex'] = 'Vlogger ayar klasörü geçersiz.'; +$wb['vlogger_config_dir_error_regex'] = 'Vlogger ayarları klasörü geçersiz.'; $wb['cron_init_script_error_regex'] = 'Zamanlanmış görev baÅŸlatma betiÄŸi geçersiz.'; $wb['crontab_dir_error_regex'] = 'Zamanlanmış görev klasörü geçersiz.'; $wb['cron_wget_error_regex'] = 'Zamanlanmış görev wget yolu geçersiz.'; $wb['network_filesystem_txt'] = 'AÄŸ Dosya Sistemi'; -$wb['maildir_format_txt'] = 'Maildir Format'; -$wb['dkim_path_txt'] = 'DKIM Path'; -$wb['mailbox_virtual_uidgid_maps_txt'] = 'Use Websites Linux uid for mailbox'; -$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'only in single web and mail-server-setup'; -$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped in multi-server-setup.'; -$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.'; -$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.'; -$wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; -$wb['backup_time_txt'] = 'Backup time'; -$wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; -$wb['v6_prefix_txt'] = 'IPv6 Prefix'; -$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; -$wb['v6_prefix_length'] = 'Prefix too long according to defined IPv6 '; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; -$wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; -$wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; -$wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; -$wb['php_handler_txt'] = 'Default PHP Handler'; -$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['disabled_txt'] = 'Disabled'; -$wb['dkim_strength_txt'] = 'DKIM strength'; -$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; -$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; -$wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; -$wb['web_settings_txt'] = 'Web Server'; -$wb['xmpp_server_txt'] = 'XMPP Server'; -$wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; -$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time'; -$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360'; +$wb['php_ini_check_minutes_txt'] = 'Her X dakikada php.ini dosyasındaki deÄŸiÅŸiklikler denetlensin'; +$wb['php_ini_check_minutes_error_empty'] = 'php.ini dosyasındaki deÄŸiÅŸikliklerin kaç dakikada bir denetleneceÄŸini yazın.'; +$wb['php_ini_check_minutes_info_txt'] = '0 = denetim yapılmaz'; +$wb['web_settings_txt'] = 'Web Sunucu'; +$wb['xmpp_server_txt'] = 'XMPP Sunucu'; +$wb['xmpp_use_ipv6_txt'] = 'IPv6 Kullanılsın'; +$wb['xmpp_bosh_max_inactivity_txt'] = 'BOSH için en uzun iÅŸlem yapılmama süresi'; +$wb['xmpp_bosh_timeout_range_wrong'] = '15 ile 360 arasında bir bosh zaman aşımı süresi yazın'; $wb['xmpp_module_saslauth'] = 'saslauth'; -$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)'; -$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)'; -$wb['xmpp_ports_txt'] = 'Component ports'; +$wb['xmpp_server_admins_txt'] = 'Sunucu Yöneticileri (JID)'; +$wb['xmpp_modules_enabled_txt'] = 'Sunucu genelinde etkinleÅŸtirilecek uygulama ekleri (her satıra bir tane yazın)'; +$wb['xmpp_ports_txt'] = 'BileÅŸen Kapı Numaraları'; $wb['xmpp_port_http_txt'] = 'HTTP'; $wb['xmpp_port_https_txt'] = 'HTTPS'; $wb['xmpp_port_pastebin_txt'] = 'Pastebin'; $wb['xmpp_port_bosh_txt'] = 'BOSH'; -$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN'; -$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled'; -$wb['skip_le_check_txt'] = 'Skip Lets Encrypt Check'; -$wb['migration_mode_txt'] = 'Server Migration Mode'; -$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; -$wb['backup_tmp_txt'] = 'Backup tmp directory for zip'; -$wb['tmpdir_path_error_empty'] = 'tmp-dir Path is empty.'; -$wb['tmpdir_path_error_regex'] = 'Invalid tmp-dir path.'; -$wb['logging_txt'] = 'Store website access and error logs'; -$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; -$wb['log_retention_txt'] = 'Log retention (days)'; -$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; -$wb['php_default_name_txt'] = 'Description Default PHP-Version'; -$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; -$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['disable_bind_log_txt'] = 'UYARI günlük düzeyi iletileri için bind9 iletileri devre dışı bırakılsın'; +$wb['apps_vhost_enabled_txt'] = 'Uygulama Sanal Sunucusu Kullanılsın'; +$wb['skip_le_check_txt'] = 'Lets Encrypt Denetimi Atlansın'; +$wb['migration_mode_txt'] = 'Sunucu Aktarımı Kipi'; +$wb['nginx_enable_pagespeed_txt'] = 'Pagespeed uygulamasını etkinleÅŸtirir'; +$wb['logging_txt'] = 'Web Sitesi EriÅŸim ve Hata Günlükleri Kaydedilsin'; +$wb['logging_desc_txt'] = 'DeÄŸiÅŸiklikleri var olan sitelere uygulamak için Araçlar > Yeniden EÅŸitle komutunu kullanın. Apache için, eriÅŸim ve hata günlükleri anonimleÅŸtirilebilir. nginx için, only eriÅŸim günlüğü anonimleÅŸtirilebilir, hata günlüğüne IP adresleri kaydedilir.'; +$wb['log_retention_txt'] = 'Günlük Tutma Süresi (Gün)'; +$wb['log_retention_error_ispositive'] = 'Günlük tutma süresi 0 deÄŸerinden büyük bir sayı olmalıdır'; +$wb['php_default_hide_txt'] = 'Hide Default PHP-Version in selectbox'; +$wb['php_default_name_txt'] = 'Varsayılan PHP Sürümü Açıklaması'; +$wb['php_default_name_error_empty'] = 'Varsayılan PHP sürümü açıklaması boÅŸ olamaz'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_ip.lng b/interface/web/admin/lib/lang/tr_server_ip.lng index 3ebdbd08300b73d8204d6d3dba757e40a97fec8d..1f31bd39325a3b1f913389120f3bba560529fd23 100644 --- a/interface/web/admin/lib/lang/tr_server_ip.lng +++ b/interface/web/admin/lib/lang/tr_server_ip.lng @@ -1,10 +1,12 @@ <?php +$wb['server_ip_edit_title'] = 'IP Adresses'; +$wb['server_ip_edit_desc'] = 'Form to edit system IP adresses'; $wb['server_id_txt'] = 'Sunucu'; $wb['client_id_txt'] = 'Müşteri'; -$wb['ip_type_txt'] = 'Tip'; +$wb['ip_type_txt'] = 'Tür'; $wb['ip_address_txt'] = 'IP Adresi'; -$wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; -$wb['virtualhost_port_txt'] = 'HTTP Kapıları'; +$wb['virtualhost_txt'] = 'HTTP sSunucu Adı'; +$wb['virtualhost_port_txt'] = 'HTTP Kapı Numaraları'; $wb['ip_error_wrong'] = 'IP adresi geçersiz'; $wb['ip_error_unique'] = 'Aynı IP adresi zaten var'; $wb['error_port_syntax'] = 'Kapı alanında geçersiz karakterler var. Lütfen yalnız virgül ile ayrılmış sayılar yazın. Örnek: 80,443'; diff --git a/interface/web/admin/lib/lang/tr_server_ip_list.lng b/interface/web/admin/lib/lang/tr_server_ip_list.lng index 9b25c605e7b4acf128f51d5598e25ab97f1c4c77..d252da3df4d6a6034d7f6189819fd34e3135906c 100644 --- a/interface/web/admin/lib/lang/tr_server_ip_list.lng +++ b/interface/web/admin/lib/lang/tr_server_ip_list.lng @@ -4,7 +4,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['client_id_txt'] = 'Müşteri'; $wb['ip_address_txt'] = 'IP Adresi'; $wb['add_new_record_txt'] = 'IP Adresi Ekle'; -$wb['virtualhost_txt'] = 'HTTP SSunucu'; +$wb['virtualhost_txt'] = 'HTTP sSunucu'; $wb['virtualhost_port_txt'] = 'HTTP Kapıları'; -$wb['ip_type_txt'] = 'Tip'; +$wb['ip_type_txt'] = 'Tür'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_ip_map.lng b/interface/web/admin/lib/lang/tr_server_ip_map.lng index 68b196fb23a8a805455d768e32ed419d405f9ecb..e18a2433440fb4dc936fec39940d1770e482592e 100644 --- a/interface/web/admin/lib/lang/tr_server_ip_map.lng +++ b/interface/web/admin/lib/lang/tr_server_ip_map.lng @@ -1,12 +1,14 @@ <?php -$wb['server_id_txt'] = 'Rewrite on Server'; -$wb['source_txt'] = 'Source IP'; -$wb['destination_txt'] = 'Destination IP'; -$wb['active_txt'] = 'Active'; -$wb['ip_error_wrong'] = 'The Destination IP address is invalid'; -$wb['destination_ip_empty'] = 'The Destination IP is empty.'; -$wb['source_ip_empty'] = 'The Source IP is empty.'; -$wb['server_empty_error'] = 'The Server is empty.'; -$wb['duplicate_mapping_error'] = 'Mapping already exists.'; -$wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server'; +$wb['server_ip_map_title'] = 'IPv4 Address mapping'; +$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server'; +$wb['server_id_txt'] = 'Sunucuda Yeniden Yazma'; +$wb['source_txt'] = 'Kaynak IP'; +$wb['destination_txt'] = 'Hedef IP'; +$wb['active_txt'] = 'Etkin'; +$wb['ip_error_wrong'] = 'Hedef IP adresi geçersiz'; +$wb['destination_ip_empty'] = 'Hedef IP adresi boÅŸ olamaz.'; +$wb['source_ip_empty'] = 'Kaynak IP adresi boÅŸ olamaz.'; +$wb['server_empty_error'] = 'Sunucu boÅŸ olamaz.'; +$wb['duplicate_mapping_error'] = 'EÅŸleÅŸme zaten var.'; +$wb['ip_mapping_error'] = 'Kaynak IP adresi Yeniden yazma sunucusunun IP adreslerinden biri olamaz'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_ip_map_list.lng b/interface/web/admin/lib/lang/tr_server_ip_map_list.lng index 1fedc10b2e2590cb4c252d9c0ff90eeaf565d68b..e0ee9a97291383cdeb70995255faf9550891b2fd 100644 --- a/interface/web/admin/lib/lang/tr_server_ip_map_list.lng +++ b/interface/web/admin/lib/lang/tr_server_ip_map_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'IP Mappings'; -$wb['server_id_txt'] = 'Server'; -$wb['source_ip_txt'] = 'Source IP'; -$wb['destination_ip_txt'] = 'Destination IP'; -$wb['active_txt'] = 'Active'; +$wb['list_head_txt'] = 'IP EÅŸleÅŸtirmeleri'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['source_ip_txt'] = 'Kaynak IP'; +$wb['destination_ip_txt'] = 'Hedef IP'; +$wb['active_txt'] = 'Etkin'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_list.lng b/interface/web/admin/lib/lang/tr_server_list.lng index 9f791f78a16bb0958dbfdadbc34614ddb5c0f5e8..8e22a526c8e74e79b65f1762455d16abaddfd5a4 100644 --- a/interface/web/admin/lib/lang/tr_server_list.lng +++ b/interface/web/admin/lib/lang/tr_server_list.lng @@ -1,12 +1,12 @@ <?php $wb['list_head_txt'] = 'Sunucu'; $wb['server_name_txt'] = 'Ad'; -$wb['mail_server_txt'] = 'Posta'; +$wb['mail_server_txt'] = 'E-posta'; $wb['web_server_txt'] = 'Web'; $wb['dns_server_txt'] = 'DNS'; $wb['file_server_txt'] = 'Dosya'; $wb['db_server_txt'] = 'Veritabanı'; -$wb['vserver_server_txt'] = 'SSunucu'; +$wb['vserver_server_txt'] = 'sSunucu'; $wb['proxy_server_txt'] = 'Vekil Sunucu'; $wb['firewall_server_txt'] = 'Güvenlik Duvarı'; $wb['add_new_record_txt'] = 'Sunucu Ekle'; diff --git a/interface/web/admin/lib/lang/tr_server_php.lng b/interface/web/admin/lib/lang/tr_server_php.lng index 8728444f130d19f507e5d0fec809a6be93117d30..e0437e94b323a1aa5d463d2b7652db266e167669 100644 --- a/interface/web/admin/lib/lang/tr_server_php.lng +++ b/interface/web/admin/lib/lang/tr_server_php.lng @@ -13,5 +13,5 @@ $wb['php_fastcgi_ini_dir_txt'] = 'php.ini Klasörünün Yolu'; $wb['php_fpm_init_script_txt'] = 'PHP-FPM BaÅŸlatma BetiÄŸinin Yolu'; $wb['php_fpm_ini_dir_txt'] = 'php.ini Klasörünün Yolu'; $wb['php_fpm_pool_dir_txt'] = 'PHP-FPM Havuz Klasörünün Yolu'; -$wb['active_txt'] = 'Active'; +$wb['active_txt'] = 'Etkin'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_php_list.lng b/interface/web/admin/lib/lang/tr_server_php_list.lng index 3b1d39bdd207365341b506f80de8d892191909f9..4468e7ead9ba1e7695c6c5125884a91c12624e51 100644 --- a/interface/web/admin/lib/lang/tr_server_php_list.lng +++ b/interface/web/admin/lib/lang/tr_server_php_list.lng @@ -4,4 +4,6 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['add_new_record_txt'] = 'PHP Sürümü Ekle'; $wb['client_id_txt'] = 'Müşteri'; $wb['name_txt'] = 'PHP Adı'; +$wb['active_txt'] = 'Etkin'; +$wb['usage_txt'] = 'Usage count'; ?> diff --git a/interface/web/admin/lib/lang/tr_software_package.lng b/interface/web/admin/lib/lang/tr_software_package.lng index dfd498183241f07c009fa7badb0883aeb41aa954..addda60195a1bb25f115b50b835b59153eea8030 100644 --- a/interface/web/admin/lib/lang/tr_software_package.lng +++ b/interface/web/admin/lib/lang/tr_software_package.lng @@ -2,5 +2,5 @@ $wb['package_title_txt'] = 'Paket BaÅŸlığı'; $wb['package_key_txt'] = 'Paket Anahtarı'; $wb['Software Package'] = 'Yazılım Paketi'; -$wb['Modify software package details'] = 'Yazılım paketi ayrıntılarını düzenleyin'; +$wb['Modify software package details'] = 'Yazılım paketi bilgilerini düzenle'; ?> diff --git a/interface/web/admin/lib/lang/tr_software_update_list.lng b/interface/web/admin/lib/lang/tr_software_update_list.lng index 4ee824a6e1e30c517ab81f1325f733d013a8ee34..a462d90faa7dc79180330f9ebe69d176cdc5117d 100644 --- a/interface/web/admin/lib/lang/tr_software_update_list.lng +++ b/interface/web/admin/lib/lang/tr_software_update_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Yazılım Güncellemeleri'; -$wb['server_select_txt'] = 'Sunucu seçin'; +$wb['server_select_txt'] = 'Sunucu Seçin'; $wb['installed_txt'] = 'İşlem'; $wb['update_title_txt'] = 'Güncelleme'; $wb['version_txt'] = 'Sürüm'; diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 18657743ece3e2ed1d4cc1cffea4e4719c0e1e9d..afc8a9239f2df64b2b9ca3dabe6d10ca01ba44d7 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -1,11 +1,12 @@ <?php +$wb['system_config_title'] = 'System Config'; $wb['system_config_desc_txt'] = ''; -$wb['smtp_missing_admin_mail_txt'] = 'SMTP posta göndermesini kullanmak için yönetici adı ve yönetici e-posta adresini yazmalısınız.'; +$wb['smtp_missing_admin_mail_txt'] = 'SMTP e-posta gönderimini kullanmak için yönetici adı ve yönetici e-posta adresini yazmalısınız.'; $wb['dashboard_atom_url_admin_txt'] = 'Panel Atom akışının İnternet adresi (yönetici)'; $wb['dashboard_atom_url_reseller_txt'] = 'Panel Atom akışının İnternet adresi (bayi)'; $wb['dashboard_atom_url_client_txt'] = 'Panel Atom akışının İnternet adresi (müşteri)'; $wb['warning'] = 'Bu deÄŸerleri deÄŸiÅŸtirirken dikkatli olun! Sistemde birden fazla müşteri varsa, ön ekleri kaldırmayın.'; -$wb['tab_change_discard_txt'] = 'Sekme deÄŸiÅŸtirildiÄŸinde deÄŸiÅŸiklikler yoksayılsın'; +$wb['tab_change_discard_txt'] = 'Sekme deÄŸiÅŸtirildiÄŸinde deÄŸiÅŸiklikler yok sayılsın'; $wb['tab_change_warning_txt'] = 'Sekme deÄŸiÅŸtirme uyarısı'; $wb['tab_change_warning_note_txt'] = 'Formlardaki veriler düzenlenirken, kullanıcı bir deÄŸiÅŸiklik yapmışsa sekme deÄŸiÅŸtirilmek istendiÄŸinde bir uyarı görüntülenir.'; $wb['dbname_prefix_txt'] = 'Veritabanı adı ön eki'; @@ -13,8 +14,10 @@ $wb['dbuser_prefix_txt'] = 'Veritabanı kullanıcısı ön eki'; $wb['shelluser_prefix_txt'] = 'Kabuk kullanıcısı ön eki'; $wb['webdavuser_prefix_txt'] = 'Webdav kullanıcısı ön eki'; $wb['ftpuser_prefix_txt'] = 'FTP kullanıcısı ön eki'; -$wb['vhost_subdomains_txt'] = 'Alt alanlar web sitesi ÅŸeklinde oluÅŸturulsun'; -$wb['vhost_subdomains_note_txt'] = 'Sistemde SSunucu alt alan adları varken bu seçenek devre dışı bırakılamaz!'; +$wb['vhost_subdomains_txt'] = 'Etki alanları web sitesi ÅŸeklinde oluÅŸturulsun'; +$wb['vhost_subdomains_note_txt'] = 'Sistemde sanal sunucu alt etki alanları varken bu seçenek devre dışı bırakılamaz!'; +$wb['vhost_aliasdomains_txt'] = 'Takma etki alanı web sitesi olarak eklensin'; +$wb['vhost_aliasdomains_note_txt'] = 'Sistemde sanal sunucu takma etki alanları varken bu seçenek devre dışı bırakılamaz!'; $wb['dbname_prefix_error_regex'] = 'Veritabanı adı ön ekinde izin verilmeyen karakterler var'; $wb['dbuser_prefix_error_regex'] = 'Veritabanı kullanıcısı ön ekinde izin verilmeyen karakterler var'; $wb['ftpuser_prefix_error_regex'] = 'FTP kullanıcısı ön ekinde izin verilmeyen karakterler var'; @@ -22,20 +25,25 @@ $wb['shelluser_prefix_error_regex'] = 'Kabuk kullanıcısı ön ekinde izin veri $wb['webdavuser_prefix_error_regex'] = 'Webdav kullanıcısı ön ekinde izin verilmeyen karakterler var.'; $wb['dblist_phpmyadmin_link_txt'] = 'Veritabanı listesinde phpMyAdmin baÄŸlantısı'; $wb['enable_custom_login_txt'] = 'Özel oturum açma kullanıcı adı kullanılabilsin'; -$wb['mailboxlist_webmail_link_txt'] = 'Posta kutusu listesinde Webmail baÄŸlantısı'; +$wb['mailboxlist_webmail_link_txt'] = 'E-posta kutusu listesinde Webmail baÄŸlantısı'; +$wb['mailbox_show_autoresponder_tab_txt'] = 'E-posta hesabı ayrıntılarında otoyanıtlayıcı sekmesi görüntülensin'; +$wb['mailbox_show_mail_filter_tab_txt'] = 'E-posta hesabı ayrıntılarında e-posta süzgeci sekmesi görüntülensin'; +$wb['mailbox_show_custom_rules_tab_txt'] = 'E-posta hesabı ayrıntılarında isteÄŸe baÄŸlı e-posta süzgeci sekmesi görüntülensin'; $wb['webmail_url_txt'] = 'Webmail Adresi'; -$wb['mailmailinglist_link_txt'] = 'Posta Listeleri listesinde Posta Listesi baÄŸlantısı'; -$wb['mailmailinglist_url_txt'] = 'Posta Listesi Adresi'; +$wb['mailmailinglist_link_txt'] = 'E-posta Listeleri listesinde E-posta Listesi baÄŸlantısı'; +$wb['mailmailinglist_url_txt'] = 'E-posta Listesi Adresi'; $wb['phpmyadmin_url_txt'] = 'phpMyAdmin Adresi'; -$wb['use_domain_module_txt'] = 'Alan adı eklemek için alan adı modülü kullanılsın'; -$wb['use_domain_module_hint'] = 'Bu modül kullanıldığında, müşteriler yalnız yöneticinin oluÅŸturduÄŸu alan adlarından birini seçebilir. Alan adı alanını özgürce düzenleyemez. Bu deÄŸeri deÄŸiÅŸtirdikten sonra deÄŸiÅŸikliklerin geçerli olması için oturumu kapatıp yeniden açmalısınız.'; -$wb['new_domain_txt'] = 'Yeni alan adı oluÅŸturma HTML kodu'; +$wb['use_domain_module_txt'] = 'Etki alanı eklemek için etki alanı modülü kullanılsın'; +$wb['use_domain_module_hint'] = 'Bu modül kullanıldığında, müşteriler yalnız yöneticinin oluÅŸturduÄŸu etki alanlarından birini seçebilir. Etki alanını istediÄŸi gibi yazamaz. Bu deÄŸeri deÄŸiÅŸtirdikten sonra deÄŸiÅŸikliklerin geçerli olması için oturumu kapatıp yeniden açmalısınız.'; +$wb['new_domain_txt'] = 'Yeni etki alanı oluÅŸturma HTML kodu'; $wb['webftp_url_txt'] = 'WebFTP Adresi'; $wb['admin_mail_txt'] = 'Yönetici E-posta Adresi'; $wb['monitor_key_txt'] = 'İzlenecek Kelime'; $wb['admin_name_txt'] = 'Yönetici Adı'; $wb['maintenance_mode_txt'] = 'Bakım Kipi'; -$wb['smtp_enabled_txt'] = 'Sistem postaları SMTP ile gönderilsin'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; +$wb['smtp_enabled_txt'] = 'Sistem e-postaları SMTP ile gönderilsin'; $wb['smtp_host_txt'] = 'SMTP Sunucusu'; $wb['smtp_port_txt'] = 'SMTP Kapısı'; $wb['smtp_user_txt'] = 'SMTP Kullanıcı Adı'; @@ -46,9 +54,10 @@ $wb['use_combobox_txt'] = 'jQuery Açılan Kutusu Kullanılsın'; $wb['use_loadindicator_txt'] = 'Yük Göstergesi Kullanılsın'; $wb['f5_to_reload_js_txt'] = 'Bu deÄŸer deÄŸiÅŸtirildiÄŸinde, web tarayıcının JavaScript kitaplıklarını yeniden yüklemesi için F5 tuÅŸuna basmalı ya da web tarayıcının ön belleÄŸini temizlemelisiniz.'; $wb['client_username_web_check_disabled_txt'] = 'Müşteri kullanıcı adında \'web\' sözcüğü denetimi devre dışı bırakılsın.'; -$wb['mailbox_show_autoresponder_tab_txt'] = 'Posta hesabı ayrıntılarında otoyanıtlayıcı sekmesi görüntülensin'; -$wb['mailbox_show_mail_filter_tab_txt'] = 'Posta hesabı ayrıntılarında posta süzgeci sekmesi görüntülensin'; -$wb['mailbox_show_custom_rules_tab_txt'] = 'Posta hesabı ayrıntılarında isteÄŸe baÄŸlı posta süzgeci sekmesi görüntülensin'; +$wb['backups_include_into_web_quota_txt'] = 'Yedek dosyaları web kotasına katılsın.'; +$wb['mailbox_show_autoresponder_tab_txt'] = 'E-posta hesabı ayrıntılarında otoyanıtlayıcı sekmesi görüntülensin'; +$wb['mailbox_show_mail_filter_tab_txt'] = 'E-posta hesabı ayrıntılarında e-posta süzgeci sekmesi görüntülensin'; +$wb['mailbox_show_custom_rules_tab_txt'] = 'E-posta hesabı ayrıntılarında isteÄŸe baÄŸlı e-posta süzgeci sekmesi görüntülensin'; $wb['webmail_url_error_regex'] = 'Webmail adresi geçersiz'; $wb['phpmyadmin_url_note_txt'] = 'Kod:'; $wb['webmail_url_note_txt'] = 'Kod:'; @@ -64,29 +73,20 @@ $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersi $wb['customer_no_start_txt'] = 'Müşteri No BaÅŸlangıç DeÄŸeri'; $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı'; $wb['session_timeout_txt'] = 'Oturum Zaman Aşımı (dakika)'; -$wb['session_allow_endless_txt'] = '\\"Oturum açık kalsın\\" kullanılabilsin'; +$wb['session_allow_endless_txt'] = '"Oturum açık kalsın" kullanılabilsin'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'En Az Parola UzunluÄŸu'; -$wb['min_password_strength_txt'] = 'En Az Parola Güçlüğü'; -$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; -$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; -$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.'; -$wb['default_mailserver_txt'] = 'Default Mailserver'; -$wb['default_webserver_txt'] = 'Default Webserver'; -$wb['default_dnsserver_txt'] = 'Default DNS Server'; -$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['default_dbserver_txt'] = 'Default Database Server'; -$wb['company_name_txt'] = 'Company Name for the page title'; -$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites'; -$wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; -$wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; -$wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 -$wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['min_password_strength_txt'] = 'En Az Parola ZorluÄŸu'; +$wb['default_mailserver_txt'] = 'Varsayılan E-posta Sunucusu'; +$wb['default_webserver_txt'] = 'Varsayılan Web Sunucusu'; +$wb['default_dnsserver_txt'] = 'Varsayılan Birincil DNS Sunucusu'; +$wb['default_slave_dnsserver_txt'] = 'Varsayılan İkincil DNS Sunucusu'; +$wb['default_dbserver_txt'] = 'Varsayılan Veritabanı Sunucusu'; +$wb['company_name_txt'] = 'Sayfa baÅŸlığı için kurum adı'; +$wb['reseller_can_use_options_txt'] = 'Bayi web siteleri için seçenek sekmesini kullanabilsin'; +$wb['custom_login_text_txt'] = 'Oturum Açma Sayfası Metni'; +$wb['custom_login_link_txt'] = 'Oturum Açma Sayfası BaÄŸlantısı'; +$wb['login_link_error_regex'] = 'Oturum Açma BaÄŸlantısı Geçersiz'; +$wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; +$wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; ?> diff --git a/interface/web/admin/lib/lang/tr_users.lng b/interface/web/admin/lib/lang/tr_users.lng index 0029214773cda0aef35f2125ba5454dbe14845a5..307cdd37b22072e66e56fc21cd49b6ab243b9a1c 100644 --- a/interface/web/admin/lib/lang/tr_users.lng +++ b/interface/web/admin/lib/lang/tr_users.lng @@ -1,22 +1,23 @@ <?php -$wb['username_txt'] = 'Kullanıcı adı'; +$wb['users_txt'] = 'Users'; +$wb['username_txt'] = 'Kullanıcı Adı'; $wb['username_err'] = 'Kullanıcı adı çok uzun ya da geçersiz karakterler içeriyor.'; $wb['username_empty'] = 'Kullanıcı adı boÅŸ olamaz.'; $wb['username_unique'] = 'Bu adla bir kullanıcı zaten var.'; $wb['passwort_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['modules_txt'] = 'Modül'; $wb['startmodule_txt'] = 'BaÅŸlangıç modülü'; $wb['app_theme_txt'] = 'Tasarım'; -$wb['typ_txt'] = 'Tip'; +$wb['typ_txt'] = 'Tür'; $wb['active_txt'] = 'Etkin'; $wb['language_txt'] = 'Dil'; $wb['name_txt'] = 'Ad'; $wb['vorname_txt'] = 'Takma ad'; -$wb['unternehmen_txt'] = 'Kurum'; +$wb['unternehmen_txt'] = 'KuruluÅŸ'; $wb['strasse_txt'] = 'Adres'; $wb['ort_txt'] = 'İl'; -$wb['plz_txt'] = 'Posta kodu'; +$wb['plz_txt'] = 'Posta Kodu'; $wb['land_txt'] = 'Ülke'; $wb['email_txt'] = 'E-posta'; $wb['url_txt'] = 'İnternet Adresi'; @@ -25,12 +26,12 @@ $wb['fax_txt'] = 'Faks'; $wb['groups_txt'] = 'Gruplar'; $wb['default_group_txt'] = 'Varsayılan Grup'; $wb['startmodule_err'] = 'BaÅŸlangıç modülü, modüllerin arasında deÄŸil.'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile baÅŸlayamaz.\\"'; -$wb['client_not_admin_err'] = 'Bir müşteriye ait bir kullanıcının tipi admin olarak atanamaz'; -$wb['lost_password_function_txt'] = 'Forgot password function is available'; -$wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; +$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile baÅŸlayamaz."'; +$wb['client_not_admin_err'] = 'Bir müşteriye ait bir kullanıcının türü admin olarak atanamaz'; +$wb['lost_password_function_txt'] = 'Parolamı unuttum özelliÄŸi kullanılabilir'; +$wb['no_user_insert'] = 'Bir müşteri ya da bayi eklediÄŸinizde -user- türündeki kontrol panosu kullanıcıları otomatik olarak eklenir ve güncellenir .'; ?> diff --git a/interface/web/admin/lib/lang/tr_users_list.lng b/interface/web/admin/lib/lang/tr_users_list.lng index 31dbee70001ecd4705a5610b0b0c211bc2438ec6..182ab3ca7c0a4d1eb38a2f06cf0bcf8e874f112a 100644 --- a/interface/web/admin/lib/lang/tr_users_list.lng +++ b/interface/web/admin/lib/lang/tr_users_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Kullanıcılar'; -$wb['username_txt'] = 'Kullanıcı adı'; +$wb['username_txt'] = 'Kullanıcı Adı'; $wb['client_id_txt'] = 'Müşteri Kodu'; $wb['active_txt'] = 'Etkin'; $wb['groups_txt'] = 'Gruplar'; diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index 523671c0c7d251eac5fdf005784933a5924c796a..5214d14037ac98987929feaa713527abd87e2991 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -52,6 +52,21 @@ $app->load('tform_actions'); class page_action extends tform_actions { + function onShow() { + global $app, $conf; + + // get the config + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + if($web_config['server_type'] == 'nginx'){ + unset($app->tform->formDef["tabs"]["fastcgi"]); + unset($app->tform->formDef["tabs"]["vlogger"]); + } + + parent::onShow(); + } + function onSubmit() { global $app, $conf; @@ -73,11 +88,17 @@ class page_action extends tform_actions { $server_id = $this->id; $this->dataRecord = $app->getconf->get_server_config($server_id, $section); + + if($section == 'mail'){ + $server_config = $app->getconf->get_server_config($server_id, 'server'); + $rspamd_url = 'https://'.$server_config['hostname'].':8081/rspamd/'; + } } $record = $app->tform->getHTML($this->dataRecord, $this->active_tab, 'EDIT'); $record['id'] = $this->id; + if(isset($rspamd_url)) $record['rspamd_url'] = $rspamd_url; $app->tpl->setVar($record); } @@ -112,17 +133,86 @@ class page_action extends tform_actions { } } + if($section === 'mail') { + if(isset($server_config_array['mail']['rspamd_available']) && $server_config_array['mail']['rspamd_available'] === 'y') { + $this->dataRecord['rspamd_available'] = 'y'; + } else { + $this->dataRecord['rspamd_available'] = 'n'; + } + } + if($app->tform->errorMessage == '') { $server_config_array[$section] = $app->tform->encode($this->dataRecord, $section); - $server_config_str = $app->ini_parser->get_ini_string($server_config_array); - - $app->db->datalogUpdate('server', array("config" => $server_config_str), 'server_id', $server_id); + if ((! is_array($server_config_array[$section])) || count($server_config_array[$section]) == 0 ) { + $errMsg = sprintf( $app->tform->lng("server_config_error_section_not_updated"), $section ); + $app->tpl->setVar('error', $errMsg); + } else { + $server_config_str = $app->ini_parser->get_ini_string($server_config_array); + + if (count($server_config_array) == 0 || $server_config_str == '') { + $app->tpl->setVar('error', $app->tform->lng("server_config_error_not_updated")); + } else { + $app->db->datalogUpdate('server', array("config" => $server_config_str), 'server_id', $server_id); + $app->tpl->setVar('error', ''); + } + } } else { $app->error('Security breach!'); } } } + function onAfterUpdate() { + global $app; + + if(isset($this->dataRecord['content_filter'])){ + $app->uses('ini_parser'); + $old_config = $app->ini_parser->parse_ini_string(stripslashes($this->oldDataRecord['config'])); + if($this->dataRecord['content_filter'] == 'rspamd' && $old_config['mail']['content_filter'] != $this->dataRecord['content_filter']){ + + $spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE server_id = ?", intval($this->id)); + if(is_array($spamfilter_users) && !empty($spamfilter_users)){ + foreach($spamfilter_users as $spamfilter_user){ + $app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true); + } + } + + $spamfilter_wblists = $app->db->queryAllRecords("SELECT * FROM spamfilter_wblist WHERE server_id = ?", intval($this->id)); + if(is_array($spamfilter_wblists) && !empty($spamfilter_wblists)){ + foreach($spamfilter_wblists as $spamfilter_wblist){ + $app->db->datalogUpdate('spamfilter_wblist', $spamfilter_wblist, 'wblist_id', $spamfilter_wblist["wblist_id"], true); + } + } + + $mail_users = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ?", intval($this->id)); + if(is_array($mail_users) && !empty($mail_users)){ + foreach($mail_users as $mail_user){ + if($mail_user['autoresponder'] == 'y'){ + $mail_user['autoresponder'] = 'n'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + $mail_user['autoresponder'] = 'y'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + } elseif($mail_user['move_junk'] != 'n') { + $save = $mail_user['move_junk']; + $mail_user['move_junk'] = 'n'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + $mail_user['move_junk'] = $save; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + } else { + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + } + } + } + + $mail_forwards = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE server_id = ?", intval($this->id)); + if(is_array($mail_forwards) && !empty($mail_forwards)){ + foreach($mail_forwards as $mail_forward){ + $app->db->datalogUpdate('mail_forwarding', $mail_forward, 'forwarding_id', $mail_forward["forwarding_id"], true); + } + } + } + } + } } $app->tform_actions = new page_action; diff --git a/interface/web/admin/server_php_del.php b/interface/web/admin/server_php_del.php index 6848eea8d472a0c787e011558b7429375fc7965e..82b4c8a17de3a5233d5b8caedd4449f774d43248 100644 --- a/interface/web/admin/server_php_del.php +++ b/interface/web/admin/server_php_del.php @@ -46,7 +46,24 @@ require_once '../../lib/app.inc.php'; $app->auth->check_module_permissions('admin'); $app->auth->check_security_permissions('admin_allow_server_php'); -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; + + $sql = 'SELECT domain_id FROM web_domain WHERE server_id = ? AND server_php_id = ?'; + $web_domains = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], $this->id); + + if(!empty($web_domains)) { + $app->error($app->tform->lng('php_in_use_error')); + } + } + +} + +$page = new page_action; +$page->onDelete(); -?> diff --git a/interface/web/admin/server_php_edit.php b/interface/web/admin/server_php_edit.php index 12aacf60b92a687c75c71f33fad9abe5b83cad5a..a9e7b38bbb5b0d10335bffea920a847dd5347b9f 100644 --- a/interface/web/admin/server_php_edit.php +++ b/interface/web/admin/server_php_edit.php @@ -50,9 +50,11 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { - + function onSubmit() { + parent::onSubmit(); + } function onBeforeUpdate() { - global $app, $conf; + global $app; //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway @@ -71,5 +73,3 @@ class page_action extends tform_actions { $page = new page_action; $page->onLoad(); - -?> diff --git a/interface/web/admin/server_php_list.php b/interface/web/admin/server_php_list.php index 7d69ab7d25c19e803e46b61031007e0889e74a01..11ef881792cb76965e3a5aed2dcfce98808127ea 100644 --- a/interface/web/admin/server_php_list.php +++ b/interface/web/admin/server_php_list.php @@ -48,7 +48,15 @@ $app->uses('listform_actions'); $app->listform_actions->SQLOrderBy = "ORDER BY server_php.server_id, server_php.name"; -$app->listform_actions->onLoad(); +$app->listform_actions->SQLExtSelect = "(SELECT + COUNT(w.server_id) + FROM + server_php s LEFT JOIN web_domain w ON (w.server_php_id = s.server_php_id AND s.server_id=w.server_id) + WHERE + server_php.server_php_id=s.server_php_id + GROUP BY + server_php.server_php_id +) AS 'usage'"; +$app->listform_actions->onLoad(); -?> diff --git a/interface/web/admin/software_package_del.php b/interface/web/admin/software_package_del.php index 31aeb1c09b07e38492823abb41a19bcf2f5c334d..e1387f39c43459b7261f1d90d19798a78c4a7d3e 100644 --- a/interface/web/admin/software_package_del.php +++ b/interface/web/admin/software_package_del.php @@ -36,6 +36,9 @@ $app->auth->check_module_permissions('admin'); $app->auth->check_security_permissions('admin_allow_software_packages'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); +// Check CSRF Token +$app->auth->csrf_token_check('GET'); + $software_update_inst_id = $app->functions->intval($_GET['software_update_inst_id']); if($software_update_inst_id > 0) { diff --git a/interface/web/admin/software_package_install.php b/interface/web/admin/software_package_install.php index ccbfd73ebe6e2c3411f1a1fa32dd579c06b45ccd..6a5326d51a1bed56d1d1b2faf862d8aa38533f3d 100644 --- a/interface/web/admin/software_package_install.php +++ b/interface/web/admin/software_package_install.php @@ -38,6 +38,13 @@ $app->auth->check_security_permissions('admin_allow_software_packages'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); +// Check CSRF Token +if(count($_POST) > 0) { + $app->auth->csrf_token_check('POST'); +} else { + $app->auth->csrf_token_check('GET'); +} + $package_name = $_REQUEST['package']; $install_server_id = $app->functions->intval($_REQUEST['server_id']); $install_key = trim($_REQUEST['install_key']); diff --git a/interface/web/admin/software_package_list.php b/interface/web/admin/software_package_list.php index b6664d4234ce27fdfc398877ad77e31f80d7e181..8a21696c7f398600ba7083b3f95d3e8f548de825 100644 --- a/interface/web/admin/software_package_list.php +++ b/interface/web/admin/software_package_list.php @@ -145,6 +145,9 @@ $app->uses('tpl'); $app->tpl->newTemplate("form.tpl.htm"); $app->tpl->setInclude('content_tpl', 'templates/software_package_list.htm'); +$csrf_token = $app->auth->csrf_token_get('software_package_list'); +$_csrf_id = $csrf_token['csrf_id']; +$_csrf_key = $csrf_token['csrf_key']; $servers = $app->db->queryAllRecords('SELECT server_id, server_name FROM server ORDER BY server_name'); $packages = $app->db->queryAllRecords('SELECT * FROM software_package'); @@ -167,12 +170,14 @@ if(is_array($packages) && count($packages) > 0) { if($p['package_installable'] == 'no') { $installed_txt .= $s['server_name'].": ".$app->lng("Package can not be installed.")."<br />"; } else { - $installed_txt .= $s['server_name'].": <a href=\"#\" data-load-content=\"admin/software_package_install.php?package=".$p["package_name"]."&server_id=".$s["server_id"]."\">Install now</a><br />"; + $installed_txt .= $s['server_name'].": <a href=\"#\" data-load-content=\"admin/software_package_install.php?package=".$p["package_name"]."&server_id=".$s["server_id"]."&_csrf_key=".$_csrf_key."&_csrf_id=".$_csrf_id."\">Install now</a><br />"; } } } $packages[$key]['software_update_inst_id'] = intval($inst['software_update_inst_id']); $packages[$key]['installed'] = $installed_txt; + $packages[$key]['csrf_id'] = $_csrf_id; + $packages[$key]['csrf_key'] = $_csrf_key; } $app->tpl->setVar('has_packages', 1); } else { diff --git a/interface/web/admin/templates/directive_snippets_edit.htm b/interface/web/admin/templates/directive_snippets_edit.htm index 72eb82369c485c5b6bc44bfe89a0baccfd774b2f..4506cafd634189b6be65cf278b1d11fa8909dc6f 100644 --- a/interface/web/admin/templates/directive_snippets_edit.htm +++ b/interface/web/admin/templates/directive_snippets_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <tmpl_if name='is_master'><div class="col-sm-9 col-text">{tmpl_var name='name'}</div></tmpl_else><div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></tmpl_if> @@ -19,7 +12,8 @@ <label for="snippet" class="col-sm-3 control-label">{tmpl_var name='snippet_txt'}</label> <tmpl_if name='is_master'><div class="col-sm-9 col-text"><pre>{tmpl_var name='snippet'}</pre></div></tmpl_else><div class="col-sm-9"><textarea class="form-control" name="snippet" id="snippet" rows='10' cols='50'>{tmpl_var name='snippet'}</textarea> Nginx {tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{FASTCGIPASS}</a>, <a href="javascript:void(0);" class="addPlaceholder">{PHPFALLBACKFASTCGIPASS}</a><br /> - Apache {tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT_CLIENT}</a> + Apache {tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT_CLIENT}</a> <br /> + PHP {tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{WEBROOT}</a> </div></tmpl_if> </div> <tmpl_if name='is_master'></tmpl_else> @@ -42,7 +36,10 @@ {tmpl_var name='active'} </div> </div> - + <div class="form-group"> + <label for="update_sites" class="col-sm-3 control-label">{tmpl_var name='update_sites_txt'}</label> + <div class="col-sm-9">{tmpl_var name='update_sites'}</div> + </div> <input type="hidden" name="id" value="{tmpl_var name='id'}"> @@ -81,4 +78,4 @@ } }); -</script> \ No newline at end of file +</script> diff --git a/interface/web/admin/templates/directive_snippets_list.htm b/interface/web/admin/templates/directive_snippets_list.htm index 602c71a07c3ab866fe7fd21e82d478708f550c7d..84332824960fa233023d47aba017f6f47af7171a 100644 --- a/interface/web/admin/templates/directive_snippets_list.htm +++ b/interface/web/admin/templates/directive_snippets_list.htm @@ -40,7 +40,7 @@ <td><a href="#" data-load-content="admin/directive_snippets_edit.php?id={tmpl_var name='id'}">{tmpl_var name="customer_viewable"}</a></td> <td><a href="#" data-load-content="admin/directive_snippets_edit.php?id={tmpl_var name='id'}">{tmpl_var name="master_directive_snippets_id"}</a></td> <td class="text-right"> - <tmpl_if name='is_master'></tmpl_else><a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/directive_snippets_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a></tmpl_if> + <tmpl_if name='is_master'></tmpl_else><a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/directive_snippets_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a></tmpl_if> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/firewall_edit.htm b/interface/web/admin/templates/firewall_edit.htm index cd643a8cafb67e8e06160805fb5b23243c327a1d..07fe3d0ff52e3e3a8e0748b1e13a0b9674aa2b02 100644 --- a/interface/web/admin/templates/firewall_edit.htm +++ b/interface/web/admin/templates/firewall_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -30,4 +23,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/firewall_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/firewall_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/firewall_list.htm b/interface/web/admin/templates/firewall_list.htm index ac85f7e4fe1ae1b584315b0401bba1373e05a97a..b40414a5daf5fc771e773ccfc916699ac220c6fb 100644 --- a/interface/web/admin/templates/firewall_list.htm +++ b/interface/web/admin/templates/firewall_list.htm @@ -40,7 +40,7 @@ <td><a href="#" data-load-content="admin/firewall_edit.php?id={tmpl_var name='id'}">{tmpl_var name="tcp_port"}</a></td> <td><a href="#" data-load-content="admin/firewall_edit.php?id={tmpl_var name='id'}">{tmpl_var name="udp_port"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/firewall_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/firewall_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/groups_list.htm b/interface/web/admin/templates/groups_list.htm index d53ee58b249d19934cc34f5dc44771ea9874fa90..972ae64144159c6a1b7602732aef1fef84cc8df3 100644 --- a/interface/web/admin/templates/groups_list.htm +++ b/interface/web/admin/templates/groups_list.htm @@ -35,7 +35,7 @@ <td><a href="#" data-load-content="admin/groups_edit.php?id={tmpl_var name='id'}">{tmpl_var name="name"}</a></td> <td><a href="#" data-load-content="admin/groups_edit.php?id={tmpl_var name='id'}">{tmpl_var name="description"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/groups_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/groups_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/iptables_list.htm b/interface/web/admin/templates/iptables_list.htm index e1fcb3dc034564c4701446a8769009a42d7a7634..2adbd046275dee1c53cb22b0790ed2d6062e4243 100644 --- a/interface/web/admin/templates/iptables_list.htm +++ b/interface/web/admin/templates/iptables_list.htm @@ -51,7 +51,7 @@ <td><a href="#" data-load-content="admin/iptables_edit.php?id={tmpl_var name='id'}">{tmpl_var name="state"}</a></td> <td><a href="#" data-load-content="admin/iptables_edit.php?id={tmpl_var name='id'}">{tmpl_var name="target"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/iptables_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/iptables_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/language_add.htm b/interface/web/admin/templates/language_add.htm index e124abf575a2bded82ed2f8ad2b1ae9cbbabef2f..30dc4d153c95a0a18bd2f08615fa5590935a0773 100644 --- a/interface/web/admin/templates/language_add.htm +++ b/interface/web/admin/templates/language_add.htm @@ -4,7 +4,6 @@ <p><tmpl_var name="list_desc_txt"></p> - <legend>Language Add</legend> <div class="form-group"> <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label> <div class="col-sm-9"><select name="lng_select" id="language" class="form-control flags"> @@ -22,4 +21,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_add.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/language_complete.htm b/interface/web/admin/templates/language_complete.htm index 5205b285d5a3fae570e76945e21563938bd6987b..53f42fc8fe39734c7190a1349b0d0cf5e7a0a0c6 100644 --- a/interface/web/admin/templates/language_complete.htm +++ b/interface/web/admin/templates/language_complete.htm @@ -13,20 +13,18 @@ </tmpl_if> <div class="pnl_formsarea"> - <legend>Language Complete</legend> - <div class="form-group"> - <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label> - <div class="col-sm-9"><select name="lng_select" id="language" class="form-control flags"> - {tmpl_var name='language_option'} - </select></div> + <div class="form-group"> + <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label> + <div class="col-sm-9"> + <select name="lng_select" id="language" class="form-control flags">{tmpl_var name='language_option'}</select> </div> - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_complete.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> - - - + </div> + <div class="clear"> + <div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_complete.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button> + </div> + </div> </div> -</div> \ No newline at end of file +</div> diff --git a/interface/web/admin/templates/language_edit.htm b/interface/web/admin/templates/language_edit.htm index d3830494dac7577aed6126206e39dbbc81be6079..c42ebaa51e4bfa8f93f600d4ac749bf0b7eb9606 100644 --- a/interface/web/admin/templates/language_edit.htm +++ b/interface/web/admin/templates/language_edit.htm @@ -4,16 +4,20 @@ <p><tmpl_var name="list_desc_txt"></p> - <fieldset id="wf_area_language_edit"><legend>Language File Edit: {tmpl_var name="file_path"}</legend> + <fieldset id="wf_area_language_edit"><legend>{tmpl_var name="lang_file_txt"}: {tmpl_var name="file_path"}</legend> <span class="wf_oneField"> <tmpl_loop name="records"> <span class="wf_oneField"> - <label for="records[{tmpl_var name="key"}]" class="wf_preField">{tmpl_var name="key"}</label> - <div class="col-sm-9"><input class="form-control" type="text" id="records[{tmpl_var name="key"}]" name="records[{tmpl_var name="key"}]" value="{tmpl_var name='val'}" ></div></span> - </tmpl_loop> - </span> - </fieldset> - + <div class="col-sm-9"> + <label for="records[{tmpl_var name="key"}]" class="wf_preField">{tmpl_var name="key"}</label> + <input class="form-control" type="text" id="records[{tmpl_var name="key"}]" name="records[{tmpl_var name="key"}]" value="{tmpl_var name='val'}" > + </div> + </span> + </tmpl_loop> + </span> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> <input type="hidden" name="lang" value="{tmpl_var name='lang'}"> <input type="hidden" name="lang_file" value="{tmpl_var name='lang_file'}"> @@ -22,4 +26,4 @@ <div class="wf_actions buttons"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php?lng_select={tmpl_var name='lang'}">{tmpl_var name='btn_cancel_txt'}</button> - </div> \ No newline at end of file + </div> diff --git a/interface/web/admin/templates/language_export.htm b/interface/web/admin/templates/language_export.htm index b00a204b29a470a911e248ca066cf4f1d6024b15..a115e6493a7863228e341d58619e6737a6362ce1 100644 --- a/interface/web/admin/templates/language_export.htm +++ b/interface/web/admin/templates/language_export.htm @@ -4,7 +4,6 @@ <p><tmpl_var name="list_desc_txt"></p> - <legend>Language Export</legend> <div class="form-group"> <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label> <div class="col-sm-9"><select name="lng_select" id="lng_select" class="form-control flags"> diff --git a/interface/web/admin/templates/language_import.htm b/interface/web/admin/templates/language_import.htm index 8bd653c13e8a33217e830ba187233bd1034c709d..0761cc87ed863f948e889112a4529cd2f9134b64 100644 --- a/interface/web/admin/templates/language_import.htm +++ b/interface/web/admin/templates/language_import.htm @@ -4,7 +4,6 @@ <p><tmpl_var name="list_desc_txt"></p> - <legend>Language Import</legend> <div class="form-group"> <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_import_txt'}</label> <input name="file" id="file" size="30" type="file" class="fileUpload" /> @@ -31,4 +30,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_import.php" data-form-upload="true">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/language_list.htm b/interface/web/admin/templates/language_list.htm index 33897be0a150d4c9137f24bbb0d50657cb7ea02f..0a80e5391c0598b706e66e6a8486761a861ce523 100644 --- a/interface/web/admin/templates/language_list.htm +++ b/interface/web/admin/templates/language_list.htm @@ -3,8 +3,6 @@ </div> <p><tmpl_var name="list_desc_txt"></p> - - <legend>Tools</legend> <div class="form-group"> <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label> @@ -43,4 +41,4 @@ </table> </div> - \ No newline at end of file + diff --git a/interface/web/admin/templates/remote_action_osupdate.htm b/interface/web/admin/templates/remote_action_osupdate.htm index d5fa2fffd5c1c8d7dc3cbfdeef4acee489f8c5ec..55629fc1e9adfd21c39dc384a85200e39f3e42b8 100644 --- a/interface/web/admin/templates/remote_action_osupdate.htm +++ b/interface/web/admin/templates/remote_action_osupdate.htm @@ -4,7 +4,6 @@ <p><tmpl_var name="do_osupdate_desc"></p> - <legend>{tmpl_var name='do_osupdate_caption'}</legend> <div class="form-group"> <label for="server_select" class="col-sm-3 control-label">{tmpl_var name='select_server_txt'}</label> <div class="col-sm-9"><select name="server_select" id="server" class="form-control" onchange="$('#OKMsg').hide(); "> @@ -19,4 +18,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_do_txt'}" data-submit-form="pageForm" data-form-action="admin/remote_action_osupdate.php">{tmpl_var name='btn_do_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/remote_user_edit.htm b/interface/web/admin/templates/remote_user_edit.htm index 099af58eb50c946f59bed638e56c9e07b5d25c3b..723c3e6966b9c6967281443ab996d14b0eaf2324 100644 --- a/interface/web/admin/templates/remote_user_edit.htm +++ b/interface/web/admin/templates/remote_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="remote_username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label> <div class="col-sm-9"><input type="text" name="remote_username" id="username" value="{tmpl_var name='remote_username'}" class="form-control" /></div></div> diff --git a/interface/web/admin/templates/remote_user_list.htm b/interface/web/admin/templates/remote_user_list.htm index de65c64536cabab9d86d2286d7889ed2cc6e0f3c..7189dc20df8cc3bb1e8d4ef3d632d15a4104efdc 100644 --- a/interface/web/admin/templates/remote_user_list.htm +++ b/interface/web/admin/templates/remote_user_list.htm @@ -33,7 +33,7 @@ <td><a href="#" data-load-content="admin/remote_user_edit.php?id={tmpl_var name='remote_userid'}">{tmpl_var name="remote_userid"}</a></td> <td><a href="#" data-load-content="admin/remote_user_edit.php?id={tmpl_var name='remote_userid'}">{tmpl_var name="remote_username"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/remote_user_del.php?id={tmpl_var name='remote_userid'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/remote_user_del.php?id={tmpl_var name='remote_userid'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/server_config_list.htm b/interface/web/admin/templates/server_config_list.htm index ef0935552af746e10252b01a63f2063668dea312..9284c5c35466ef5f0aa2ceba42fd4c0a6b9945b5 100644 --- a/interface/web/admin/templates/server_config_list.htm +++ b/interface/web/admin/templates/server_config_list.htm @@ -24,7 +24,7 @@ <tr> <td><a href="#" data-load-content="admin/server_config_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_name"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_config_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_config_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm index c1531c654a18b1a430bb1a856600667d4fdeab58..6ba37104ef111f91d555c2fd8610e88f7dae6660 100644 --- a/interface/web/admin/templates/server_config_mail_edit.htm +++ b/interface/web/admin/templates/server_config_mail_edit.htm @@ -44,6 +44,20 @@ {tmpl_var name='mail_filter_syntax'} </select></div> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='content_filter_txt'}</label> + <div class="col-sm-9"><select name="content_filter" id="content_filter" class="form-control"> + {tmpl_var name='content_filter'} + </select></div> + </div> + <div class="form-group rspamd"> + <label for="rspamd_url" class="col-sm-3 control-label col-text">{tmpl_var name='rspamd_url_txt'}</label> + <div class="col-sm-6"><a href="{tmpl_var name='rspamd_url'}" target="_blank">{tmpl_var name='rspamd_url'}</a><a href="{tmpl_var name='rspamd_url'}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow" style="margin-left:20px"><span class="icon icon-link"></span></a></div> + </div> + <div class="form-group rspamd"> + <label for="rspamd_password" class="col-sm-3 control-label">{tmpl_var name='rspamd_password_txt'}</label> + <div class="col-sm-9"><input type="text" name="rspamd_password" id="rspamd_password" value="{tmpl_var name='rspamd_password'}" class="form-control" /></div> + </div> <div class="form-group"> <label for="mailuser_uid" class="col-sm-3 control-label">{tmpl_var name='mailuser_uid_txt'}</label> <div class="col-sm-9"><input type="text" name="mailuser_uid" id="mailuser_uid" value="{tmpl_var name='mailuser_uid'}" class="form-control" /></div></div> @@ -125,3 +139,23 @@ <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_config_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_config_list.php">{tmpl_var name='btn_cancel_txt'}</button> </div></div> +<script> + if($('#rspamd_password').val() == ''){ + var pword = password(8, false, 1); + jQuery('#rspamd_password').val(pword); + } + + if($('#content_filter').val() === 'rspamd'){ + $('.rspamd').show(); + } else { + $('.rspamd').hide(); + } + + $('#content_filter').change(function(){ + if($(this).val() === 'rspamd'){ + $('.rspamd').show(); + } else { + $('.rspamd').hide(); + } + }); +</script> diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index 8cc8dc4340bc11e65d507a3ae53a8b945e3eda97..64173549c9a492cf8ddfc9242b7bcb66be448bb6 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -54,12 +54,29 @@ {tmpl_var name='vhost_rewrite_v6'} </div> </div> + <div class="form-group"> + <label for="vhost_proxy_protocol_enabled" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_enabled_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='vhost_proxy_protocol_enabled'} + </div> + </div> + <div class="form-group"> + <label for="vhost_proxy_protocol_http_port" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_http_port_txt'}</label> + <div class="col-sm-9"><input type="text" name="vhost_proxy_protocol_http_port" id="vhost_proxy_protocol_http_port" value="{tmpl_var name='vhost_proxy_protocol_http_port'}" class="form-control"/></div> + </div> + <div class="form-group"> + <label for="vhost_proxy_protocol_https_port" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_https_port_txt'}</label> + <div class="col-sm-9"><input type="text" name="vhost_proxy_protocol_https_port" id="vhost_proxy_protocol_https_port" value="{tmpl_var name='vhost_proxy_protocol_https_port'}" class="form-control"/></div> + </div> <div class="form-group apache"> <label for="vhost_conf_dir" class="col-sm-3 control-label">{tmpl_var name='vhost_conf_dir_txt'}</label> <div class="col-sm-9"><input type="text" name="vhost_conf_dir" id="vhost_conf_dir" value="{tmpl_var name='vhost_conf_dir'}" class="form-control" /></div></div> <div class="form-group apache"> <label for="vhost_conf_enabled_dir" class="col-sm-3 control-label">{tmpl_var name='vhost_conf_enabled_dir_txt'}</label> <div class="col-sm-9"><input type="text" name="vhost_conf_enabled_dir" id="vhost_conf_enabled_dir" value="{tmpl_var name='vhost_conf_enabled_dir'}" class="form-control" /></div></div> + <div class="form-group apache"> + <label for="apache_init_script" class="col-sm-3 control-label">{tmpl_var name='apache_init_script_txt'}</label> + <div class="col-sm-9"><input type="text" name="apache_init_script" id="apache_init_script" value="{tmpl_var name='apache_init_script'}" class="form-control" />{tmpl_var name='apache_init_script_note_txt'}</div></div> <div class="form-group nginx"> <label for="nginx_enable_pagespeed" class="col-sm-3 control-label">{tmpl_var name='nginx_enable_pagespeed_txt'}</label> <div class="col-sm-9">{tmpl_var name='nginx_enable_pagespeed'}</div></div> @@ -75,7 +92,7 @@ {tmpl_var name='security_level'} </select></div> </div> - <div class="form-group apache"> + <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='check_apache_config_txt'}</label> <div class="col-sm-9"> {tmpl_var name='check_apache_config'} @@ -146,7 +163,7 @@ <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='overquota_db_notify_client_txt'}</label> <div class="col-sm-9"> - {tmpl_var name='overquota_db_notify_client'} + {tmpl_var name='overquota_db_notify_client'} </div> </div> <div class="form-group"> @@ -180,14 +197,6 @@ {tmpl_var name='enable_sni'} </div> </div> - <div class="form-group"> - <label class="col-sm-3 control-label"> - <tmpl_var name="enable_spdy_txt"> - </label> - <div class="col-sm-9"> - <tmpl_var name="enable_spdy"> - </div> - </div> <div class="form-group"> <label for="CA_path" class="col-sm-3 control-label">{tmpl_var name='CA_path_txt'}</label> <div class="col-sm-9"><input type="text" name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" autocomplete="new-password" class="form-control" /></div></div> @@ -240,7 +249,7 @@ <div class="form-group"> <label for="connect_userid_to_webid_start" class="col-sm-3 control-label">{tmpl_var name='connect_userid_to_webid_start_txt'}</label> <div class="col-sm-9"><input type="text" name="connect_userid_to_webid_start" id="connect_userid_to_webid_start" value="{tmpl_var name='connect_userid_to_webid_start'}" class="form-control" /></div></div> - + <!-- End content --> </div> </div> @@ -255,8 +264,14 @@ </div> <div id="collapsePHP" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingPHP"> <div class="panel-body"> - <!-- Begin content --> + <!-- Begin content --> <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='php_default_hide_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='php_default_hide'} + </div> + </div> + <div class="form-group"> <label for="php_default_name" class="col-sm-3 control-label">{tmpl_var name='php_default_name_txt'}</label> <div class="col-sm-9"><input type="text" name="php_default_name" id="php_default_name" value="{tmpl_var name='php_default_name'}" class="form-control" /></div></div> <div class="form-group apache"> @@ -293,12 +308,24 @@ {tmpl_var name='php_handler'} </select></div> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='php_fpm_default_chroot_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='php_fpm_default_chroot'} + </div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='php_fpm_incron_reload_txt'}</label> <div class="col-sm-9"> {tmpl_var name='php_fpm_incron_reload'} </div> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='php_fpm_reload_mode_txt'}</label> + <div class="col-sm-9"><select name="php_fpm_reload_mode" id="php_fpm_reload_mode" class="form-control"> + {tmpl_var name='php_fpm_reload_mode'} + </select></div> + </div> <!-- End content --> </div> </div> @@ -326,7 +353,7 @@ <div class="form-group"> <label for="apps_vhost_servername" class="col-sm-3 control-label">{tmpl_var name='apps_vhost_servername_txt'}</label> <div class="col-sm-9"><input type="text" name="apps_vhost_servername" id="apps_vhost_servername" value="{tmpl_var name='apps_vhost_servername'}" class="form-control" /></div></div> - + <!-- End content --> </div> </div> @@ -354,15 +381,15 @@ <div class="form-group"> <label for="awstats_buildstaticpages_pl" class="col-sm-3 control-label">{tmpl_var name='awstats_buildstaticpages_pl_txt'}</label> <div class="col-sm-9"><input type="text" name="awstats_buildstaticpages_pl" id="awstats_buildstaticpages_pl" value="{tmpl_var name='awstats_buildstaticpages_pl'}" class="form-control" /></div></div> - + <!-- End content --> </div> </div> </div> </div> - + <input type="hidden" name="id" value="{tmpl_var name='id'}"> - + <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_config_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_config_list.php">{tmpl_var name='btn_cancel_txt'}</button> @@ -375,7 +402,7 @@ serverType = $(this).val(); adjustForm(); }); - + function adjustForm(){ if(serverType == "nginx"){ jQuery('.nginx').show(); diff --git a/interface/web/admin/templates/server_edit_services.htm b/interface/web/admin/templates/server_edit_services.htm index 2775e029d3d6a1b85ab3012e40b6e0ca2b0b8ba9..b0aca56b17b0b842cb8e9c07b9f54c083fd16673 100644 --- a/interface/web/admin/templates/server_edit_services.htm +++ b/interface/web/admin/templates/server_edit_services.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_name" class="col-sm-3 control-label">{tmpl_var name='server_name_txt'}</label> <div class="col-sm-9"><input type="text" name="server_name" id="server_name" value="{tmpl_var name='server_name'}" class="form-control" /></div></div> diff --git a/interface/web/admin/templates/server_ip_edit.htm b/interface/web/admin/templates/server_ip_edit.htm index 9e895eac04f724d7884a4c4f1307454177bc514e..f0e0eb78d78b6c72b0a0185c2fe3399899bfc83f 100644 --- a/interface/web/admin/templates/server_ip_edit.htm +++ b/interface/web/admin/templates/server_ip_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>IP Address</legend> <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -42,4 +35,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_ip_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_ip_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/server_ip_list.htm b/interface/web/admin/templates/server_ip_list.htm index 892c263f20e2b3304c6fc40a5419a81472d2c4a8..c612e1ca643e0dc67a5be4db315b39581070c3d7 100644 --- a/interface/web/admin/templates/server_ip_list.htm +++ b/interface/web/admin/templates/server_ip_list.htm @@ -45,7 +45,7 @@ <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="virtualhost"}</a></td> <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="virtualhost_port"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_ip_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_ip_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/server_ip_map_edit.htm b/interface/web/admin/templates/server_ip_map_edit.htm index a53d982c85392440fca0e564879f840708d8088b..6986213742256cb43f9cfe71c941372e3a517433 100644 --- a/interface/web/admin/templates/server_ip_map_edit.htm +++ b/interface/web/admin/templates/server_ip_map_edit.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> -<legend>IP Address Mapping</legend> <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/admin/templates/server_ip_map_list.htm b/interface/web/admin/templates/server_ip_map_list.htm index a186e49b032d106bf3f1e85a6cc7bd2da059fc0b..527ef69b9aafec1ea8312d0a655983e456729922 100644 --- a/interface/web/admin/templates/server_ip_map_list.htm +++ b/interface/web/admin/templates/server_ip_map_list.htm @@ -32,19 +32,19 @@ <td><a href="#" data-load-content="admin/server_ip_map_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source_ip"}</a></td> <td><a href="#" data-load-content="admin/server_ip_map_edit.php?id={tmpl_var name='id'}">{tmpl_var name="destination_ip"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_ip_map_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_ip_map_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> <tmpl_unless name="records"> <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="4">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + <td colspan="5">{tmpl_var name='globalsearch_noresults_text_txt'}</td> </tr> </tmpl_unless> </tbody> <tfoot> <tr> - <td colspan="4"><tmpl_var name="paging"></td> + <td colspan="5"><tmpl_var name="paging"></td> </tr> </tfoot> </table> diff --git a/interface/web/admin/templates/server_list.htm b/interface/web/admin/templates/server_list.htm index 1152909320f758d7e9fbe086296a4c1e7255c46b..313fad7ff113b055b2cb6b2ab649fa040d43195e 100644 --- a/interface/web/admin/templates/server_list.htm +++ b/interface/web/admin/templates/server_list.htm @@ -45,7 +45,7 @@ <td>{tmpl_var name="vserver_server"}</td> <td>{tmpl_var name="xmpp_server"}</td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/server_php_fastcgi_edit.htm b/interface/web/admin/templates/server_php_fastcgi_edit.htm index 99a3eeb09d8f0243569547509588b89eacb89fb6..e219addde0c921b6f4a3843c45f8378f4147928d 100644 --- a/interface/web/admin/templates/server_php_fastcgi_edit.htm +++ b/interface/web/admin/templates/server_php_fastcgi_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="php_fastcgi_binary" class="col-sm-3 control-label">{tmpl_var name='php_fastcgi_binary_txt'}</label> <div class="col-sm-9"><input type="text" name="php_fastcgi_binary" id="php_fastcgi_binary" value="{tmpl_var name='php_fastcgi_binary'}" class="form-control" /></div></div> @@ -18,4 +11,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_php_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_php_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/server_php_fpm_edit.htm b/interface/web/admin/templates/server_php_fpm_edit.htm index 4186584f0fc2860bbf3147613e69350c2838de79..372b3702fcccbad4edbb06c46db3cff9da74f986 100644 --- a/interface/web/admin/templates/server_php_fpm_edit.htm +++ b/interface/web/admin/templates/server_php_fpm_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="php_fpm_init_script" class="col-sm-3 control-label">{tmpl_var name='php_fpm_init_script_txt'}</label> <div class="col-sm-9"><input type="text" name="php_fpm_init_script" id="php_fpm_init_script" value="{tmpl_var name='php_fpm_init_script'}" class="form-control" /></div></div> @@ -21,4 +14,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_php_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_php_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/server_php_list.htm b/interface/web/admin/templates/server_php_list.htm index 5a6392eea33a18664e1d9459ba05142d38c3768b..a2595a84741a2b729a1f55e12af7e5b1f09ce3f1 100644 --- a/interface/web/admin/templates/server_php_list.htm +++ b/interface/web/admin/templates/server_php_list.htm @@ -19,6 +19,7 @@ <th data-column="server_id"><tmpl_var name="server_id_txt"></th> <th class="small-col" data-column="client_id"><tmpl_var name="client_id_txt"></th> <th data-column="name"><tmpl_var name="name_txt"></th> + <th data-column="usage"><tmpl_var name="usage_txt"></th> <th class="text-right">{tmpl_var name='search_limit'}</th> </tr> <tr> @@ -26,6 +27,7 @@ <td><select class="form-control" name="search_server_id">{tmpl_var name='search_server_id'}</select></td> <td><select class="form-control" name="search_client_id">{tmpl_var name='search_client_id'}</select></td> <td><input class="form-control" type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> + <td></td> <td class="text-right"> <button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="admin/server_php_list.php"><span class="icon icon-filter"></span></button> </td> @@ -38,20 +40,21 @@ <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="client_id"}</a></td> <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="name"}</a></td> + <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="usage"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_php_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/server_php_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> <tmpl_unless name="records"> <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="4">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + <td colspan="6">{tmpl_var name='globalsearch_noresults_text_txt'}</td> </tr> </tmpl_unless> </tbody> <tfoot> <tr> - <td colspan="4"><tmpl_var name="paging"></td> + <td colspan="6"><tmpl_var name="paging"></td> </tr> </tfoot> </table> diff --git a/interface/web/admin/templates/server_php_name_edit.htm b/interface/web/admin/templates/server_php_name_edit.htm index cfdaab63f9a220bd8bd210c615d67cf0624f0f4c..ab1d889ef94155e1a142df3ce2577a0a13b39403 100644 --- a/interface/web/admin/templates/server_php_name_edit.htm +++ b/interface/web/admin/templates/server_php_name_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> diff --git a/interface/web/admin/templates/software_package_list.htm b/interface/web/admin/templates/software_package_list.htm index 31969c0575543e91949f3219df0c32b72256f3b6..e69e3780af4e3ccff25906c9a5867f46b8b19f5c 100644 --- a/interface/web/admin/templates/software_package_list.htm +++ b/interface/web/admin/templates/software_package_list.htm @@ -33,7 +33,7 @@ <td>ispapp{tmpl_var name="package_id"}</td> <td class="text-right"> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="admin/software_package_edit.php?id={tmpl_var name='package_id'}"><span class="icon icon-edit"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/software_package_del.php?software_update_inst_id={tmpl_var name='software_update_inst_id'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/software_package_del.php?software_update_inst_id={tmpl_var name='software_update_inst_id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_if> diff --git a/interface/web/admin/templates/software_repo_edit.htm b/interface/web/admin/templates/software_repo_edit.htm index 3aa6c61fc600a6e9cf5383f56cebc68601bc591a..a43ea74900dddbd01d8091792acddadf45a15764 100644 --- a/interface/web/admin/templates/software_repo_edit.htm +++ b/interface/web/admin/templates/software_repo_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="repo_name" class="col-sm-3 control-label">{tmpl_var name='repo_name_txt'}</label> <div class="col-sm-9"><input type="text" name="repo_name" id="repo_name" value="{tmpl_var name='repo_name'}" class="form-control" /></div></div> @@ -30,4 +23,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/software_repo_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/software_repo_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/software_repo_list.htm b/interface/web/admin/templates/software_repo_list.htm index 8b1a48b56262181a20a12d40dec98a0606aab49e..d408896de6f943ba0a5d23240f37eefb58dc858a 100644 --- a/interface/web/admin/templates/software_repo_list.htm +++ b/interface/web/admin/templates/software_repo_list.htm @@ -37,7 +37,7 @@ <td><a href="#" data-load-content="admin/software_repo_edit.php?id={tmpl_var name='id'}">{tmpl_var name="repo_name"}</a></td> <td><a href="#" data-load-content="admin/software_repo_edit.php?id={tmpl_var name='id'}">{tmpl_var name="repo_url"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/software_repo_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/software_repo_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm index 526da2502a84d7c5756744f7f7f0c7a8b32fd1ab..af0a7a25cad39ec7e13f6cfc45584afdfafc853c 100644 --- a/interface/web/admin/templates/system_config_mail_edit.htm +++ b/interface/web/admin/templates/system_config_mail_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='enable_custom_login_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 45bdfcd2758b8a757f12b589e7ded692b1f284a5..31fafdc5453b9d403718f482212d441413d652c4 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -1,7 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> <!-- <div class="form-group"> <label for="file" class="col-sm-3 control-label">{tmpl_var name='logo_txt'}</label> @@ -106,6 +102,12 @@ <div class="col-sm-9"><select name="min_password_strength" id="min_password_strength" class="form-control"> {tmpl_var name='min_password_strength'} </select></div> + </div> + <div class="form-group"> + <label for="ssh_authentication" class="col-sm-3 control-label">{tmpl_var name='ssh_authentication_txt'}</label> + <div class="col-sm-9"><select name="ssh_authentication" id="ssh_authentication" class="form-control"> + {tmpl_var name='ssh_authentication'} + </select></div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='maintenance_mode_txt'}</label> @@ -113,6 +115,12 @@ {tmpl_var name='maintenance_mode'} </div> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='maintenance_mode_exclude_ips_txt'}</label> + <div class="col-sm-9"> + <input type="text" name="maintenance_mode_exclude_ips" id="maintenance_mode_exclude_ips" value="{tmpl_var name='maintenance_mode_exclude_ips'}" class="form-control" /> + </div> + </div> <tmpl_if name="msg"> <div id="OKMsg"><p><tmpl_var name="msg"></p></div> diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index 1c4c5c6f9a19b924f283c3cf767b25f6ff40ddd8..82576d5e53308b0e2bac0e7e89dc5b9c2a481efe 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="dbname_prefix" class="col-sm-3 control-label">{tmpl_var name='dbname_prefix_txt'}</label> <div class="col-sm-9"><input type="text" name="dbname_prefix" id="dbname_prefix" value="{tmpl_var name='dbname_prefix'}" class="form-control" /></div></div> @@ -63,6 +56,12 @@ {tmpl_var name='reseller_can_use_options'} </div> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='web_php_options_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='web_php_options'} + </div> + </div> <div class="form-group"> <label for="default_webserver" class="col-sm-3 control-label">{tmpl_var name='default_webserver_txt'}</label> <div class="col-sm-9"><select name="default_webserver" id="default_webserver" class="form-control"> @@ -75,7 +74,18 @@ {tmpl_var name='default_dbserver'} </select></div> </div> - + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='disable_client_remote_dbserver_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='disable_client_remote_dbserver'} + </div> + </div> + <div class="form-group"> + <label for="default_remote_dbserver" class="col-sm-3 control-label">{tmpl_var name='default_remote_dbserver_txt'}</label> + <div class="col-sm-9"><input type="text" name="default_remote_dbserver" id="default_remote_dbserver" value="{tmpl_var name='default_remote_dbserver'}" class="form-control" /></div> + </div> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> <div class="clear"><div class="right"> diff --git a/interface/web/admin/templates/users_groups_edit.htm b/interface/web/admin/templates/users_groups_edit.htm index 5f09bfa8eaa4081b7244162f73e45c2c933b975f..112791dc4c7ac34644733fa4c66445cfc89bbe9a 100644 --- a/interface/web/admin/templates/users_groups_edit.htm +++ b/interface/web/admin/templates/users_groups_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="default_group" class="col-sm-3 control-label">{tmpl_var name='default_group_txt'}</label> <div class="col-sm-9"><select name="default_group" id="default_group" class="form-control"> @@ -24,4 +17,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/users_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/users_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/admin/templates/users_list.htm b/interface/web/admin/templates/users_list.htm index b7872527ff8127187f45053de94ce15963ac5760..6486ed344d03e2249b511256558a87e423520d01 100644 --- a/interface/web/admin/templates/users_list.htm +++ b/interface/web/admin/templates/users_list.htm @@ -41,9 +41,9 @@ <td><div class="icons16 group-{tmpl_var name="typ"}" title="{tmpl_var name="typ"}"><span>{tmpl_var name="typ"}</span></div> <div class="group-icon"><a href="#" data-load-content="admin/users_edit.php?id={tmpl_var name='id'}">{tmpl_var name="username"}</a></div></td> <td>{tmpl_var name="groups"}</td> <td class="text-right"> - <tmpl_if name="username" op="!=" value="admin"> + <tmpl_if name="client_id" op="!=" value="0"> <a class="btn btn-default formbutton-success formbutton-narrow" data-load-content="login/login_as.php?cid={tmpl_var name='client_id'}"><span class="icon icon-loginas"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/users_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('admin/users_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </tmpl_if> </td> </tr> diff --git a/interface/web/admin/templates/users_user_edit.htm b/interface/web/admin/templates/users_user_edit.htm index fb9658c14b4a114e6a6f3c8bdffec4b3d40f0564..baf5f58554d7924d58de57d3b0d0e415ff23abe5 100644 --- a/interface/web/admin/templates/users_user_edit.htm +++ b/interface/web/admin/templates/users_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label> <div class="col-sm-9"><input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" /></div></div> diff --git a/interface/web/admin/users_edit.php b/interface/web/admin/users_edit.php index 4c5c97409f1dd107fd69786d6dddfa6c05bec71f..7f0c691c4243e3b48e7a261124bdfae2a40dbf98 100644 --- a/interface/web/admin/users_edit.php +++ b/interface/web/admin/users_edit.php @@ -104,6 +104,8 @@ class page_action extends tform_actions { function onAfterUpdate() { global $app, $conf; + $app->uses('auth'); + $client = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = ?", $this->id); $client_id = $app->functions->intval($client['client_id']); $username = $this->dataRecord["username"]; @@ -121,13 +123,7 @@ class page_action extends tform_actions { // password changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord["passwort"]) && $this->dataRecord["passwort"] != '') { $password = $this->dataRecord["passwort"]; - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password), $salt); + $password = $app->auth->crypt_password($password); $sql = "UPDATE client SET password = ? WHERE client_id = ? AND username = ?"; $app->db->query($sql, $password, $client_id, $username); } diff --git a/interface/web/capp.php b/interface/web/capp.php index 39392691f8908276dd660d63988b387dee9320d7..5d49fe80d7b8d33807c50214daf0719bffe70026 100644 --- a/interface/web/capp.php +++ b/interface/web/capp.php @@ -43,7 +43,7 @@ if($_SESSION["s"]["user"]['active'] != 1) { } if(!preg_match("/^[a-z]{2,20}$/i", $mod)) die('module name contains unallowed chars.'); -if($redirect != '' && !preg_match("/^[a-z0-9]+\/[a-z0-9_\.\-]+\?id=[0-9]{1,9}$/i", $redirect)) die('redirect contains unallowed chars.'); +if($redirect != '' && !preg_match("/^[a-z0-9]+\/[a-z0-9_\.\-]+\?id=[0-9]{1,9}(\&type=[a-z0-9_\.\-]+)?$/i", $redirect)) die('redirect contains unallowed chars.'); //* Check if user may use the module. $user_modules = explode(",", $_SESSION["s"]["user"]["modules"]); diff --git a/interface/web/client/client_del.php b/interface/web/client/client_del.php index 2bddd02a0750294de606cb335e7710987c585f15..c018b7a27db50b9686f63aedce827cc8a89b49ef 100644 --- a/interface/web/client/client_del.php +++ b/interface/web/client/client_del.php @@ -51,6 +51,32 @@ $app->load('tform_actions'); class page_action extends tform_actions { + // db_table => info_field for onDelete - empty = show only the amount + private $tables = array( + 'cron' => '', + 'client' => 'contact_name', + 'dns_rr' => '', + 'dns_soa' => 'origin', + 'dns_slave' => 'origin', + 'domain' => 'domain', + 'ftp_user' => 'username', + 'mail_access' => 'source', + 'mail_content_filter' => '', + 'mail_domain' => 'domain', + 'mail_forwarding' => '', + 'mail_get' => '', + 'mail_mailinglist' => 'listname', + 'mail_user' => 'email', + 'mail_user_filter' => '', + 'shell_user' => 'username', + 'spamfilter_users' => '', 'spamfilter_wblist' => '', + 'support_message' => '', + 'web_domain' => 'domain', + 'web_folder' => 'path', + 'web_folder_user' => 'username', + 'web_database_user' => 'database_user', + ); + function onDelete() { global $app, $conf, $list_def_file, $tform_def_file; @@ -58,9 +84,14 @@ class page_action extends tform_actions { if(!is_object($app->tform)) $app->uses('tform'); if($_POST["confirm"] == 'yes') { + if(isset($_POST['_csrf_id'])) $_GET['_csrf_id'] = $_POST['_csrf_id']; + if(isset($_POST['_csrf_key'])) $_GET['_csrf_key'] = $_POST['_csrf_key']; parent::onDelete(); } else { + // Check CSRF Token + $app->auth->csrf_token_check('GET'); + $app->uses('tpl'); $app->tpl->newTemplate("form.tpl.htm"); $app->tpl->setInclude('content_tpl', 'templates/client_del.htm'); @@ -75,19 +106,22 @@ class page_action extends tform_actions { $this->dataRecord = $app->tform->getDataRecord($this->id); $client_id = $app->functions->intval($this->dataRecord['client_id']); $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ?", $client_id); - - // Get all records (sub-clients, mail, web, etc....) of this client. - $tables = 'cron,client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic,domain'; - $tables_array = explode(',', $tables); - $client_group_id = $app->functions->intval($client_group['groupid']); - $table_list = array(); + $client_group_id = $app->functions->intval($client_group['groupid']); if($client_group_id > 1) { - foreach($tables_array as $table) { + foreach($this->tables as $table => $field) { if($table != '') { $records = $app->db->queryAllRecords("SELECT * FROM ?? WHERE sys_groupid = ?", $table, $client_group_id); - $number = count($records); - if($number > 0) $table_list[] = array('table' => $table."(".$number.")"); + if(is_array($records) && !empty($records) && $field !== false) { + $data = array(); + $number = count($records); + foreach($records as $rec) { + if($field != '' && $field !== false) $data['data'] .= '<li>'.$rec[$field].'</li>'; + } + $data['count'] = $number; + $data['table'] = $table; + $table_list[] = $data; + } } } } @@ -95,11 +129,15 @@ class page_action extends tform_actions { $app->tpl->setVar('id', $this->id); $app->tpl->setVar('number_records', $number); $app->tpl->setLoop('records', $table_list); - //* load language file $lng_file = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_client_del.lng'; include $lng_file; $app->tpl->setVar($wb); + + // get new csrf token + $csrf_token = $app->auth->csrf_token_get('client_del'); + $app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']); + $app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']); $app->tpl_defaults(); $app->tpl->pparse(); @@ -128,11 +166,9 @@ class page_action extends tform_actions { $app->db->query("DELETE FROM sys_user WHERE client_id = ?", $client_id); // Delete all records (sub-clients, mail, web, etc....) of this client. - $tables = 'cron,client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_folder,web_folder_user,domain,mail_mailinglist,spamfilter_wblist'; - $tables_array = explode(',', $tables); $client_group_id = $app->functions->intval($client_group['groupid']); if($client_group_id > 1) { - foreach($tables_array as $table) { + foreach($this->tables as $table => $field) { if($table != '') { //* find the primary ID of the table $table_info = $app->db->tableInfo($table); @@ -140,6 +176,7 @@ class page_action extends tform_actions { foreach($table_info as $tmp) { if($tmp['option'] == 'primary') $index_field = $tmp['name']; } + //* Delete the records if($index_field != '') { $records = $app->db->queryAllRecords("SELECT * FROM ?? WHERE sys_groupid = ? ORDER BY ?? DESC", $table, $client_group_id, $index_field); diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php index 8577a1b32d94a5c1e27de0c622495d3f0b4ca2be..bbc7849f1f296bbda7bb132252a36574ed7f6638 100644 --- a/interface/web/client/client_edit.php +++ b/interface/web/client/client_edit.php @@ -266,7 +266,7 @@ class page_action extends tform_actions { $app->functions->generate_ssh_key($this->id, $username); // Create the controlpaneluser for the client - $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) + $sql = "INSERT INTO sys_user (`username`,`passwort`,`modules`,`startmodule`,`app_theme`,`typ`,`active`,`language`,`groups`,`default_group`,`client_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $app->db->query($sql, $username, $password, $modules, $startmodule, $usertheme, $type, $active, $language, $groups, $groupid, $this->id); diff --git a/interface/web/client/client_message.php b/interface/web/client/client_message.php index 2617bbe67d9408a711933d6a68229022be4ed64b..a46aefa6b4426b1d8648de06ca1a6868883ba7c5 100644 --- a/interface/web/client/client_message.php +++ b/interface/web/client/client_message.php @@ -71,18 +71,18 @@ if(isset($_POST) && count($_POST) > 1) { $where[] = 'client_id = '.$app->functions->intval($tmp_client_id); } if(!empty($where)) $where_clause = ' AND ('.implode(' OR ', $where).')'; - $sql = "SELECT * FROM client WHERE email != ''".$where_clause; + $sql = "SELECT * FROM client WHERE canceled != 'y' AND email != ''".$where_clause; } else { - $sql = "SELECT * FROM client WHERE 0"; + $sql = "SELECT * FROM client WHERE canceled != 'y'"; } } else { //* Select all clients and resellers if($_SESSION["s"]["user"]["typ"] == 'admin'){ - $sql = "SELECT * FROM client WHERE email != ''"; + $sql = "SELECT * FROM client WHERE email != '' AND canceled != 'y'"; } else { $client_id = $app->functions->intval($_SESSION['s']['user']['client_id']); if($client_id == 0) die('Invalid Client ID.'); - $sql = "SELECT * FROM client WHERE email != '' AND parent_client_id = '$client_id'"; + $sql = "SELECT * FROM client WHERE email != '' AND canceled != 'y' AND parent_client_id = '$client_id'"; } } diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php index 151c5dc95926373f089135c8fc278ddd8105d821..17b9e623b66cda763d4db8561d101b5f33fcad8d 100644 --- a/interface/web/client/form/client.tform.php +++ b/interface/web/client/form/client.tform.php @@ -390,8 +390,8 @@ $form["tabs"]['address'] = array ( 2 => array( 'event' => 'SAVE', 'type' => 'TOLOWER') ), - 'validators' => array ( - 0 => array ( 'type' => 'ISEMAIL', 'errmsg'=> 'email_error_isemail'), + 'validators' => array ( + 0 => array ( 'type' => 'ISEMAILADDRESS', 'errmsg'=> 'email_error_isemail'), 1 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'email_error_empty'), ), @@ -621,7 +621,7 @@ $form["tabs"]['address'] = array ( 'type' => 'TOLOWER') ), 'validators' => array ( - 0 => array ( 'type' => 'ISEMAIL', 'allowempty' => 'y', 'errmsg'=> 'email_error_isemail'), + 0 => array ( 'type' => 'ISEMAILADDRESS', 'allowempty' => 'y', 'errmsg'=> 'email_error_isemail'), ), 'default' => '', 'value' => '', @@ -1087,7 +1087,7 @@ $form["tabs"]['limits'] = array ( ), 'default' => '', 'separator' => ',', - 'valuelimit' => 'client:web_php_options', + 'valuelimit' => 'system:sites:web_php_options', 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM') ), 'limit_cgi' => array ( @@ -1518,7 +1518,7 @@ $form["tabs"]['ipaddress'] = array ( 'separator' => ';' ), ################################## - # ENDE Datatable fields + # END Datatable fields ################################## ) ); diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php index 5d9f81de0b80114e81068d23f9b465939d891118..1da5cdafcd845b83401eeda28b0ceb7a00d2f0de 100644 --- a/interface/web/client/form/client_template.tform.php +++ b/interface/web/client/form/client_template.tform.php @@ -495,7 +495,7 @@ $form["tabs"]['limits'] = array ( 'formtype' => 'CHECKBOXARRAY', 'default' => '', 'separator' => ',', - 'valuelimit' => 'client:web_php_options', + 'valuelimit' => 'system:sites:web_php_options', 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM') ), 'limit_cgi' => array ( diff --git a/interface/web/client/form/domain.tform.php b/interface/web/client/form/domain.tform.php index 549617e713cc3f0bc23e1d312513e3c8f1a7d46a..a3dc1aaac030bab9328c8beb677d32033c86dea1 100644 --- a/interface/web/client/form/domain.tform.php +++ b/interface/web/client/form/domain.tform.php @@ -100,7 +100,7 @@ $form["tabs"]['domain'] = array ( 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'domain_error_unique'), 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,63}$/', 'errmsg'=> 'domain_error_regex'), ), 'default' => '', @@ -109,7 +109,7 @@ $form["tabs"]['domain'] = array ( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php index 706219f76afa9f74ed177ba79cb323d0ce37ba4b..174c18081df4ff04139ec21642e045d71c1d899a 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -1080,6 +1080,7 @@ $form["tabs"]['limits'] = array ( 'web_php_options' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOXARRAY', + 'valuelimit' => 'system:sites:web_php_options', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'web_php_options_notempty'), ), @@ -1559,7 +1560,7 @@ $form["tabs"]['ipaddress'] = array ( 'separator' => ';' ), ################################## - # ENDE Datatable fields + # END Datatable fields ################################## ) ); diff --git a/interface/web/client/lib/lang/ar.lng b/interface/web/client/lib/lang/ar.lng index 245991ff9df7799883342f9d8680b8150fc605a7..f129f4273fe0211b5a16dd15dcc92c44fc18c242 100644 --- a/interface/web/client/lib/lang/ar.lng +++ b/interface/web/client/lib/lang/ar.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng index 71bc0fc1f7ce18f4dfcfaeea894684445c1d4d12..2fcd02606f3472c42252bb5d18b434717993f9cd 100644 --- a/interface/web/client/lib/lang/ar_client.lng +++ b/interface/web/client/lib/lang/ar_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ar_client_del.lng b/interface/web/client/lib/lang/ar_client_del.lng index 0932e9568ac478948a00b84b0c50acaf2ce0c7c2..21ddcb9ea44905b316d6830ae688abda9125eaef 100644 --- a/interface/web/client/lib/lang/ar_client_del.lng +++ b/interface/web/client/lib/lang/ar_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/ar_client_message.lng b/interface/web/client/lib/lang/ar_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/ar_client_message.lng +++ b/interface/web/client/lib/lang/ar_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/ar_client_template_list.lng b/interface/web/client/lib/lang/ar_client_template_list.lng index 0840184a9bafca2542318ec40c751362e105f931..9112afc626de7cdf3a94257aeec601438c719ed2 100644 --- a/interface/web/client/lib/lang/ar_client_template_list.lng +++ b/interface/web/client/lib/lang/ar_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng index 68e8a950f36cc62cc603e077401a697e6d8ea509..333c8bdb96cf18be0d11e582bcfde3b1aecd57a8 100644 --- a/interface/web/client/lib/lang/ar_reseller.lng +++ b/interface/web/client/lib/lang/ar_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/bg.lng b/interface/web/client/lib/lang/bg.lng index c18e2e8fbd2bf71baf98c1a00441b913d682b626..e23521e598d670e7dc1a45f2fb738a996e7ef8fe 100644 --- a/interface/web/client/lib/lang/bg.lng +++ b/interface/web/client/lib/lang/bg.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng index 36da0a04229be37d60d8affd0ab35d0308672d07..dcaba08f8b8576bec2bc52805df75341325dbbac 100644 --- a/interface/web/client/lib/lang/bg_client.lng +++ b/interface/web/client/lib/lang/bg_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/bg_client_del.lng b/interface/web/client/lib/lang/bg_client_del.lng index 54d4831d776453b5ab0fbc3e143640a00e127f3d..418abdc20ceb40fd31bc53d1bbadb792ac269f98 100644 --- a/interface/web/client/lib/lang/bg_client_del.lng +++ b/interface/web/client/lib/lang/bg_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Изтрии клиента'; $wb['btn_cancel_txt'] = 'Отказ, без изтриване на клиента'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/bg_client_message.lng b/interface/web/client/lib/lang/bg_client_message.lng index 671d454304146f1b47ab4d57838f88f504ed5b9e..557972113bef0501f8f315aed8f3ada25ef0aa39 100644 --- a/interface/web/client/lib/lang/bg_client_message.lng +++ b/interface/web/client/lib/lang/bg_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Полето Ñ Ð¢ÐµÐ¼Ð° е празно.'; $wb['message_invalid_error'] = 'Полето Ñ Ñъобщение е празно.'; $wb['email_sent_to_txt'] = 'Изпрати до:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/bg_client_template_list.lng b/interface/web/client/lib/lang/bg_client_template_list.lng index 0840184a9bafca2542318ec40c751362e105f931..9112afc626de7cdf3a94257aeec601438c719ed2 100644 --- a/interface/web/client/lib/lang/bg_client_template_list.lng +++ b/interface/web/client/lib/lang/bg_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng index 211b6daf93b0915d434bc4054161eb6a5f3622e0..528b2c7897efa1989b61e0d2af7e140ef0bd9e1d 100644 --- a/interface/web/client/lib/lang/bg_reseller.lng +++ b/interface/web/client/lib/lang/bg_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/br.lng b/interface/web/client/lib/lang/br.lng index 2228cf3e211025aea83a8af44b241e0b8d96efec..b65fba3044e99b04938206be75101ff51be80f43 100644 --- a/interface/web/client/lib/lang/br.lng +++ b/interface/web/client/lib/lang/br.lng @@ -10,20 +10,21 @@ $wb['Limit-Templates'] = 'Gabaritos de limites'; $wb['Add Reseller'] = 'Adicionar revenda'; $wb['Edit Reseller'] = 'Editar revenda'; $wb['Resellers'] = 'Revendas'; -$wb['error_has_clients'] = 'Esta revenda possui clientes. Você deve remover os clientes primeiro.'; +$wb['error_has_clients'] = 'Esta revenda possui clientes associados. Certifique-se de remover os clientes associados a mesma antes de removê-la.'; $wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado'; $wb['delete_additional_template_txt'] = 'Remover gabarito personalizado'; -$wb['Messaging'] = 'CÃrculos'; +$wb['Messaging'] = 'Mensagens'; $wb['Send email'] = 'Enviar e-mail'; -$wb['Edit Client Circle'] = 'Editar cÃrculo'; +$wb['Edit Client Circle'] = 'Editar cÃrculo de clientes'; $wb['Domains'] = 'DomÃnios'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'DomÃnio'; $wb['client_txt'] = 'Cliente'; -$wb['error_domain_in mailuse'] = 'Este domÃnio não pode ser removido porque está em uso como um domÃnio de e-mail.'; -$wb['error_domain_in webuse'] = 'Este domÃnio não pode ser removido porque está em uso como um domÃnio de site.'; -$wb['error_client_can_not_add_domain'] = 'Você não pode adicionar um novo domÃnio.'; -$wb['error_client_group_id_empty'] = 'Você deve selecionar um cliente<br>'; -$wb['error_domain_in dnsuse'] = 'Este domÃnio não pode ser removido porque está em uso como uma zona dns.'; -$wb['error_domain_in dnsslaveuse'] = 'Este domÃnio não pode ser removido porque está em uso como uma zona dns secundária.'; -$wb['Email-Templates'] = 'Gabaritos de e-mails'; +$wb['error_domain_in dnsuse'] = 'Este domÃnio não pode ser removido pois é utilizado em uma zona dns.'; +$wb['error_domain_in dnsslaveuse'] = 'Este domÃnio não pode ser removido pois é utilizado em uma zona dns secundária.'; +$wb['error_domain_in mailuse'] = 'Este domÃnio não pode ser removido pois é utilizado como um domÃnio de e-mail.'; +$wb['error_domain_in webuse'] = 'Este domÃnio não pode ser removido pois é utilizado como um domÃnio de site.'; +$wb['error_client_can_not_add_domain'] = 'Você não tem permissão para adicionar novos domÃnios.'; +$wb['error_client_group_id_empty'] = 'Você deve selecionar um cliente.'; +$wb['Email-Templates'] = 'Gabaritos de e-mail'; ?> diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index ad9282aa4cc24b04dad4473a7fa953e0739fe5b9..46ad85698b8d8d49d22ecfd4de9cece5aa717be6 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -1,26 +1,29 @@ <?php $wb['limit_maildomain_txt'] = 'Limite de domÃnios de e-mail'; -$wb['limit_mailbox_txt'] = 'Limite de caixas postais'; -$wb['limit_mailalias_txt'] = 'Limite de apelidos de domÃnio de e-mail'; -$wb['limit_mailforward_txt'] = 'Limite de redirecionamentos de e-mail'; -$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo'; -$wb['limit_mailrouting_txt'] = 'Limite de transportes de e-mail'; +$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mail'; +$wb['limit_mailbox_txt'] = 'Limite de contas de e-mail'; +$wb['limit_mailalias_txt'] = 'Limite de alias de e-mail'; +$wb['limit_mailaliasdomain_txt'] = 'Limite de alias de domÃnios'; +$wb['limit_mailforward_txt'] = 'Limite de encaminhamentos de e-mail'; +$wb['limit_mailcatchall_txt'] = 'Limite de contas cata-tudo'; +$wb['limit_mailrouting_txt'] = 'Limite de rotas de e-mail'; $wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail'; $wb['limit_fetchmail_txt'] = 'Limite de contas de busca'; -$wb['limit_mailquota_txt'] = 'Cota de e-mail'; -$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam lista branca/negra'; -$wb['limit_spamfilter_user_txt'] = 'Limite de usuários de filtros anti-spam'; +$wb['limit_mailquota_txt'] = 'Cota da conta de e-mail'; +$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam "lista branca/negra"'; +$wb['limit_spamfilter_user_txt'] = 'Limite de filtros anti-spam por conta de e-mail'; $wb['limit_spamfilter_policy_txt'] = 'Limite de polÃticas anti-spam'; -$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão'; +$wb['default_mailserver_txt'] = 'Servidor de e-mail padrão'; $wb['company_name_txt'] = 'Empresa'; $wb['contact_firstname_txt'] = 'Nome do contato'; -$wb['contact_name_txt'] = 'Sobrenome do contato'; -$wb['username_txt'] = 'Nome do usuário'; +$wb['contact_name_txt'] = 'Contato'; +$wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; +$wb['password_click_to_set_txt'] = 'Clique para configurar'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['language_txt'] = 'Idioma'; $wb['usertheme_txt'] = 'Tema'; -$wb['street_txt'] = 'Rua'; +$wb['street_txt'] = 'Endereço'; $wb['zip_txt'] = 'CEP'; $wb['city_txt'] = 'Cidade'; $wb['state_txt'] = 'Estado'; @@ -28,177 +31,175 @@ $wb['country_txt'] = 'PaÃs'; $wb['telephone_txt'] = 'Telefone'; $wb['mobile_txt'] = 'Celular'; $wb['fax_txt'] = 'Fax'; -$wb['email_txt'] = 'e-mail'; +$wb['email_txt'] = 'e-Mail'; $wb['internet_txt'] = 'Internet'; -$wb['icq_txt'] = 'Skype/Telegram'; +$wb['icq_txt'] = 'Redes sociais'; $wb['notes_txt'] = 'Notas'; $wb['company_txt'] = 'Empresa'; -$wb['title_txt'] = 'TÃtulo'; +$wb['title_txt'] = 'Cargo'; $wb['firstname_txt'] = 'Nome'; $wb['surname_txt'] = 'Sobrenome'; $wb['limit_domain_txt'] = 'Limite de domÃnios'; $wb['limit_subdomain_txt'] = 'Limite de subdomÃnios'; -$wb['limit_webquota_txt'] = 'Limite da cota de site'; +$wb['limit_webquota_txt'] = 'Limite da cota de sites'; $wb['limit_database_txt'] = 'Limite de banco de dados'; +$wb['limit_cron_txt'] = 'Limite de tarefas no cron'; +$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefa no cron (chroot e url implÃcitas)'; +$wb['limit_cron_frequency_txt'] = 'Tempo de espera entre as execuções'; $wb['ip_address_txt'] = 'Endereço IP'; $wb['limit_client_error_notint'] = 'Limite de clientes deve ser um número.'; $wb['firstname_error_empty'] = 'Nome está em branco.'; $wb['contact_error_empty'] = 'Contato está em branco.'; -$wb['default_webserver_txt'] = 'Servidor de páginas padrão'; -$wb['limit_web_domain_txt'] = 'Limite de de domÃnios de site'; -$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos de domÃnio'; -$wb['limit_web_subdomain_txt'] = 'Limite de subdomÃnios'; +$wb['default_webserver_txt'] = 'Servidor web padrão'; +$wb['limit_web_domain_txt'] = 'Limite de domÃnios de site'; +$wb['limit_web_aliasdomain_txt'] = 'Limite de alias de domÃnios de site'; +$wb['limit_web_subdomain_txt'] = 'Limite de subdomÃnios de site'; $wb['limit_ftp_user_txt'] = 'Limite de usuários ftp'; $wb['default_dnsserver_txt'] = 'Servidor dns padrão'; $wb['limit_dns_zone_txt'] = 'Limite de zonas dns'; $wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias'; $wb['limit_dns_record_txt'] = 'Limite de registros dns'; -$wb['limit_shell_user_txt'] = 'Limite de usuários shell'; +$wb['limit_shell_user_txt'] = 'Limite de usuários do shell'; +$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav'; +$wb['limit_backup_txt'] = 'Função de backup disponÃvel'; $wb['limit_client_txt'] = 'Limite de clientes'; $wb['username_error_empty'] = 'Nome do usuário está em branco.'; $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; -$wb['limit_maildomain_error_notint'] = 'Limite de contas de e-mail deve ser um número.'; -$wb['limit_mailbox_error_notint'] = 'Limite da contas de e-mail deve ser um número.'; -$wb['limit_mailalias_error_notint'] = 'Limite do apelidos de e-mail deve ser um número.'; -$wb['limit_mailforward_error_notint'] = 'Limite de redirecionamentos de e-mail deve ser um número.'; -$wb['limit_mailcatchall_error_notint'] = 'Limite de contas cata tudo deve ser um número.'; -$wb['limit_mailrouting_error_notint'] = 'Limite de transportes de e-mail deve ser um número.'; -$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de e-mail deve ser um número.'; -$wb['limit_mailfetchmail_error_notint'] = 'Limite de contas de busca deve ser um número.'; -$wb['limit_mailquota_error_notint'] = 'A cota de e-mail deve ser um número.'; -$wb['limit_spamfilter_wblist_error_notint'] = 'Limite de filtros anti-spam lista branca/negra deve ser um número.'; -$wb['limit_spamfilter_user_error_notint'] = 'Limite de filtros anti-spam por usuário deve ser um número.'; -$wb['limit_spamfilter_policy_error_notint'] = 'Limite de polÃticas de filtros anti-spam deve ser um número.'; -$wb['limit_web_domain_error_notint'] = 'Limite de sites deve ser um número.'; -$wb['limit_web_aliasdomain_error_notint'] = 'Limite de apelidos de domÃnios deve ser um número.'; -$wb['limit_web_subdomain_error_notint'] = 'Limite de subdomÃnios deve ser um número.'; -$wb['limit_ftp_user_error_notint'] = 'Limite de usuários ftp deve ser um número.'; -$wb['limit_shell_user_error_notint'] = 'Limite de usuários shell deve ser um número.'; -$wb['limit_dns_zone_error_notint'] = 'Limite de registros dns deve ser um número.'; -$wb['limit_dns_slave_zone_error_notint'] = 'Limite de zonas dns secundárias deve ser um número.'; +$wb['limit_maildomain_error_notint'] = 'O limite de domÃnios de e-mail deve ser um número.'; +$wb['limit_mailmailinglist_error_notint'] = 'O limite de listas de e-mail deve ser um número.'; +$wb['limit_mailbox_error_notint'] = 'O limite de contas de e-mail deve ser um número.'; +$wb['limit_mailalias_error_notint'] = 'O limite de alias de e-mail deve ser um número.'; +$wb['limit_mailaliasdomain_error_notint'] = 'O limite de alias de domÃnios de e-mail deve ser um número.'; +$wb['limit_mailforward_error_notint'] = 'O limite de encaminhamentos de e-mail deve ser um número.'; +$wb['limit_mailcatchall_error_notint'] = 'O limite de contas cata-tudo deve ser um número.'; +$wb['limit_mailrouting_error_notint'] = 'O limite de rotas de e-mail deve ser um número.'; +$wb['limit_mailfilter_error_notint'] = 'O limite de filtros de e-mail deve ser um número.'; +$wb['limit_mailfetchmail_error_notint'] = 'O limite de contas de busca deve ser um número.'; +$wb['limit_mailquota_error_notint'] = 'O limite das cotas de e-mail deve ser um número.'; +$wb['limit_spamfilter_wblist_error_notint'] = 'O limite de filtros anti-spam "lista branca/negra" deve ser um número.'; +$wb['limit_spamfilter_user_error_notint'] = 'O limite de filtros anti-spam por conta de e-mail deve ser um número.'; +$wb['limit_spamfilter_policy_error_notint'] = 'O limite de polÃticas anti-spam deve ser um número.'; +$wb['limit_web_domain_error_notint'] = 'O limite de domÃnios de site deve ser um número.'; +$wb['limit_web_aliasdomain_error_notint'] = 'O limite de alias de domÃnios de site deve ser um número.'; +$wb['limit_web_subdomain_error_notint'] = 'O limite de subdomÃnios de site deve ser um número.'; +$wb['limit_ftp_user_error_notint'] = 'O limite de usuários ftp deve ser um número.'; +$wb['limit_shell_user_error_notint'] = 'O limite de usuários do shell deve ser um número.'; +$wb['limit_webdav_user_error_notint'] = 'O limite de usuários webdav deve ser um número.'; +$wb['limit_dns_zone_error_notint'] = 'O limite de zonas dns deve ser um número.'; +$wb['limit_dns_slave_zone_error_notint'] = 'O limite de zonas dns secundárias deve ser um número.'; +$wb['limit_dns_record_error_notint'] = 'O limite de registros dns deve ser um número.'; $wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; -$wb['limit_database_error_notint'] = 'Limite de banco de dados deve ser um número.'; +$wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número.'; +$wb['limit_cron_error_notint'] = 'O limite de tarefas no cron deve ser um número.'; +$wb['limit_cron_error_frequency'] = 'O limite de frequência de tarefas no cron deve ser um número.'; $wb['username_error_regex'] = 'O nome de usuário contém caracteres inválidos.'; -$wb['template_master_txt'] = 'Gabarito principal'; +$wb['template_master_txt'] = 'Gabarito mestre'; $wb['template_additional_txt'] = 'Gabarito personalizado'; -$wb['ssh_chroot_txt'] = 'Opções do SSH Chroot'; -$wb['web_php_options_txt'] = 'Opções do PHP'; -$wb['limit_client_error'] = 'O limite de clientes foi alcançado.'; -$wb['limit_cron_txt'] = 'Limite de tarefas no cron.'; -$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefas no cron (em chroot e url completas)'; -$wb['limit_cron_frequency_txt'] = 'Intervalo mÃnimo entre as execuções'; -$wb['limit_cron_error_notint'] = 'Limite do cron deve ser um número.'; -$wb['limit_cron_error_frequency'] = 'Limite de frequência do cron deve ser um número.'; -$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domÃnios'; -$wb['limit_mailaliasdomain_error_notint'] = 'Limite de apelidos de domÃnio deve ser um número.'; -$wb['limit_web_quota_txt'] = 'Cota de site'; -$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; -$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego dever ser um número.'; -$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav'; -$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.'; -$wb['limit_backup_txt'] = 'Função de backup disponÃvel'; -$wb['customer_no_txt'] = 'Código do cliente'; -$wb['vat_id_txt'] = 'VAT ID'; -$wb['required_fields_txt'] = '*Campos obrigatórios'; -$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mail'; -$wb['limit_mailmailinglist_error_notint'] = 'Limite do listas de e-mail deve ser um número.'; -$wb['company_id_txt'] = 'ID da Empresa'; -$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais'; -$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual'; -$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.'; -$wb['web_php_options_notempty'] = 'Nenhuma opção PHP selecionada. Selecione ao menos uma opção.'; -$wb['ssh_chroot_notempty'] = 'Nenhuma opção de SSH chroot selecionada. Selecione ao menos uma opção.'; -$wb['username_error_collision'] = 'O usuário não pode ter como iniciais as palavras -web- ou -web- seguida por um número.'; +$wb['active_template_additional_txt'] = 'Ativar gabarito personalizado'; $wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado'; $wb['delete_additional_template_txt'] = 'Remover gabarito personalizado'; +$wb['ssh_chroot_txt'] = 'Opções SSH-Chroot'; +$wb['web_php_options_txt'] = 'Opções PHP'; $wb['limit_cgi_txt'] = 'CGI disponÃvel'; $wb['limit_ssi_txt'] = 'SSI disponÃvel'; $wb['limit_perl_txt'] = 'Perl disponÃvel'; $wb['limit_ruby_txt'] = 'Ruby disponÃvel'; $wb['limit_python_txt'] = 'Python disponÃvel'; $wb['force_suexec_txt'] = 'Forçar SuEXEC'; -$wb['limit_hterror_txt'] = 'Custom error docs disponÃvel'; -$wb['limit_wildcard_txt'] = 'Curingas de subdomÃnios disponÃveis'; +$wb['limit_hterror_txt'] = 'Custom errordocs disponÃvel'; +$wb['limit_wildcard_txt'] = 'Curingas de subdomÃnio disponÃvel'; $wb['limit_ssl_txt'] = 'SSL disponÃvel'; -$wb['bank_account_number_txt'] = 'Conta corrente no.'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponÃvel'; +$wb['limit_client_error'] = 'O limite de clientes foi alcançado.'; +$wb['limit_web_quota_txt'] = 'Cota de site'; +$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; +$wb['limit_trafficquota_error_notint'] = 'Cota de tráfego deve ser um número.'; +$wb['customer_no_txt'] = 'Código do cliente.'; +$wb['vat_id_txt'] = 'VAT ID'; +$wb['required_fields_txt'] = '*Campos obrigatórios'; +$wb['company_id_txt'] = 'Código da empresa'; +$wb['limit_openvz_vm_txt'] = 'Limite de máquinas virtuais'; +$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de máquina virtual'; +$wb['limit_openvz_vm_error_notint'] = 'O limite de máquinas virtuais deve ser um número.'; +$wb['web_php_options_notempty'] = 'Nenhuma opção php selecionada. Selecione ao menos uma opção.'; +$wb['ssh_chroot_notempty'] = 'Nenhuma opção ssh chroot selecionada. Selecione ao menos uma opção.'; +$wb['username_error_collision'] = 'O nome de usuário não pode conter as palavras "web" ou "web" seguida de um número.'; +$wb['bank_account_number_txt'] = 'Conta corrente'; +$wb['bank_account_owner_txt'] = 'Proprietário da conta corrente'; $wb['bank_code_txt'] = 'Código do banco'; $wb['bank_name_txt'] = 'Nome do banco'; $wb['bank_account_iban_txt'] = 'IBAN'; $wb['bank_account_swift_txt'] = 'BIC/Swift'; -$wb['web_limits_txt'] = 'Limites web'; -$wb['email_limits_txt'] = 'Limites de e-mails'; +$wb['web_limits_txt'] = 'Limites de site'; +$wb['email_limits_txt'] = 'Limites de e-mail'; +$wb['xmpp_limits_txt'] = 'Limites xmpp'; $wb['database_limits_txt'] = 'Limites de banco de dados'; $wb['cron_job_limits_txt'] = 'Limites de tarefas no cron'; -$wb['dns_limits_txt'] = 'Limites de DNS'; -$wb['virtualization_limits_txt'] = 'Limites de virtualização'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['active_template_additional_txt'] = 'Complementos ativos'; -$wb['bank_account_owner_txt'] = 'Proprietário da conta corrente'; -$wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; -$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou em branco).'; +$wb['dns_limits_txt'] = 'Limites de registros dns'; +$wb['virtualization_limits_txt'] = 'Limites de máquinas virtuais'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['email_error_isemail'] = 'Por favor, insira um endereço de e-mail válido.'; +$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo ou não pode estar está em branco.'; $wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.'; -$wb['paypal_email_txt'] = 'e-mail do PayPal'; -$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \"personalizado\" for selecionado.'; -$wb['aps_limits_txt'] = 'Limites de apps instalados'; -$wb['limit_aps_txt'] = 'Limite de instâncias de apps'; -$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; +$wb['paypal_email_txt'] = 'e-Mail do PayPal'; +$wb['err_msg_master_tpl_set'] = 'Todas as configurações de limites serão ignoradas se for selecionado a opção de gabarito personalizado.'; +$wb['aps_limits_txt'] = 'Limites de instalações de APPs'; +$wb['limit_aps_txt'] = 'Limite de instâncias de APPs'; +$wb['limit_aps_error_notint'] = 'O limite de instâncias de APPs deve ser um número.'; $wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão'; -$wb['locked_txt'] = 'Bloqueado (web desabilitado)'; -$wb['canceled_txt'] = 'Cancelado (acesso do cliente desabilitado)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; +$wb['canceled_txt'] = 'Cancelado (desabilita o acesso do cliente.)'; $wb['gender_txt'] = 'TÃtulo'; $wb['gender_m_txt'] = 'Sr.'; $wb['gender_f_txt'] = 'Sra.'; -$wb['added_by_txt'] = 'Cadastrado por'; -$wb['added_date_txt'] = 'Data do cadastro'; -$wb['parent_client_id_txt'] = 'Cliente da revenda'; -$wb['none_txt'] = 'nenhum'; -$wb['email_error_empty'] = 'e-mail está em branco.'; -$wb['xmpp_limits_txt'] = 'Limites XMPP'; $wb['web_servers_txt'] = 'Servidores web'; -$wb['web_servers_placeholder'] = 'Selecionar servidores web'; -$wb['no_web_server_error'] = 'Ao menos um servidor de páginas deve ser selecionado.'; -$wb['web_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor de páginas. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['dns_servers_txt'] = 'Servidores dns'; -$wb['dns_servers_placeholder'] = 'Selecionar servidores dns'; -$wb['no_dns_server_error'] = 'Ao menos um servidor dns deve ser selecionado.'; -$wb['dns_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor dns. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['db_servers_txt'] = 'Servidor de banco de dados'; -$wb['db_servers_placeholder'] = 'Selecione o servidor de banco de dados'; +$wb['web_servers_placeholder'] = 'Selecione os servidores web'; +$wb['no_web_server_error'] = 'Ao menos um servidor web deve ser selecionado.'; +$wb['web_servers_used'] = 'O servidor web que você está tentando remover para este cliente é utilizado pelo mesmo. Certifique-se que este servidor não esteja em uso pelo cliente antes de removê-lo.'; +$wb['dns_servers_txt'] = 'Servidores DNS'; +$wb['dns_servers_placeholder'] = 'Selecione os servidores dns'; +$wb['no_dns_server_error'] = 'Ao menos um servidor DNS deve ser selecionado.'; +$wb['dns_servers_used'] = 'O servidor dns que você está tentando remover para este cliente é utilizado pelo mesmo. Certifique-se que este servidor não esteja em uso pelo cliente antes de removê-lo.'; +$wb['db_servers_txt'] = 'Servidores de banco de dados'; +$wb['db_servers_placeholder'] = 'Selecione os servidores de banco de dados'; $wb['no_db_server_error'] = 'Ao menos um servidor de banco de dados deve ser selecionado.'; -$wb['db_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor de banco de dados. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.'; +$wb['db_servers_used'] = 'O servidor de banco de dados que você está tentando remover para este cliente é utilizado pelo mesmo. Certifique-se que este servidor não esteja em uso pelo cliente antes de removê-lo.'; $wb['mail_servers_txt'] = 'Servidores de e-mail'; $wb['mail_servers_placeholder'] = 'Selecione os servidores de e-mail'; -$wb['no_mail_server_error'] = 'Ao menos um servidor de e-mail deve ser selecionado'; -$wb['mail_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor de e-mail. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.'; +$wb['no_mail_server_error'] = 'Ao menos um servidor de e-mail deve ser selecionado.'; +$wb['mail_servers_used'] = 'O servidor de e-mail que você está tentando remover para este cliente é utilizado pelo mesmo. Certifique-se que este servidor não esteja em uso pelo cliente antes de removê-lo.'; $wb['xmpp_servers_txt'] = 'Servidores XMPP'; -$wb['xmpp_servers_placeholder'] = 'Selecione os servidores XMPP'; -$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.'; -$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor XMPP. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['limit_xmpp_domain_error_notint'] = 'Limite de domÃnios XMPP deve ser um número.'; -$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários XMPP deve ser um número.'; -$wb['limit_xmpp_domain_txt'] = 'Limite de domÃnios XMPP'; -$wb['limit_xmpp_user_txt'] = 'Limite de contas XMPP'; -$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponÃvel'; +$wb['xmpp_servers_placeholder'] = 'Selecione o(s) servidor(es) xmpp'; +$wb['no_xmpp_server_error'] = 'Ao menos um servidor xmpp deve ser selecionado.'; +$wb['xmpp_servers_used'] = 'O servidor xmpp que você está tentando remover para este cliente é utilizado pelo mesmo. Certifique-se que este servidor não esteja em uso pelo cliente antes de removê-lo.'; +$wb['limit_xmpp_domain_error_notint'] = 'O limite de domÃnios xmpp deve ser um número.'; +$wb['limit_xmpp_user_error_notint'] = 'O limite de usuários xmpp deve ser um número.'; +$wb['limit_xmpp_domain_txt'] = 'Limite de domÃnios xmpp'; +$wb['limit_xmpp_user_txt'] = 'Limite de usuários xmpp'; +$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário (MUC) disponÃvel'; $wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponÃvel'; -$wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponÃvel'; +$wb['limit_xmpp_httparchive_txt'] = 'Arquivos http para MUC disponÃvel'; $wb['limit_xmpp_anon_txt'] = 'Host anônimo disponÃvel'; -$wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponÃvel'; +$wb['limit_xmpp_vjud_txt'] = 'Diretório de usuários VJUD disponÃvel'; $wb['limit_xmpp_proxy_txt'] = 'Proxy Bytestream disponÃvel'; $wb['limit_xmpp_status_txt'] = 'Estado do host disponÃvel'; -$wb['limit_database_quota_txt'] = 'Cota para banco de dados'; -$wb['limit_database_quota_error_notint'] = 'A cota para banco de dados deve ser um número.'; +$wb['added_by_txt'] = 'Cadastrado por'; +$wb['added_date_txt'] = 'Data do cadastro'; +$wb['parent_client_id_txt'] = 'Cliente da revenda'; +$wb['none_txt'] = 'nenhum'; +$wb['limit_database_quota_txt'] = 'Cota do banco de dados'; +$wb['limit_database_quota_error_notint'] = 'O limite da cota de banco de dados deve ser um número.'; +$wb['limit_database_user_txt'] = 'Limite de usuários do banco de dados'; +$wb['limit_database_user_error_notint'] = 'O limite de usuários do banco de dados deve ser um número.'; $wb['reseller_txt'] = 'Revenda'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['invalid_vat_id'] = 'O VAT ID é inválido.'; -$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados'; -$wb['limit_database_user_error_notint'] = 'Limite de usuários de banco de dados deve ser um número.'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponÃvel'; -$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configurações do servidor de páginas'; -$wb['password_click_to_set_txt'] = 'Selecionar para configurar'; -$wb['limit_dns_record_error_notint'] = 'O limite de registros dns deve ser um número.'; +$wb['invalid_vat_id'] = 'O ID do VAT é inválido.'; +$wb['email_error_empty'] = 'O e-mail está em branco'; +$wb['limit_directive_snippets_txt'] = 'Exibir configurações de seleção do servidor web'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limites'; ?> diff --git a/interface/web/client/lib/lang/br_client_circle.lng b/interface/web/client/lib/lang/br_client_circle.lng index 364172f1ae95a7ebfea3b25ff7b4d14b63e2fade..6c6cb132718096bfddefebf37f4f7aae72ba0216 100644 --- a/interface/web/client/lib/lang/br_client_circle.lng +++ b/interface/web/client/lib/lang/br_client_circle.lng @@ -1,6 +1,6 @@ <?php -$wb['Client Circle'] = 'CÃrculo de cliente'; -$wb['Circle'] = 'CÃrculo'; +$wb['Client Circle'] = 'CÃrculos de clientes'; +$wb['Circle'] = 'CÃrculos'; $wb['circle_txt'] = 'CÃrculo'; $wb['circle_name_txt'] = 'Nome do cÃrculo'; $wb['client_ids_txt'] = 'Clientes/Revendas'; diff --git a/interface/web/client/lib/lang/br_client_circle_list.lng b/interface/web/client/lib/lang/br_client_circle_list.lng index 857984f89242486b498a08b6aa15badfbb5f9f62..1c1a43f49aad36796541c4c268f0f80ff65f0496 100644 --- a/interface/web/client/lib/lang/br_client_circle_list.lng +++ b/interface/web/client/lib/lang/br_client_circle_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'CÃrculos de Clientes'; -$wb['circle_id_txt'] = 'ID do CÃrculo'; -$wb['circle_name_txt'] = 'Nome do CÃrculo'; +$wb['list_head_txt'] = 'CÃrculo de clientes'; +$wb['circle_id_txt'] = 'ID do cÃrculo'; +$wb['circle_name_txt'] = 'Nome do cÃrculo'; $wb['description_txt'] = 'Descrição'; $wb['add_new_record_txt'] = 'Adicionar novo cÃrculo'; $wb['filter_txt'] = 'Filtro'; diff --git a/interface/web/client/lib/lang/br_client_del.lng b/interface/web/client/lib/lang/br_client_del.lng index 6c3e4e668aa11432131cd98c7fdfa925b939e695..fbea0a66a06dfa148ad048f001b4c22aae69baf7 100644 --- a/interface/web/client/lib/lang/br_client_del.lng +++ b/interface/web/client/lib/lang/br_client_del.lng @@ -1,7 +1,10 @@ <?php $wb['confirm_action_txt'] = 'Confirmar ação'; -$wb['delete_explanation'] = 'Atenção: está ação removerá todos os objetos associados ao cliente!'; +$wb['delete_explanation'] = 'Esta ação removerá os seguintes registros associados a este cliente.'; $wb['btn_save_txt'] = 'Remover o cliente'; $wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente'; $wb['confirm_client_delete_txt'] = 'Você tem certeza que deseja remover este cliente?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/br_client_message.lng b/interface/web/client/lib/lang/br_client_message.lng index 802dcca368aaa7e1691bc72ca39ee6abb1421395..75aa3480c5af620a875cd30b700928b9e0f0074c 100644 --- a/interface/web/client/lib/lang/br_client_message.lng +++ b/interface/web/client/lib/lang/br_client_message.lng @@ -1,16 +1,16 @@ <?php +$wb['page_head_txt'] = 'Enviar informações do cliente'; $wb['btn_send_txt'] = 'Enviar e-mail'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['sender_txt'] = 'Remetente'; +$wb['sender_txt'] = 'e-Mail do remetente'; $wb['subject_txt'] = 'Assunto'; $wb['message_txt'] = 'Mensagem'; -$wb['form_legend_client_txt'] = 'Enviar mensagem a todos os clientes.'; -$wb['form_legend_admin_txt'] = 'Enviar mensagem a todos clientes e revendas.'; -$wb['sender_invalid_error'] = 'O e-mail do remetente é é inválido.'; -$wb['subject_invalid_error'] = 'O assunto está em branco.'; -$wb['message_invalid_error'] = 'A mensagem está em branco.'; -$wb['email_sent_to_txt'] = 'Enviar e-mail para:'; -$wb['page_head_txt'] = 'Enviar informações aos clientes'; +$wb['form_legend_client_txt'] = 'Enviar e-mail para clientes.'; +$wb['form_legend_admin_txt'] = 'Enviar e-mail para clientes e revendas.'; +$wb['sender_invalid_error'] = 'Remetente inválido.'; +$wb['subject_invalid_error'] = 'Assunto está em branco.'; +$wb['message_invalid_error'] = 'Mensagem está em branco.'; +$wb['email_sent_to_txt'] = 'e-Mail enviado para:'; $wb['recipient_txt'] = 'Destinatário'; $wb['all_clients_resellers_txt'] = 'Todos os clientes e revendas'; $wb['all_clients_txt'] = 'Todos os clientes'; diff --git a/interface/web/client/lib/lang/br_client_message_template.lng b/interface/web/client/lib/lang/br_client_message_template.lng index eb3c0b99382144c3017a9a9060973e30de8a82ab..8fb0934837872af9fd6eebfe68ba219e382b96b2 100644 --- a/interface/web/client/lib/lang/br_client_message_template.lng +++ b/interface/web/client/lib/lang/br_client_message_template.lng @@ -4,10 +4,10 @@ $wb['template_name_txt'] = 'Nome do gabarito'; $wb['subject_txt'] = 'Assunto'; $wb['message_txt'] = 'Mensagem'; $wb['Email template'] = 'Gabarito do e-mail'; -$wb['Settings'] = 'Configuração'; +$wb['Settings'] = 'Configurações'; $wb['variables_txt'] = 'Variáveis'; -$wb['variables_description_txt'] = '(As variáveis usuário e senha estão disponÃveis apenas em e-mails de boas vindas.)'; -$wb['duplicate_welcome_error'] = 'DisponÃvel apenas para o gabarito padrão de e-mail de boas vindas. Por favor edite o gabarito existente ou adicione um novo gabarito.'; -$wb['subject_error_empty'] = 'Subject is empty'; -$wb['message_error_empty'] = 'Message is empty'; +$wb['variables_description_txt'] = '(Variáveis de usuário e senha só estão disponÃveis em e-mail de boas-vindas.)'; +$wb['duplicate_welcome_error'] = 'Só pode existir apenas um gabarito de e-mail de boas-vindas. Edite o modelo existente ao invés de adicionar um novo.'; +$wb['subject_error_empty'] = 'Assunto está em branco.'; +$wb['message_error_empty'] = 'Mensagem está em branco.'; ?> diff --git a/interface/web/client/lib/lang/br_client_message_template_list.lng b/interface/web/client/lib/lang/br_client_message_template_list.lng index 9853a71ad3d5e7687a8e8c041449114c22eabcd5..36737693548ded01de015f277df8c59104f881cd 100644 --- a/interface/web/client/lib/lang/br_client_message_template_list.lng +++ b/interface/web/client/lib/lang/br_client_message_template_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Gabarito de e-mails'; +$wb['list_head_txt'] = 'Gabaritos de e-mail'; $wb['template_type_txt'] = 'Mensagem de'; $wb['template_name_txt'] = 'Nome do gabarito'; ?> diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng index bc7124b16cfae24f37b7b307dbd05332368add8c..c09c622bb2794a0cdf689ea31849ee75da65cf92 100644 --- a/interface/web/client/lib/lang/br_client_template.lng +++ b/interface/web/client/lib/lang/br_client_template.lng @@ -1,123 +1,126 @@ <?php -$wb['limit_client_error_notint'] = 'Limite de clientes não é um número.'; +$wb['template_type_txt'] = 'Tipo de gabarito'; +$wb['template_name_txt'] = 'Nome do gabarito'; +$wb['limit_client_error_notint'] = 'Limite de cliente não é um número.'; +$wb['default_mailserver_txt'] = 'Servidor de e-mail padrão'; $wb['limit_maildomain_txt'] = 'Limite de domÃnios de e-mail'; -$wb['limit_mailbox_txt'] = 'Limite de caixas postais'; -$wb['limit_mailalias_txt'] = 'Limite de apelidos de e-mail'; -$wb['limit_mailforward_txt'] = 'Limite de redirecionamentos de e-mail'; -$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo'; -$wb['limit_mailrouting_txt'] = 'Limite de transportes de e-mails'; +$wb['limit_mailbox_txt'] = 'Limite de contas de e-mail'; +$wb['limit_mailalias_txt'] = 'Limite de alias de e-mail'; +$wb['limit_mailaliasdomain_txt'] = 'Limite de alias de domÃnios de e-mail'; +$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mail'; +$wb['limit_mailforward_txt'] = 'Limite de encaminhamentos de e-mail'; +$wb['limit_mailcatchall_txt'] = 'Limite de contas cata-tudo'; +$wb['limit_mailrouting_txt'] = 'Limite de rotas de e-mail'; $wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail'; $wb['limit_fetchmail_txt'] = 'Limite de contas de busca'; -$wb['limit_mailquota_txt'] = 'Espaço da caixa postal'; -$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam permitidos lista branca/negra'; -$wb['limit_spamfilter_user_txt'] = 'Limite de usuários de filtros anti-spam'; +$wb['limit_mailquota_txt'] = 'Cota da conta de e-mail'; +$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam "lista branca/negra"'; +$wb['limit_spamfilter_user_txt'] = 'Limite de filtros anti-spam para conta de e-mail'; $wb['limit_spamfilter_policy_txt'] = 'Limite de polÃticas anti-spam'; $wb['limit_domain_txt'] = 'Limite de domÃnios'; -$wb['limit_subdomain_txt'] = 'Limite de subdomÃnios'; -$wb['limit_webquota_txt'] = 'Cota de site'; +$wb['limit_subdomain_txt'] = 'Limite de sub-domÃnios'; +$wb['limit_webquota_txt'] = 'Limite da cota de site'; $wb['limit_database_txt'] = 'Limite de banco de dados'; +$wb['limit_cron_txt'] = 'Limite de tarefas no cron'; +$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefa no cron (chroot e url implÃcitas)'; +$wb['limit_cron_frequency_txt'] = 'Tempo de espera entre as execuções'; +$wb['default_webserver_txt'] = 'Servidor web padrão'; $wb['limit_web_domain_txt'] = 'Limite de domÃnios de site'; -$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos de domÃnio de site'; -$wb['limit_web_subdomain_txt'] = 'Limite de subdomÃnios de site'; -$wb['limit_ftp_user_txt'] = 'Limite de usuários ftp'; -$wb['limit_dns_zone_txt'] = 'Limite de zonas dns primárias'; +$wb['limit_web_aliasdomain_txt'] = 'Limite de alias de domÃnios de site'; +$wb['limit_web_subdomain_txt'] = 'Limite de sud-domÃnios de site'; +$wb['limit_ftp_user_txt'] = 'Limite de usuário FTP'; +$wb['default_dnsserver_txt'] = 'Servidor DNS padrão'; +$wb['limit_dns_zone_txt'] = 'Limite de zonas dns'; +$wb['default_slave_dnsserver_txt'] = 'Servidor DNS secundário'; $wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias'; $wb['limit_dns_record_txt'] = 'Limite de registros dns'; -$wb['limit_shell_user_txt'] = 'Limite de usuários shell'; +$wb['limit_shell_user_txt'] = 'Limite de usuários do shell'; +$wb['limit_webdav_user_txt'] = 'Limite de usuário Webdav'; +$wb['limit_backup_txt'] = 'Funções de backup disponÃvel'; $wb['limit_client_txt'] = 'Limite de clientes'; -$wb['limit_maildomain_error_notint'] = 'Limite de e-mails deve ser um número'; -$wb['limit_mailbox_error_notint'] = 'Limite de caixas postais deve ser um número'; -$wb['limit_mailalias_error_notint'] = 'Limite de apelidos de domÃnio de e-mails deve ser um número'; -$wb['limit_mailforward_error_notint'] = 'Limite de redirecionamentos de e-mail deve ser um número'; -$wb['limit_mailcatchall_error_notint'] = 'Limite de contas cata tudo deve ser um número'; -$wb['limit_mailrouting_error_notint'] = 'Limite de transportes de e-mails deve ser um número'; -$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de e-mails deve ser um número.'; -$wb['limit_mailfetchmail_error_notint'] = 'Limite de contas de busca deve ser um número.'; -$wb['limit_mailquota_error_notint'] = 'Cota de e-mail deve ser um número.'; -$wb['limit_spamfilter_wblist_error_notint'] = 'Limite de filtros anti-spam lista branca/negra deve ser um número'; -$wb['limit_spamfilter_user_error_notint'] = 'Limite de filtros anti-spam deve ser um número.'; -$wb['limit_spamfilter_policy_error_notint'] = 'Limite de polÃticas anti-spam deve ser um número.'; -$wb['limit_web_domain_error_notint'] = 'Limite de sites deve ser um número'; -$wb['limit_web_aliasdomain_error_notint'] = 'Limite de apelidos de domÃnio de site deve ser um número'; -$wb['limit_web_subdomain_error_notint'] = 'Limite de subdomÃnios de site deve ser um número'; -$wb['limit_ftp_user_error_notint'] = 'Limite de contas FTP deve ser um número'; -$wb['limit_shell_user_error_notint'] = 'Limite de contas shell deve ser um número'; -$wb['limit_dns_zone_error_notint'] = 'Limite de zonas DNS primárias deve ser um número'; -$wb['limit_dns_slave_zone_error_notint'] = 'Limite de zonas DNS secundárias deve ser um número.'; -$wb['limit_dns_record_error_notint'] = 'Limite de registros DNS deve ser um número.'; -$wb['limit_database_error_notint'] = 'Limite de banco de dados deve ser um número'; -$wb['error_template_name_empty'] = 'Por favor insira o nome do gabarito'; -$wb['limit_cron_txt'] = 'Limite de tarefas no cron'; -$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefas no cron (em chroot e url completas)'; -$wb['limit_cron_frequency_txt'] = 'Intervalo mÃnimo entre as execuções'; -$wb['limit_cron_error_notint'] = 'Limite do cron deve ser um número.'; -$wb['limit_cron_error_frequency'] = 'Limite de frequência do cron deve ser um número.'; -$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domÃnio de e-mails'; -$wb['limit_mailaliasdomain_error_notint'] = 'Limite de apelidos de domÃnio de e-mails deve ser um número.'; +$wb['limit_maildomain_error_notint'] = 'O limite de domÃnios de e-mail deve ser um número.'; +$wb['limit_mailmailinglist_error_notint'] = 'O limite de listas de e-mail deve ser um número.'; +$wb['limit_mailbox_error_notint'] = 'O limite de contas de e-mail deve ser um número.'; +$wb['limit_mailalias_error_notint'] = 'O limite de alias de e-mail deve ser um número.'; +$wb['limit_mailaliasdomain_error_notint'] = 'O limite de alias de domÃnios deve ser um número.'; +$wb['limit_mailforward_error_notint'] = 'O limite de encaminhamento de e-mails deve ser um número.'; +$wb['limit_mailcatchall_error_notint'] = 'O limite de contas cata-tudo deve ser um número.'; +$wb['limit_mailrouting_error_notint'] = 'O limite de rotas de e-mail deve ser um número.'; +$wb['limit_mailfilter_error_notint'] = 'O limite de filtros de e-mail deve ser um número.'; +$wb['limit_mailfetchmail_error_notint'] = 'O limite de contas de busca deve ser um número.'; +$wb['limit_mailquota_error_notint'] = 'O limite da cota de e-mails deve ser um número.'; +$wb['limit_spamfilter_wblist_error_notint'] = 'O limite de filtros anti-spam "lista branca/negra" deve ser um número.'; +$wb['limit_spamfilter_user_error_notint'] = 'O limite de filtros anti-spam por conta de e-mail deve ser um número.'; +$wb['limit_spamfilter_policy_error_notint'] = 'O limite de polÃticas anti-spam deve ser um número.'; +$wb['limit_web_domain_error_notint'] = 'O limite de sites deve ser um número.'; +$wb['limit_web_aliasdomain_error_notint'] = 'O limite de alias de domÃnio para sites deve ser um número.'; +$wb['limit_web_subdomain_error_notint'] = 'O limite de sub-domÃnios para site deve ser um número.'; +$wb['limit_ftp_user_error_notint'] = 'O limite de usuários ftp deve ser um número.'; +$wb['limit_shell_user_error_notint'] = 'O limite de usuários do shell deve ser um número.'; +$wb['limit_webdav_user_error_notint'] = 'O limite de usuários webdav deve ser um número.'; +$wb['limit_dns_zone_error_notint'] = 'O limite de zonas dns deve ser um número.'; +$wb['limit_dns_slave_zone_error_notint'] = 'O limite de zonas dns secundárias deve ser um número.'; +$wb['limit_dns_record_error_notint'] = 'O limite de registros dns deve ser um número.'; +$wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; +$wb['limit_database_txt'] = 'Limite de banco de dados'; +$wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número.'; +$wb['limit_cron_error_notint'] = 'O limite de tarefas no cron deve ser um número.'; +$wb['limit_cron_error_frequency'] = 'O limite de execuções no cron deve ser um número.'; +$wb['error_template_name_empty'] = 'Por favor, insira um nome para o gabarito'; $wb['limit_web_quota_txt'] = 'Cota de site'; -$wb['limit_traffic_quota_txt'] = 'Cota de Tráfego'; -$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego deve ser um número.'; -$wb['template_del_aborted_txt'] = 'Remoção abortada. Ainda existem clientes com o gabarito selecionado.'; -$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav'; -$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.'; -$wb['limit_backup_txt'] = 'Funções de backup disponÃveis'; -$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails'; -$wb['limit_mailmailinglist_error_notint'] = 'Limite de listas de e-mails deve ser um número.'; -$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais'; -$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual'; -$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.'; -$wb['ssh_chroot_txt'] = 'Opções SSH-Chroot'; +$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; +$wb['limit_trafficquota_error_notint'] = 'Cota de tráfego deve ser um número.'; +$wb['template_del_aborted_txt'] = 'Remover cancelado. Ainda existe algum cliente com este gabarito em uso.'; +$wb['limit_openvz_vm_txt'] = 'Limite de máquinas virtuais'; +$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito para máquina virtual'; +$wb['limit_openvz_vm_error_notint'] = 'O limite de máquinas virtuais deve ser um número.'; +$wb['ssh_chroot_txt'] = 'Opções de SSH-Chroot'; $wb['web_php_options_txt'] = 'Opções PHP'; -$wb['template_type_txt'] = 'Tipo de Gabarito'; -$wb['template_name_txt'] = 'Nome do Gabarito'; $wb['limit_cgi_txt'] = 'CGI disponÃvel'; $wb['limit_ssi_txt'] = 'SSI disponÃvel'; $wb['limit_perl_txt'] = 'Perl disponÃvel'; $wb['limit_ruby_txt'] = 'Ruby disponÃvel'; $wb['limit_python_txt'] = 'Python disponÃvel'; $wb['force_suexec_txt'] = 'Forçar SuEXEC'; -$wb['limit_hterror_txt'] = 'Diretório \"Custom error docs\" disponÃvel'; -$wb['limit_wildcard_txt'] = 'Curingas de subdomÃnios disponÃveis'; +$wb['limit_hterror_txt'] = 'Custom-error-docs disponÃvel'; +$wb['limit_wildcard_txt'] = 'Curingas de sub-domÃnio disponÃvel'; $wb['limit_ssl_txt'] = 'SSL disponÃvel'; -$wb['web_limits_txt'] = 'Limites web'; -$wb['email_limits_txt'] = 'Limites de e-mail'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let'; +$wb['web_limits_txt'] = 'Limites de site'; +$wb['email_limits_txt'] = 'Limites de e-mails'; $wb['database_limits_txt'] = 'Limites de banco de dados'; -$wb['cron_job_limits_txt'] = 'Limites de tarefas no cron'; +$wb['cron_job_limits_txt'] = 'Limite de tarefas no cron'; $wb['dns_limits_txt'] = 'Limites de DNS'; $wb['virtualization_limits_txt'] = 'Limites de virtualização'; -$wb['aps_limits_txt'] = 'Limites de instalações de apps'; -$wb['limit_aps_txt'] = 'Limites de instâncias de apps'; -$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; +$wb['aps_limits_txt'] = 'Limites de instalações de aplicações - APPs'; +$wb['limit_aps_txt'] = 'Limite de instâncias para APPs'; +$wb['limit_aps_error_notint'] = 'O limite de instância para APPs deve ser um número.'; $wb['limit_domainmodule_txt'] = 'Limites de módulos de domÃnio'; $wb['client_limits_txt'] = 'Limites de clientes'; -$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão'; -$wb['default_webserver_txt'] = 'Servidor de páginas padrão'; -$wb['default_dnsserver_txt'] = 'Servidor DNS padrão'; -$wb['default_slave_dnsserver_txt'] = 'Servidor DNS secundário padrão'; -$wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; -$wb['limit_database_quota_txt'] = 'Cota para banco de dados'; -$wb['limit_database_quota_error_notint'] = 'Limite da cota para banco de dados deve ser um número.'; -$wb['xmpp_limits_txt'] = 'Limites XMPP'; -$wb['xmpp_servers_txt'] = 'Servidores XMPP'; -$wb['xmpp_servers_placeholder'] = 'Selecionar servidores XMPP'; -$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.'; -$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor XMPP. Tenha certeza que este servidor não é usando por este cliente antes de removê-lo.'; -$wb['limit_xmpp_domain_error_notint'] = 'Limite de domÃnios XMPP deve ser um número.'; -$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários XMPP deve ser um número.'; -$wb['limit_xmpp_domain_txt'] = 'Limite de domÃnios XMPP'; -$wb['limit_xmpp_user_txt'] = 'Limite de contas XMPP'; +$wb['limit_database_quota_txt'] = 'Cotas de banco de dados'; +$wb['limit_database_quota_error_notint'] = 'O limite das cotas de banco de dados deve ser um número.'; +$wb['xmpp_limits_txt'] = 'Limites de xmpp'; +$wb['xmpp_servers_txt'] = 'Servidores xmpp'; +$wb['xmpp_servers_placeholder'] = 'Selecione o(s) servidor(es) xmpp'; +$wb['no_xmpp_server_error'] = 'Ao menos um servidor xmpp deve ser selecionado.'; +$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor xmpp. Garanta que este servidor não é usado por este cliente antes de removê-lo.'; +$wb['limit_xmpp_domain_error_notint'] = 'O limite de domÃnios xmpp deve ser um número.'; +$wb['limit_xmpp_user_error_notint'] = 'O limite de usuários xmpp deve ser um número.'; +$wb['limit_xmpp_domain_txt'] = 'Limite de domÃnios xmpp'; +$wb['limit_xmpp_user_txt'] = 'Limite de usuários xmpp'; $wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponÃvel'; $wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponÃvel'; -$wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponÃvel'; +$wb['limit_xmpp_httparchive_txt'] = 'Arquivos http para MUC disponÃvel'; $wb['limit_xmpp_anon_txt'] = 'Host anônimo disponÃvel'; $wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponÃvel'; $wb['limit_xmpp_proxy_txt'] = 'Proxy Bytestream disponÃvel'; $wb['limit_xmpp_status_txt'] = 'Estado do host disponÃvel'; -$wb['dns_servers_txt'] = 'Servidores DNS'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponÃvel'; -$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configuração do servidor de páginas'; -$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados'; +$wb['dns_servers_txt'] = 'Servidores dns'; +$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configurações do servidor web'; +$wb['limit_database_user_txt'] = 'Limite de usuários do banco de dados'; $wb['web_servers_txt'] = 'Servidores web'; +$wb['dns_servers_txt'] = 'Servidores dns'; +$wb['xmpp_servers_txt'] = 'Servidores xmpp'; $wb['db_servers_txt'] = 'Servidores de banco de dados'; $wb['mail_servers_txt'] = 'Servidores de e-mail'; $wb['Limits'] = 'Limites'; diff --git a/interface/web/client/lib/lang/br_client_template_list.lng b/interface/web/client/lib/lang/br_client_template_list.lng index 46217880165e325db0b90b9a788b775ed89ee106..47bd2e5779ed45cbeef57ed9d7021b33bda5b7f3 100644 --- a/interface/web/client/lib/lang/br_client_template_list.lng +++ b/interface/web/client/lib/lang/br_client_template_list.lng @@ -1,6 +1,7 @@ <?php -$wb['list_head_txt'] = 'Gabarito de limites para clientes'; +$wb['list_head_txt'] = 'Gabaritos de clientes e revendas'; $wb['template_type_txt'] = 'Tipo'; -$wb['template_name_txt'] = 'Nome do Gabarito'; -$wb['template_id_txt'] = 'ID do Gabarito'; +$wb['template_name_txt'] = 'Nome do gabarito'; +$wb['template_id_txt'] = 'ID do gabarito'; +$wb['sys_groupid_txt'] = 'Revenda'; ?> diff --git a/interface/web/client/lib/lang/br_clients_list.lng b/interface/web/client/lib/lang/br_clients_list.lng index 7470bd27c4fc66bacc805adaa05e1626885ca35e..8016151a9bd270bd389fce43947b3c19f14f5f69 100644 --- a/interface/web/client/lib/lang/br_clients_list.lng +++ b/interface/web/client/lib/lang/br_clients_list.lng @@ -3,12 +3,12 @@ $wb['list_head_txt'] = 'Clientes'; $wb['client_id_txt'] = 'ID'; $wb['company_name_txt'] = 'Empresa'; $wb['contact_name_txt'] = 'Contato'; +$wb['username_txt'] = 'Usuário'; $wb['city_txt'] = 'Cidade'; $wb['country_txt'] = 'PaÃs'; $wb['add_new_record_txt'] = 'Adicionar novo cliente'; -$wb['username_txt'] = 'Usuário'; -$wb['customer_no_txt'] = 'Código do Cliente'; -$wb['locked_txt'] = 'Locked'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; +$wb['customer_no_txt'] = 'Código do cliente'; +$wb['locked_txt'] = 'Bloqueado'; +$wb['yes_txt'] = 'Sim'; +$wb['no_txt'] = 'Não'; ?> diff --git a/interface/web/client/lib/lang/br_domain.lng b/interface/web/client/lib/lang/br_domain.lng index 26c205a56ba31e04b9c2fb8d22c577d0285b3e7d..988976d2ce5ef0da5f79ae5c6349505e9ffda855 100644 --- a/interface/web/client/lib/lang/br_domain.lng +++ b/interface/web/client/lib/lang/br_domain.lng @@ -1,6 +1,6 @@ <?php -$wb['domain_error_empty'] = 'Nome do domÃnio está em branco.'; -$wb['domain_error_unique'] = 'Nome do domÃnio já existe.'; -$wb['domain_error_regex'] = 'Nome do domÃnio não é permitido.'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; +$wb['domain_error_unique'] = 'O domÃnio já existe.'; +$wb['domain_error_regex'] = 'O nome do domÃnio não é permitido.'; $wb['Domain'] = 'DomÃnio'; ?> diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng index d90d3b15a2af1f665bdbf0ca923ee552a74a4f17..322235d36b21299c2bf22c464da498bd92a613fd 100644 --- a/interface/web/client/lib/lang/br_reseller.lng +++ b/interface/web/client/lib/lang/br_reseller.lng @@ -1,26 +1,29 @@ <?php -$wb['limit_maildomain_txt'] = 'Limite de domÃnios de e-mails'; -$wb['limit_mailbox_txt'] = 'Limite de contas de e-mails'; -$wb['limit_mailalias_txt'] = 'Limite de apelidos de domÃnio de e-mails'; -$wb['limit_mailforward_txt'] = 'Limite de encaminhamentos de e-mails'; -$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo'; -$wb['limit_mailrouting_txt'] = 'Limite de transportes de e-mails'; -$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mails'; -$wb['limit_fetchmail_txt'] = 'Limite de contas de busca '; -$wb['limit_mailquota_txt'] = 'Cota de e-mail'; -$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam lista branca/negra'; -$wb['limit_spamfilter_user_txt'] = 'Limite de usuários de filtros anti-spam'; +$wb['limit_maildomain_txt'] = 'Limite de domÃnios de e-mail'; +$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mail'; +$wb['limit_mailbox_txt'] = 'Limite de contas de e-mail'; +$wb['limit_mailalias_txt'] = 'Limite de alias de e-mail'; +$wb['limit_mailaliasdomain_txt'] = 'Limite de alias de domÃnios'; +$wb['limit_mailforward_txt'] = 'Limite de encaminhamentos de e-mail'; +$wb['limit_mailcatchall_txt'] = 'Limite de contas cata-tudo'; +$wb['limit_mailrouting_txt'] = 'Limite de rotas de e-mail'; +$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail'; +$wb['limit_fetchmail_txt'] = 'Limite de contas de busca'; +$wb['limit_mailquota_txt'] = 'Cota de contas de e-mail'; +$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam "lista branca/negra"'; +$wb['limit_spamfilter_user_txt'] = 'Limite de filtros anti-spam por usuário'; $wb['limit_spamfilter_policy_txt'] = 'Limite de polÃticas anti-spam'; -$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão'; +$wb['default_mailserver_txt'] = 'Servidor de e-mail padrão'; $wb['company_name_txt'] = 'Empresa'; -$wb['contact_firstname_txt'] = 'Nome do contato'; -$wb['contact_name_txt'] = 'Sobrenome do contato'; +$wb['contact_firstname_txt'] = 'Contato'; +$wb['contact_name_txt'] = 'Nome do contato'; $wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; +$wb['password_click_to_set_txt'] = 'Clique para configurar'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['language_txt'] = 'Idioma'; $wb['usertheme_txt'] = 'Tema'; -$wb['street_txt'] = 'Rua'; +$wb['street_txt'] = 'Endereço'; $wb['zip_txt'] = 'CEP'; $wb['city_txt'] = 'Cidade'; $wb['state_txt'] = 'Estado'; @@ -28,180 +31,179 @@ $wb['country_txt'] = 'PaÃs'; $wb['telephone_txt'] = 'Telefone'; $wb['mobile_txt'] = 'Celular'; $wb['fax_txt'] = 'Fax'; -$wb['email_txt'] = 'e-mail'; -$wb['internet_txt'] = 'Internet'; -$wb['icq_txt'] = 'Skype/Telegram'; -$wb['notes_txt'] = 'Notas'; +$wb['email_txt'] = 'e-Mail'; +$wb['internet_txt'] = 'Site'; +$wb['icq_txt'] = 'Redes Sociais'; +$wb['notes_txt'] = 'Observações'; $wb['company_txt'] = 'Empresa'; $wb['title_txt'] = 'TÃtulo'; $wb['firstname_txt'] = 'Nome'; $wb['surname_txt'] = 'Sobrenome'; $wb['limit_domain_txt'] = 'Limite de domÃnios'; $wb['limit_subdomain_txt'] = 'Limite de subdomÃnios'; -$wb['limit_webquota_txt'] = 'Cota de site'; +$wb['limit_webquota_txt'] = 'Cota de sites'; $wb['limit_database_txt'] = 'Limite de banco de dados'; +$wb['limit_database_user_txt'] = 'Limite de usuários do banco de dados'; $wb['limit_cron_txt'] = 'Limite de tarefas no cron'; -$wb['limit_cron_type_txt'] = 'Limites de tarefas no cron (em chroot e url completas)'; -$wb['limit_cron_frequency_txt'] = 'Limite de tempo entre as execuções'; +$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefa no cron (chrooted e url implÃcitas)'; +$wb['limit_cron_frequency_txt'] = 'Tempo de espera entre as execuções'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['limit_client_error_notint'] = 'Limite de clientes para revenda deve ser um número.'; +$wb['limit_client_error_notint'] = 'O limite de clientes deve ser um número.'; $wb['firstname_error_empty'] = 'Nome está em branco.'; $wb['contact_error_empty'] = 'Contato está em branco.'; -$wb['default_webserver_txt'] = 'Servidor de páginas padrão'; +$wb['default_webserver_txt'] = 'Servidor web padrão'; $wb['limit_web_domain_txt'] = 'Limite de domÃnios de site'; -$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos'; -$wb['limit_web_subdomain_txt'] = 'Limite de subdomÃnios'; +$wb['limit_web_aliasdomain_txt'] = 'Limite de alias de domÃnios de site'; +$wb['limit_web_subdomain_txt'] = 'Limite subdomÃnios de site'; $wb['limit_ftp_user_txt'] = 'Limite de usuários ftp'; -$wb['default_dnsserver_txt'] = 'Servidor dns Padrão'; -$wb['limit_dns_zone_txt'] = 'Limite de de zonas dns'; +$wb['default_dnsserver_txt'] = 'Servidor dns padrão'; +$wb['limit_dns_zone_txt'] = 'Limite de zonas dns'; $wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias'; $wb['limit_dns_record_txt'] = 'Limite de registros dns'; -$wb['limit_shell_user_txt'] = 'Limite de usuários shell'; +$wb['limit_shell_user_txt'] = 'Limite de usuários do shell'; +$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav'; +$wb['limit_backup_txt'] = 'Função de backup disponÃvel'; $wb['limit_client_txt'] = 'Limite de clientes'; -$wb['username_error_empty'] = 'Nome do usuário está em branco.'; -$wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; -$wb['limit_maildomain_error_notint'] = 'Limite de domÃnios de e-mails deve ser um número.'; -$wb['limit_mailbox_error_notint'] = 'Limite de contas de e-mails deve ser um número.'; -$wb['limit_mailalias_error_notint'] = 'Limite de apelidos de domÃnio de e-mails deve ser um número.'; -$wb['limit_mailforward_error_notint'] = 'Limite de encaminhamentos de e-mails deve ser um número.'; -$wb['limit_mailcatchall_error_notint'] = 'Limite de contas cata tudo deve ser um número.'; -$wb['limit_mailrouting_error_notint'] = 'Limite de transportes de e-mails deve ser um número.'; -$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de e-mails deve ser um número.'; -$wb['limit_mailfetchmail_error_notint'] = 'Limite de contas de busca deve ser um número.'; -$wb['limit_mailquota_error_notint'] = 'A cota de e-mail deve ser um número.'; -$wb['limit_spamfilter_wblist_error_notint'] = 'Limite de filtros anti-spam lista branca/negra deve ser um número.'; -$wb['limit_spamfilter_user_error_notint'] = 'Limite de usuários de filtros anti-spam deve ser um número.'; -$wb['limit_spamfilter_policy_error_notint'] = 'Limite de polÃticas anti-spam deve ser um número.'; -$wb['limit_web_domain_error_notint'] = 'Limite de sites deve ser um número.'; -$wb['limit_web_aliasdomain_error_notint'] = 'Limite de apelidos de domÃnio de site deve ser um número.'; -$wb['limit_web_subdomain_error_notint'] = 'Limite de subdomÃnios de site deve ser um número.'; -$wb['limit_ftp_user_error_notint'] = 'Limite de usuários ftp deve ser um número.'; -$wb['limit_shell_user_error_notint'] = 'Limite de usuários shell deve ser um número.'; -$wb['limit_dns_zone_error_notint'] = 'Limite de registros dns deve ser um número.'; -$wb['limit_dns_slave_zone_error_notint'] = 'Limite de zonas dns secundárias deve ser um número.'; -$wb['limit_dns_record_error_notint'] = 'Limite de registros dns deve ser um número.'; +$wb['username_error_empty'] = 'Usuário está em branco.'; +$wb['username_error_unique'] = 'O nome de usuário deve ser exclusivo.'; +$wb['limit_maildomain_error_notint'] = 'O limite de domÃnios de e-mail deve ser um número.'; +$wb['limit_mailmailinglist_error_notint'] = 'O limite de registro de listas de e-mail deve ser um número.'; +$wb['limit_mailbox_error_notint'] = 'O limite de contas de e-mail deve ser um número.'; +$wb['limit_mailalias_error_notint'] = 'O limite de alias de e-mail deve ser um número.'; +$wb['limit_mailforward_error_notint'] = 'O limite de encaminhamentos deve ser um número.'; +$wb['limit_mailcatchall_error_notint'] = 'O limite de contas cata-tudo deve ser um número.'; +$wb['limit_mailrouting_error_notint'] = 'O limite de rotas de e-mail deve ser um número.'; +$wb['limit_mailfilter_error_notint'] = 'O limite de filtros de e-mail deve ser um número.'; +$wb['limit_mailfetchmail_error_notint'] = 'O limite de contas de busca deve ser um número.'; +$wb['limit_mailquota_error_notint'] = 'O limite das cotas de e-mail deve ser um número.'; +$wb['limit_spamfilter_wblist_error_notint'] = 'O limite de filtros anti-spam "lista branca/negra" deve ser um número.'; +$wb['limit_spamfilter_user_error_notint'] = 'O limite de filtros anti-spam por conta de e-mail deve ser um número.'; +$wb['limit_spamfilter_policy_error_notint'] = 'O limite de polÃticas anti-spam deve ser um número.'; +$wb['limit_web_domain_error_notint'] = 'O limite de sites deve ser um número.'; +$wb['limit_web_aliasdomain_error_notint'] = 'O limite de alias de domÃnios de site deve ser um número.'; +$wb['limit_web_subdomain_error_notint'] = 'O limite de subdomÃnios de site deve ser um número.'; +$wb['limit_ftp_user_error_notint'] = 'O limite de usuários ftp deve ser um número.'; +$wb['limit_webdav_user_error_notint'] = 'O limite de usuários webdav deve ser um número.'; +$wb['limit_shell_user_error_notint'] = 'O limite de usuários do shell deve ser um número.'; +$wb['limit_dns_zone_error_notint'] = 'O limite de zonas dns deve ser um número.'; +$wb['limit_dns_slave_zone_error_notint'] = 'O limite de zonas dns secundárias deve ser um número.'; +$wb['limit_dns_record_error_notint'] = 'O limite de registros dns deve ser um número.'; $wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; -$wb['limit_database_error_notint'] = 'Limite de banco de dados deve ser um número.'; -$wb['limit_cron_error_notint'] = 'Limite de tarefas no cron deve ser um número.'; -$wb['limit_cron_error_frequency'] = 'Limite de frequência no cron deve ser um número.'; +$wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número.'; +$wb['limit_cron_error_notint'] = 'O limite de tarefas no cron deve ser um número.'; +$wb['limit_cron_error_frequency'] = 'O limite da frequência de execuções no cron deve ser um número.'; $wb['username_error_regex'] = 'O nome do usuário contém caracteres inválidos.'; -$wb['template_master_txt'] = 'Gabarito mestre'; -$wb['template_additional_txt'] = 'Gabarito personalizado'; -$wb['ssh_chroot_txt'] = 'Opções do Chroot SSH'; -$wb['web_php_options_txt'] = 'Opções do PHP'; -$wb['limit_client_error'] = 'Limite de clientes foi alcançado.'; -$wb['limit_client_error_positive_or_unlimited'] = 'Limite de clientes deve ser > 0'; -$wb['limit_web_quota_txt'] = 'Cota de site'; -$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; -$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego deve ser um número.'; -$wb['customer_no_txt'] = 'Código do cliente.'; -$wb['vat_id_txt'] = 'VAT ID'; -$wb['required_fields_txt'] = '*Campos obrigatórios'; -$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails'; -$wb['limit_mailmailinglist_error_notint'] = 'Limite de listas de e-mails deve ser um número.'; -$wb['limit_webdav_user_txt'] = 'Limite de usuário webdav'; -$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.'; -$wb['limit_backup_txt'] = 'Função de backup disponÃvel'; -$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domÃnio de e-mails'; -$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais'; -$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual'; -$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.'; -$wb['web_php_options_notempty'] = 'Nenhuma opção do php selecionada. Selecione ao menos uma opção.'; -$wb['ssh_chroot_notempty'] = 'Nenhuma opção do ssh-chroot selecionada. Selecione ao menos uma opção.'; -$wb['username_error_collision'] = 'O nome do usuário não pode iniciar com a palavra -web- ou -web- seguida de um número.'; +$wb['template_master_txt'] = 'Gabarito Mestre'; +$wb['template_additional_txt'] = 'Gabarito Personalizado'; $wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado'; $wb['delete_additional_template_txt'] = 'Remover gabarito personalizado'; +$wb['ssh_chroot_txt'] = 'Opções SSH-Chroot'; +$wb['web_php_options_txt'] = 'Opções PHP'; $wb['limit_cgi_txt'] = 'CGI disponÃvel'; $wb['limit_ssi_txt'] = 'SSI disponÃvel'; $wb['limit_perl_txt'] = 'Perl disponÃvel'; $wb['limit_ruby_txt'] = 'Ruby disponÃvel'; $wb['limit_python_txt'] = 'Python disponÃvel'; -$wb['force_suexec_txt'] = 'SuEXEC forced'; +$wb['force_suexec_txt'] = 'Forçar SuEXEC'; $wb['limit_hterror_txt'] = 'Custom error docs disponÃvel'; -$wb['limit_wildcard_txt'] = 'Curingas de subdomÃnios disponÃveis'; +$wb['limit_wildcard_txt'] = 'Curingas de subdomÃnios disponÃvel'; $wb['limit_ssl_txt'] = 'SSL disponÃvel'; -$wb['web_limits_txt'] = 'Limites web'; -$wb['email_limits_txt'] = 'Limites de e-mails'; -$wb['database_limits_txt'] = 'Limites de banco de dados'; -$wb['cron_job_limits_txt'] = 'Limites de tarefas no cron'; -$wb['dns_limits_txt'] = 'Limites de dns'; -$wb['virtualization_limits_txt'] = 'Limites de virtualização'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponÃvel'; +$wb['limit_client_error'] = 'O limite de clientes para esta conta foi alcançado.'; +$wb['limit_client_error_positive_or_unlimited'] = 'O número de clientes deve ser > 0 ou -1 (ilimitado)'; +$wb['limit_web_quota_txt'] = 'Cota web'; +$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; +$wb['limit_trafficquota_error_notint'] = 'Cota de tráfego deve ser um número.'; +$wb['customer_no_txt'] = 'Código do cliente'; +$wb['vat_id_txt'] = 'VAT ID'; +$wb['required_fields_txt'] = '*Campos obrigatórios'; +$wb['limit_openvz_vm_txt'] = 'Limite de máquinas virtuais'; +$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito para máquina virtual'; +$wb['limit_openvz_vm_error_notint'] = 'O limite de máquinas virtuais deve ser um número.'; +$wb['web_php_options_notempty'] = 'Nenhuma opção PHP selecionado. Selecione ao menos uma opção PHP.'; +$wb['ssh_chroot_notempty'] = 'Nenhuma opção SSH chroot selecionada. Selecione ao menos uma opção SSH chroot.'; +$wb['username_error_collision'] = 'O nome de usuário não pode iniciar com -web- ou -web- seguida de um número.'; +$wb['web_limits_txt'] = 'Limite de site'; +$wb['email_limits_txt'] = 'Limites de e-mail'; +$wb['database_limits_txt'] = 'Limite de banco de dados'; +$wb['cron_job_limits_txt'] = 'Limites de tarefa no Cron'; +$wb['dns_limits_txt'] = 'Limites de DNS'; +$wb['virtualization_limits_txt'] = 'Limites de máquinas virtuais'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; -$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou deixe em branco).'; +$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo e não pode estar está em branco.'; $wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.'; -$wb['paypal_email_txt'] = 'e-mail do PayPal'; -$wb['company_id_txt'] = 'ID da empresa'; -$wb['bank_account_number_txt'] = 'Conta corrente'; -$wb['bank_account_owner_txt'] = 'Proprietário'; -$wb['bank_code_txt'] = 'Codigo do banco'; +$wb['paypal_email_txt'] = 'e-Mail PayPal'; +$wb['company_id_txt'] = 'Código da Empresa'; +$wb['bank_account_number_txt'] = 'Conta bancária'; +$wb['bank_account_owner_txt'] = 'Proprietário da conta bancária'; +$wb['bank_code_txt'] = 'Código do banco'; $wb['bank_name_txt'] = 'Nome do banco'; $wb['bank_account_iban_txt'] = 'IBAN'; $wb['bank_account_swift_txt'] = 'BIC/Swift'; -$wb['aps_limits_txt'] = 'Limites de instalações de apps'; -$wb['limit_aps_txt'] = 'Limites de instâncias de apps'; -$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; -$wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão'; +$wb['aps_limits_txt'] = 'Limites de instaladores de APPs'; +$wb['limit_aps_txt'] = 'Limite de instâncias de APPs'; +$wb['limit_aps_error_notint'] = 'O limite de instâncias de APPs deve ser um número.'; +$wb['default_slave_dnsserver_txt'] = 'Servidor DNS secundário padrão'; $wb['locked_txt'] = 'Bloqueado'; $wb['canceled_txt'] = 'Cancelado'; $wb['gender_m_txt'] = 'Sr.'; $wb['gender_f_txt'] = 'Sra.'; $wb['gender_txt'] = 'TÃtulo'; -$wb['customer_no_template_txt'] = 'No. do gabarito do cliente'; -$wb['customer_no_template_error_regex_txt'] = 'O número do gabarito contém caracteres inválidos.'; -$wb['customer_no_start_txt'] = 'Valor inicial do código do cliente'; -$wb['customer_no_counter_txt'] = 'Contador de código do cliente'; -$wb['added_by_txt'] = 'Cadastrado por'; -$wb['added_date_txt'] = 'Data do cadastro'; -$wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domÃnio deve ser um número.'; -$wb['limit_domainmodule_txt'] = 'Limites de módulos de domÃnio'; -$wb['client_limits_txt'] = 'Limite de clientes'; -$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \\"personalizado\\" for selecionado.'; -$wb['btn_save_txt'] = 'Salvar'; -$wb['btn_cancel_txt'] = 'Cancelar'; -$wb['email_error_empty'] = 'e-mail está em branco.'; -$wb['web_servers_txt'] = 'Servidores web'; -$wb['web_servers_placeholder'] = 'Selecionar servidores web'; -$wb['no_web_server_error'] = 'Ao menos um servidor de páginas deve ser selecionado.'; -$wb['web_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de páginas. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['dns_servers_txt'] = 'Servidores dns'; -$wb['dns_servers_placeholder'] = 'Selecione os servidores dns'; -$wb['no_dns_server_error'] = 'Ao menos um servidor dns deve ser selecionado.'; -$wb['dns_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor dns. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['db_servers_txt'] = 'Servidores de banco de dados'; -$wb['db_servers_placeholder'] = 'Selecione os servidores de banco de dados.'; +$wb['web_servers_txt'] = 'Servidores Web'; +$wb['web_servers_placeholder'] = 'Selecione o(s) servidor(es) web'; +$wb['no_web_server_error'] = 'Ao menos um servidor web deve ser selecionado.'; +$wb['web_servers_used'] = 'O servidor web que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['dns_servers_txt'] = 'Servidor DNS'; +$wb['dns_servers_placeholder'] = 'Selecione os servidores DNS'; +$wb['no_dns_server_error'] = 'Ao menos um servidor DNS deve ser selecionado.'; +$wb['dns_servers_used'] = 'O servidor DNS que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['db_servers_txt'] = 'Servidor de banco de dados'; +$wb['db_servers_placeholder'] = 'Selecione os servidores de banco de dados'; $wb['no_db_server_error'] = 'Ao menos um servidor de banco de dados deve ser selecionado.'; -$wb['db_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de banco de dados. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['mail_servers_txt'] = 'Servidores de e-mails'; -$wb['mail_servers_placeholder'] = 'Selecionar servidores de e-mails'; +$wb['db_servers_used'] = 'O servidor de banco de dados que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['mail_servers_txt'] = 'Servidores de e-mail'; +$wb['mail_servers_placeholder'] = 'Selecione os servidores de e-mail'; $wb['no_mail_server_error'] = 'Ao menos um servidor de e-mail deve ser selecionado.'; -$wb['mail_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de e-mails. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['xmpp_limits_txt'] = 'Limites XMPP'; -$wb['xmpp_servers_txt'] = 'Servidores XMPP'; -$wb['xmpp_servers_placeholder'] = 'Selecione os servidores XMPP'; -$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.'; -$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor xmpp. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['limit_xmpp_domain_error_notint'] = 'Limite de domÃnios xmpp deve ser um número.'; -$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários xmpp deve ser um número.'; +$wb['mail_servers_used'] = 'O servidor de e-mails que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['customer_no_template_txt'] = 'Código do gabarito de clientes'; +$wb['customer_no_template_error_regex_txt'] = 'O código de gabarito de clientes possui caracteres inválidos.'; +$wb['customer_no_start_txt'] = 'Iniciar código de clientes em'; +$wb['customer_no_counter_txt'] = 'Contador de código do cliente'; +$wb['xmpp_limits_txt'] = 'Limites xmpp'; +$wb['xmpp_servers_txt'] = 'Servidores xmpp'; +$wb['xmpp_servers_placeholder'] = 'Selecione os servidores xmpp'; +$wb['no_xmpp_server_error'] = 'Ao menos um servidor xmpp deve ser selecionado.'; +$wb['xmpp_servers_used'] = 'O servidor xmpp que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['limit_xmpp_domain_error_notint'] = 'O limite de domÃnios xmpp deve ser um número.'; +$wb['limit_xmpp_user_error_notint'] = 'O limite de usuários xmpp deve ser um número.'; $wb['limit_xmpp_domain_txt'] = 'Limite de domÃnios xmpp'; $wb['limit_xmpp_user_txt'] = 'Limite de usuários xmpp'; -$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponÃvel'; +$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário (MUC) disponÃvel'; $wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponÃvel'; $wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponÃvel'; $wb['limit_xmpp_anon_txt'] = 'Host anônimo disponÃvel'; $wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponÃvel'; -$wb['limit_xmpp_proxy_txt'] = 'Proxy bytestream disponÃvel'; +$wb['limit_xmpp_proxy_txt'] = 'Proxy Bytestream disponÃvel'; $wb['limit_xmpp_status_txt'] = 'Estado do host disponÃvel'; -$wb['invalid_vat_id'] = 'O VAT ID é é inválido.'; -$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados'; -$wb['limit_database_user_error_notint'] = 'Limite de usuários de banco de dados deve ser um número.'; -$wb['limit_database_quota_txt'] = 'Cota para banco de dados'; -$wb['limit_database_quota_error_notint'] = 'A cota para banco de dados deve ser um número.'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponÃvel'; -$wb['limit_directive_snippets_txt'] = 'Exibir seleção das configurações do servidor de páginas'; -$wb['password_click_to_set_txt'] = 'Configurar'; +$wb['added_by_txt'] = 'Cadastrado por'; +$wb['added_date_txt'] = 'Data do cadastro'; +$wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domÃnio deve ser um número.'; +$wb['limit_domainmodule_txt'] = 'Limite de módulos de domÃnio'; +$wb['client_limits_txt'] = 'Limite de clientes'; +$wb['err_msg_master_tpl_set'] = 'Todas as configurações de limites serão ignoradas se qualquer gabarito mestre ou personalizado for selecionado.'; +$wb['invalid_vat_id'] = 'O ID do VAT é inválido.'; +$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_cancel_txt'] = 'Cancelar'; +$wb['email_error_empty'] = 'O endereço de e-mail está em branco.'; +$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configuração do servidor web'; +$wb['limit_database_user_error_notint'] = 'O limite de usuários do banco de dados deve ser um número.'; +$wb['limit_database_quota_txt'] = 'Cota do banco de dados'; +$wb['limit_database_quota_error_notint'] = 'A cota do banco de dados deve ser um número.'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limites'; ?> diff --git a/interface/web/client/lib/lang/br_resellers_list.lng b/interface/web/client/lib/lang/br_resellers_list.lng index 5a64358af96e94930c59f98a982d5694d7691d7e..1f67e7f5934437c8f433c718738c6432bd5dc816 100644 --- a/interface/web/client/lib/lang/br_resellers_list.lng +++ b/interface/web/client/lib/lang/br_resellers_list.lng @@ -6,6 +6,6 @@ $wb['contact_name_txt'] = 'Contato'; $wb['city_txt'] = 'Cidade'; $wb['country_txt'] = 'PaÃs'; $wb['add_new_record_txt'] = 'Adicionar nova revenda'; -$wb['customer_no_txt'] = 'Código do Cliente'; +$wb['customer_no_txt'] = 'Código do cliente'; $wb['username_txt'] = 'Usuário'; ?> diff --git a/interface/web/client/lib/lang/ca.lng b/interface/web/client/lib/lang/ca.lng index 730bd2de994eb13a09c15a3fbd17d11af5771d9a..c51dd2e83958ba48de80705d06c5fc4a9aea12c6 100644 --- a/interface/web/client/lib/lang/ca.lng +++ b/interface/web/client/lib/lang/ca.lng @@ -14,6 +14,7 @@ $wb['delete_additional_template_txt'] = 'Supprimer un modèle'; $wb['Messaging'] = 'Messagerie'; $wb['Edit Client Circle'] = 'Editer les groupes clients'; $wb['Domains'] = 'Domaines'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domaine'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'Ce domaine ne peut pas être supprimé, il est utilisé par un compte courriel'; diff --git a/interface/web/client/lib/lang/ca_client.lng b/interface/web/client/lib/lang/ca_client.lng index bfa38a340139fc3ecd84284828669a76937649e6..e4cc2f2dbe8abe53e47b862059d98c0a6ed859ec 100644 --- a/interface/web/client/lib/lang/ca_client.lng +++ b/interface/web/client/lib/lang/ca_client.lng @@ -144,7 +144,7 @@ $wb['aps_limits_txt'] = 'Nombre max d\'Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d\'instances APS'; $wb['limit_aps_error_notint'] = 'La limite d\'instances APS doit être un nombre'; $wb['default_slave_dnsserver_txt'] = 'Serveur DNS secondaire par défaut'; -$wb['locked_txt'] = 'Vérouillé (Désactive web, etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (Désactive connexion Ispconfig)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ca_client_del.lng b/interface/web/client/lib/lang/ca_client_del.lng index 2ec2d877bf8a49d7760ebb9b638834042e200341..4c4506c99b6cb480ea5b660857bd036631f7fd33 100644 --- a/interface/web/client/lib/lang/ca_client_del.lng +++ b/interface/web/client/lib/lang/ca_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Cette action va supprimer le nombre d\'enregistreme $wb['btn_save_txt'] = 'Effacer le client'; $wb['btn_cancel_txt'] = 'Annuler sans effacer le client'; $wb['confirm_client_delete_txt'] = 'Confirmez-vous la suppression de ce client ?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/ca_client_template_list.lng b/interface/web/client/lib/lang/ca_client_template_list.lng index b5315018d2eaf163d9020fd2ac4c33ce311f3e09..b22a375f4472683343f4532a63060bca19a8d2d4 100644 --- a/interface/web/client/lib/lang/ca_client_template_list.lng +++ b/interface/web/client/lib/lang/ca_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Modèles de clients'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Nom du modèle'; $wb['template_id_txt'] = 'ID du modèle'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ca_reseller.lng b/interface/web/client/lib/lang/ca_reseller.lng index f83d3aaff7f2cc3b9f4d626baf726b1f6519eedf..411096ef5402dab83ac64fbe3f5c7e2f37007a40 100644 --- a/interface/web/client/lib/lang/ca_reseller.lng +++ b/interface/web/client/lib/lang/ca_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng index 447810f9401ae7f7f5adc0db53bb260232827e6d..c8c8f50074d36257af8f8c7e7b7e4418f5bfaf05 100644 --- a/interface/web/client/lib/lang/cz.lng +++ b/interface/web/client/lib/lang/cz.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'OdesÃlánà zpráv'; $wb['Send email'] = 'Odeslat e-mail'; $wb['Edit Client Circle'] = 'Upravit skupinu klientů'; $wb['Domains'] = 'Domény'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Doména'; $wb['client_txt'] = 'Klient'; $wb['error_domain_in mailuse'] = 'Tato doména nelze odstranit, protože je v použÃvána jako poÅ¡tovnà doména'; diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng index 3351ac58e10e8732180d414ab3198f66aba5fc2e..5d26a51cdabb6bdb8d8a1067de85224f18dddd6f 100644 --- a/interface/web/client/lib/lang/cz_client.lng +++ b/interface/web/client/lib/lang/cz_client.lng @@ -144,7 +144,7 @@ $wb['aps_limits_txt'] = 'APS limity instalátoru'; $wb['limit_aps_txt'] = 'Max. poÄet APS instalacÃ'; $wb['limit_aps_error_notint'] = 'Limit pro APS instalace musà být ÄÃslo.'; $wb['default_slave_dnsserver_txt'] = 'Výchozà sekundárnà DNS server'; -$wb['locked_txt'] = 'ZamÄeno (zakáže vÅ¡echny weby atd.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'ZruÅ¡eno (zakáže pÅ™ihlášenà klienta)'; $wb['gender_txt'] = 'OslovenÃ'; $wb['gender_m_txt'] = 'Pan'; @@ -200,5 +200,6 @@ $wb['limit_database_user_txt'] = 'Max. poÄet databázových uživatelů'; $wb['limit_database_user_error_notint'] = 'Limit databázové kvóty musà být ÄÃslo.'; $wb['password_click_to_set_txt'] = 'Pro nastavenà klikni zde'; $wb['limit_dns_record_error_notint'] = 'Limit DNS záznamů musà být ÄÃslo.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limity'; ?> diff --git a/interface/web/client/lib/lang/cz_client_del.lng b/interface/web/client/lib/lang/cz_client_del.lng index 5374ea6f75f593de74d8c1f7b55eb794f6db8d7d..d19949fec5ce2f6b54135252a4cda39475eff671 100644 --- a/interface/web/client/lib/lang/cz_client_del.lng +++ b/interface/web/client/lib/lang/cz_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Tato akce smaže následujÃcà poÄet záznamů p $wb['btn_save_txt'] = 'Smazat klienta'; $wb['btn_cancel_txt'] = 'ZruÅ¡it bez smazánà klienta'; $wb['confirm_client_delete_txt'] = 'Jste si jisti, že chcete smazat tohoto klienta ?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/cz_client_template_list.lng b/interface/web/client/lib/lang/cz_client_template_list.lng index 3abbd09adc7c709b3b40afb9142a18348abdd683..28a5d3bf63ff2509eba0e910ba6591d2a6047650 100644 --- a/interface/web/client/lib/lang/cz_client_template_list.lng +++ b/interface/web/client/lib/lang/cz_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Klientské Å¡ablony'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Název Å¡ablony'; $wb['template_id_txt'] = 'ID Å¡ablony'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/cz_clients_list.lng b/interface/web/client/lib/lang/cz_clients_list.lng index 8cdabf2696da35a1b417623993040161aabb7419..270da3674db2c36b250ce6c8b70b282561d4115f 100644 --- a/interface/web/client/lib/lang/cz_clients_list.lng +++ b/interface/web/client/lib/lang/cz_clients_list.lng @@ -8,7 +8,7 @@ $wb['country_txt'] = 'Stát'; $wb['add_new_record_txt'] = 'VytvoÅ™it klienta'; $wb['username_txt'] = 'Uživatelské jméno'; $wb['customer_no_txt'] = 'Zákaznické ÄÃslo'; -$wb['locked_txt'] = 'Locked'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; +$wb['locked_txt'] = 'ZamÄené'; +$wb['yes_txt'] = 'Ano'; +$wb['no_txt'] = 'Ne'; ?> diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng index adfea62ac5555e06f2c26ef8b275e126de329643..d9ddb4c5c496a483d61ef97207118f39ba46e5fc 100644 --- a/interface/web/client/lib/lang/cz_reseller.lng +++ b/interface/web/client/lib/lang/cz_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_user_error_notint'] = 'Limit databázové kvóty musà být $wb['limit_database_quota_txt'] = 'Databázové kvóty'; $wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musà být ÄÃslo.'; $wb['password_click_to_set_txt'] = 'Pro nastavenà klikni zde'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limity'; ?> diff --git a/interface/web/client/lib/lang/de.lng b/interface/web/client/lib/lang/de.lng index 87b85eed71779045f8aea625c7dce1f13e79e6b6..b55397999a62f91b1b91e6f8cc85d798cb5cc3fc 100644 --- a/interface/web/client/lib/lang/de.lng +++ b/interface/web/client/lib/lang/de.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Benachrichtigungen'; $wb['Send email'] = 'E-Mail versenden'; $wb['Edit Client Circle'] = 'Kundenkreis bearbeiten'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Kunde'; $wb['error_domain_in mailuse'] = 'Diese Domain kann nicht gelöscht werden, weil sie als E-Mail Domain verwendet wird'; diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng index b051d713052af90bdb680d4d0e8c26a604fe7550..ca22ce638cf7c28d3dd33e717df4e8c25bbfd3a0 100644 --- a/interface/web/client/lib/lang/de_client.lng +++ b/interface/web/client/lib/lang/de_client.lng @@ -147,7 +147,7 @@ $wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; $wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; $wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; $wb['default_slave_dnsserver_txt'] = 'Standard Secondary DNS Server'; -$wb['locked_txt'] = 'Gesperrt (deaktiviert alle Webs, etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Gekündigt (verhindert Kundenlogin)'; $wb['gender_txt'] = 'Anrede'; $wb['gender_m_txt'] = 'Herr'; @@ -200,5 +200,6 @@ $wb['limit_database_user_txt'] = 'Max. Database users'; $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/de_client_del.lng b/interface/web/client/lib/lang/de_client_del.lng index d13fcfa8fc99e9c5d1ab8b01b025bed44208deec..53aa0973c4522163ce8d8c2b730975d3ebce8ca7 100644 --- a/interface/web/client/lib/lang/de_client_del.lng +++ b/interface/web/client/lib/lang/de_client_del.lng @@ -3,5 +3,8 @@ $wb['confirm_action_txt'] = 'Aktion bestätigen'; $wb['delete_explanation'] = 'Diese Aktion wird folgende Anzahl an Datensätzen des Kunden löschen'; $wb['btn_save_txt'] = 'Kunden löschen'; $wb['btn_cancel_txt'] = 'Abbrechen, ohne den Kunden zu löschen'; -$wb['confirm_client_delete_txt'] = 'Sind Sie sicher, daß Sie den Kunden löschen möchten?'; +$wb['confirm_client_delete_txt'] = 'Sind Sie sicher, dass Sie den Kunden löschen möchte'; +$wb['table_txt'] = 'Tabelle'; +$wb['data_txt'] = 'Daten'; +$wb['list_head_txt'] = 'Kunde löschen'; ?> diff --git a/interface/web/client/lib/lang/de_client_template_list.lng b/interface/web/client/lib/lang/de_client_template_list.lng index cd5f339eea8c209b26267116db9ae9275e9237af..adb3fecdcb772c434d522d8a1c66627dd6b99298 100644 --- a/interface/web/client/lib/lang/de_client_template_list.lng +++ b/interface/web/client/lib/lang/de_client_template_list.lng @@ -3,5 +3,5 @@ $wb['list_head_txt'] = 'Kundenvorlagen'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Vorlagenname'; $wb['template_id_txt'] = 'Template ID'; -$wb['sys_groupid_txt'] = 'Reseller'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index e37ca395af70a76fbd97efb189ac3c1b850a7a40..9f68b18cf50c4f33ac987026b17781ec192da0dd 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_user_error_notint'] = 'The database user limit must be a num $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/dk.lng b/interface/web/client/lib/lang/dk.lng index 0d498a483cbe514aa1bd7497ab0f816f8c6ddd3c..920b3f880578803d2f2ef51a70a803460b7b84a3 100644 --- a/interface/web/client/lib/lang/dk.lng +++ b/interface/web/client/lib/lang/dk.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Meddelelser'; $wb['Send email'] = 'Send E-mail'; $wb['Edit Client Circle'] = 'Rediger Kunde Cirkel'; $wb['Domains'] = 'Domæner'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domæne'; $wb['client_txt'] = 'Kunde'; $wb['error_domain_in mailuse'] = 'Dette domæne kan ikke slettes, da det er i brug som mail-domæne'; diff --git a/interface/web/client/lib/lang/dk_client.lng b/interface/web/client/lib/lang/dk_client.lng index b944e03175971a37eb99d9d933f8dcd3a89a1bc8..b1e549dd9129065e21ab1e82fc125ce56e40785c 100644 --- a/interface/web/client/lib/lang/dk_client.lng +++ b/interface/web/client/lib/lang/dk_client.lng @@ -144,7 +144,7 @@ $wb['aps_limits_txt'] = 'APS Installer Begrænsninger'; $wb['limit_aps_txt'] = 'Max. antal af APS forekomster'; $wb['limit_aps_error_notint'] = 'APS forekomster grænse skal være et tal.'; $wb['default_slave_dnsserver_txt'] = 'Standard Sekundær DNS Server'; -$wb['locked_txt'] = 'LÃ¥st (deaktiverer alle webs mv)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Annulleret (deaktivere kunde log ind)'; $wb['gender_txt'] = 'Titel'; $wb['gender_m_txt'] = 'Hr.'; @@ -200,5 +200,6 @@ $wb['invalid_vat_id'] = 'The VAT ID is invalid.'; $wb['email_error_empty'] = 'Email is empty'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/dk_client_del.lng b/interface/web/client/lib/lang/dk_client_del.lng index ba5f5922196943fa0c247ff4aef2e396e2418487..9bb157cdf4d4b62fafc6488e48dabe5a054a27c9 100644 --- a/interface/web/client/lib/lang/dk_client_del.lng +++ b/interface/web/client/lib/lang/dk_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Denne handling vil slette følgende antal poster fo $wb['btn_save_txt'] = 'Slet kunden'; $wb['btn_cancel_txt'] = 'Annullere uden at slette kunden'; $wb['confirm_client_delete_txt'] = 'Er du sikker pÃ¥ at du vil slette denne kunde?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/dk_client_template_list.lng b/interface/web/client/lib/lang/dk_client_template_list.lng index ca83656182c2ae1e51c636e37f7ca8233a34e092..6be08eade8f3df806b130292b391ce46af1224a5 100644 --- a/interface/web/client/lib/lang/dk_client_template_list.lng +++ b/interface/web/client/lib/lang/dk_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Kunde og Forhandler Skabeloner'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Skabelon navn'; $wb['template_id_txt'] = 'Skabelon ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/dk_reseller.lng b/interface/web/client/lib/lang/dk_reseller.lng index b06301ccdd896fed8f47681c7b2c3f67ca030b23..12004df7619c4a0adfc66ecb2091e7da94fa06e8 100644 --- a/interface/web/client/lib/lang/dk_reseller.lng +++ b/interface/web/client/lib/lang/dk_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/el.lng b/interface/web/client/lib/lang/el.lng index 8c7463d61c768a954fae8024ff6bc3105088dd2a..992bfdcd1c23c99aadff7217293755e9443c1259 100644 --- a/interface/web/client/lib/lang/el.lng +++ b/interface/web/client/lib/lang/el.lng @@ -15,6 +15,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/el_client.lng b/interface/web/client/lib/lang/el_client.lng index b85f653d4eab545c652dfa298306bafe0e8f5fe3..51f75bff055ae1f0e8020ab46de3d508f61c17ac 100644 --- a/interface/web/client/lib/lang/el_client.lng +++ b/interface/web/client/lib/lang/el_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/el_client_del.lng b/interface/web/client/lib/lang/el_client_del.lng index 60ebd617d0a8b76b79a0b805d0bc2b3f2e188682..3f91a5c2b0108996a5a91fa5392f5a3cdc7cb634 100644 --- a/interface/web/client/lib/lang/el_client_del.lng +++ b/interface/web/client/lib/lang/el_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Η ενÎÏγεια θα διαγÏάψει τις $wb['btn_save_txt'] = 'ΔιαγÏαφή πελάτη'; $wb['btn_cancel_txt'] = 'ΑκÏÏωση χωÏίς διαγÏαφή πελάτη'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/el_client_message.lng b/interface/web/client/lib/lang/el_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/el_client_message.lng +++ b/interface/web/client/lib/lang/el_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/el_client_template_list.lng b/interface/web/client/lib/lang/el_client_template_list.lng index 175c2bfb8f3cc4a99ea135e27ae49c400541d9f8..8bb3412df9ad4cdb2304119ff4f51c67e40c6d59 100644 --- a/interface/web/client/lib/lang/el_client_template_list.lng +++ b/interface/web/client/lib/lang/el_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Î Ïότυπα Πελάτη'; $wb['template_type_txt'] = 'ΤÏπος'; $wb['template_name_txt'] = 'Όνομα Î ÏοτÏπου'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng index b409c169e6bc122c0bcbeea991f9fb969f7a8ecf..3b7bc470bcaecaa37603cb3a5c2f804084d76b16 100644 --- a/interface/web/client/lib/lang/el_reseller.lng +++ b/interface/web/client/lib/lang/el_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/en.lng b/interface/web/client/lib/lang/en.lng index 743516c96cf4db5a74d987adeabca9cd254b89ef..a2004196e24c1205f30fb7ef0cd782caa72c5220 100644 --- a/interface/web/client/lib/lang/en.lng +++ b/interface/web/client/lib/lang/en.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone'; @@ -27,4 +28,4 @@ $wb['error_client_can_not_add_domain'] = 'You cannot add a new domain'; $wb['domain_txt'] = 'Domain'; $wb['error_client_group_id_empty'] = 'You have to select a customer<br>'; $wb['Email-Templates'] = 'Email-Templates'; -?> \ No newline at end of file +?> diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng index 3cc323fd4b543d7ea197ded8ee532b7743403c3c..797161d7916f6c13efda59e2193fbbbae633b936 100644 --- a/interface/web/client/lib/lang/en_client.lng +++ b/interface/web/client/lib/lang/en_client.lng @@ -151,7 +151,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -202,5 +202,6 @@ $wb['btn_cancel_txt'] = "Cancel"; $wb['invalid_vat_id'] = 'The VAT ID is invalid.'; $wb["email_error_empty"] = "Email is empty"; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/en_client_del.lng b/interface/web/client/lib/lang/en_client_del.lng index 7b1bbf9d70ae60b458df57118687705d1fd3616c..5e2a00b929b4967ec2e0a9f94217988e3fabfdf6 100644 --- a/interface/web/client/lib/lang/en_client_del.lng +++ b/interface/web/client/lib/lang/en_client_del.lng @@ -4,4 +4,7 @@ $wb["delete_explanation"] = 'This action will delete the following number of rec $wb["btn_save_txt"] = 'Delete the client'; $wb["btn_cancel_txt"] = 'Cancel without deleting the client'; $wb["confirm_client_delete_txt"] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/en_client_message.lng b/interface/web/client/lib/lang/en_client_message.lng index c04bd6cda2353e73de5b53f97e21317e1485389e..01d34392f76756f6cf132a6778642306d6c8db10 100644 --- a/interface/web/client/lib/lang/en_client_message.lng +++ b/interface/web/client/lib/lang/en_client_message.lng @@ -1,5 +1,5 @@ <?php -$wb["page_head_txt"] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb["btn_send_txt"] = 'Send email'; $wb["btn_cancel_txt"] = 'Cancel'; $wb["sender_txt"] = 'Sender email address'; diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng index b5950132c4a99d978f34a6f35c875a07943e1a03..789229460ff72ff9150876be5a102d1f7837c873 100644 --- a/interface/web/client/lib/lang/en_reseller.lng +++ b/interface/web/client/lib/lang/en_reseller.lng @@ -207,5 +207,7 @@ $wb['limit_database_user_txt'] = 'Max. Database users'; $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/en_resellers_list.lng b/interface/web/client/lib/lang/en_resellers_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es.lng b/interface/web/client/lib/lang/es.lng old mode 100755 new mode 100644 index 9b8b2a3edb0dd27103cf82d3449542013d5b6244..9dc7ad813f08706cdb643be2528ebdfb94666f48 --- a/interface/web/client/lib/lang/es.lng +++ b/interface/web/client/lib/lang/es.lng @@ -25,5 +25,6 @@ $wb['Messaging'] = 'MensajerÃa'; $wb['Resellers'] = 'Revendedores'; $wb['Send email'] = 'Enviar correo'; $wb['Templates'] = 'Plantillas'; -$wb['Email-Templates'] = 'Email-Templates'; +$wb['Add Domain'] = 'Add Domain'; +$wb['domain_txt'] = 'Email-Templates'; ?> diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng old mode 100755 new mode 100644 index 75125024fb4a9a01beedb2876781e174a85398ba..eae85315b68df4ae44d6ba5bb314aaa901c0ec90 --- a/interface/web/client/lib/lang/es_client.lng +++ b/interface/web/client/lib/lang/es_client.lng @@ -146,7 +146,7 @@ $wb['limit_xmpp_status_txt'] = 'Host de estado disponible'; $wb['limit_xmpp_user_error_notint'] = 'El lÃmite de usuarios XMPP debe ser un número.'; $wb['limit_xmpp_user_txt'] = 'Número máximo de cuentas XMPP'; $wb['limit_xmpp_vjud_txt'] = 'Directorio de usuarios VJUD disponible'; -$wb['locked_txt'] = 'Bloqueado (desactivar sitios web etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['mail_servers_placeholder'] = 'Seleccionar servidores de correo'; $wb['mail_servers_txt'] = 'Servidores de correo'; $wb['mail_servers_used'] = 'El servidor que está intentando borrar de este cliente está siendo utilizado como servidor de correo. Por favor asegúrese de que este servidor no esté siendo utilizado por este cliente antes de borrarlo.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/es_client_circle.lng b/interface/web/client/lib/lang/es_client_circle.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_client_circle_list.lng b/interface/web/client/lib/lang/es_client_circle_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_client_del.lng b/interface/web/client/lib/lang/es_client_del.lng old mode 100755 new mode 100644 index ff7c09c191d2057b25443906e985ebc51245001b..9496eb8146773b6d85951ceb55852866a57da303 --- a/interface/web/client/lib/lang/es_client_del.lng +++ b/interface/web/client/lib/lang/es_client_del.lng @@ -4,4 +4,7 @@ $wb['btn_save_txt'] = 'Borrar el cliente'; $wb['confirm_action_txt'] = 'Confirmar acción'; $wb['confirm_client_delete_txt'] = '¿Está seguro de que desea borrar el cliente?'; $wb['delete_explanation'] = 'Esta acción eliminará el siguiente número de registros asociados con este cliente'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/es_client_message.lng b/interface/web/client/lib/lang/es_client_message.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_client_message_template.lng b/interface/web/client/lib/lang/es_client_message_template.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_client_message_template_list.lng b/interface/web/client/lib/lang/es_client_message_template_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_client_template.lng b/interface/web/client/lib/lang/es_client_template.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_client_template_list.lng b/interface/web/client/lib/lang/es_client_template_list.lng old mode 100755 new mode 100644 index 4a8032c6fb34749c5c22b0668cc31f3a8e493359..283a4ff17a1e3fdab5bf94e4f1806d1c235aefbe --- a/interface/web/client/lib/lang/es_client_template_list.lng +++ b/interface/web/client/lib/lang/es_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Plantillas de clientes'; $wb['template_id_txt'] = 'ID de la plantilla'; $wb['template_name_txt'] = 'Nombre de la plantilla'; $wb['template_type_txt'] = 'Tipo'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/es_clients_list.lng b/interface/web/client/lib/lang/es_clients_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_domain.lng b/interface/web/client/lib/lang/es_domain.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_domain_list.lng b/interface/web/client/lib/lang/es_domain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng old mode 100755 new mode 100644 index 5a94b9e8033bbee191faf75891310a41de010501..6830c56cb83d4208755cb22c37e57ab1db7d267a --- a/interface/web/client/lib/lang/es_reseller.lng +++ b/interface/web/client/lib/lang/es_reseller.lng @@ -203,5 +203,7 @@ $wb['zip_txt'] = 'Código postal'; $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/fi.lng b/interface/web/client/lib/lang/fi.lng old mode 100755 new mode 100644 index 52dba3949f1d1529f5247b3ff2f77bd0af33f278..812ff1860f447857a3a90991b96857f664678f8f --- a/interface/web/client/lib/lang/fi.lng +++ b/interface/web/client/lib/lang/fi.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng old mode 100755 new mode 100644 index 6df30e77536bca786b99d92e46893d2c815268a1..751b7e7836059067177f89009cb79146adfec145 --- a/interface/web/client/lib/lang/fi_client.lng +++ b/interface/web/client/lib/lang/fi_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/fi_client_del.lng b/interface/web/client/lib/lang/fi_client_del.lng index b87895b8c0496e4e9ca9e46f6076c67cad908b87..4336b765d3940020280f8f1c96b930658dba785e 100644 --- a/interface/web/client/lib/lang/fi_client_del.lng +++ b/interface/web/client/lib/lang/fi_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Tämä toiminto alla olevan määrän tämän asiak $wb['btn_save_txt'] = 'Poista käyttäjä'; $wb['btn_cancel_txt'] = 'Keskeytä poistamatta asiakasta'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/fi_client_message.lng b/interface/web/client/lib/lang/fi_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/fi_client_message.lng +++ b/interface/web/client/lib/lang/fi_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/fi_client_template.lng b/interface/web/client/lib/lang/fi_client_template.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/fi_client_template_list.lng b/interface/web/client/lib/lang/fi_client_template_list.lng old mode 100755 new mode 100644 index b3f310f131c899f27a5f724ca55ea866f2a32d23..586f93e01ca329b222f9a5bb2c1feb4cc9a8228b --- a/interface/web/client/lib/lang/fi_client_template_list.lng +++ b/interface/web/client/lib/lang/fi_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Asiakasmallit'; $wb['template_type_txt'] = 'Tyyppi'; $wb['template_name_txt'] = 'Asiakasmallin nimi'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/fi_clients_list.lng b/interface/web/client/lib/lang/fi_clients_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng index 58af2fdf0dba52638a28af3af5de513d0dc16582..122fea52687098a6d47ab9cfda50ca2138ffb2db 100644 --- a/interface/web/client/lib/lang/fi_reseller.lng +++ b/interface/web/client/lib/lang/fi_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/fr.lng b/interface/web/client/lib/lang/fr.lng index 4538bfb0dbcac6b7c7a0ef36ead07808d388d1ce..d4efa24b7a88e9f681a52bb7a72728b881dbd6c6 100644 --- a/interface/web/client/lib/lang/fr.lng +++ b/interface/web/client/lib/lang/fr.lng @@ -14,6 +14,7 @@ $wb['delete_additional_template_txt'] = 'Supprimer un modèle'; $wb['Messaging'] = 'Messagerie'; $wb['Edit Client Circle'] = 'Modifier les groupes clients'; $wb['Domains'] = 'Domaines'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domaine'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'Ce domaine ne peut pas être supprimé, il est utilisé par un compte e-mail'; diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index 61612ccbe0fc53a4485b9dc24218c154a85fb1e3..c3de724d93f39b704d75c9b21a5e3c08a743b35d 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -144,7 +144,7 @@ $wb['aps_limits_txt'] = 'Nombre max d’Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d’instances APS'; $wb['limit_aps_error_notint'] = 'La limite d’instances APS doit être un nombre'; $wb['default_slave_dnsserver_txt'] = 'Serveur DNS secondaire par défaut'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Titre'; $wb['gender_m_txt'] = 'Monsieur'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/fr_client_del.lng b/interface/web/client/lib/lang/fr_client_del.lng index 4fdb5dac772136b3526544d9f69bfffad119f890..051c840fb2ec5a0b3702f75a9af79d391a604dfa 100644 --- a/interface/web/client/lib/lang/fr_client_del.lng +++ b/interface/web/client/lib/lang/fr_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Cette action va supprimer le nombre d’enregistrem $wb['btn_save_txt'] = 'Effacer le client'; $wb['btn_cancel_txt'] = 'Annuler sans effacer le client'; $wb['confirm_client_delete_txt'] = 'Confirmez-vous la suppression de ce client ?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/fr_client_template_list.lng b/interface/web/client/lib/lang/fr_client_template_list.lng index b5315018d2eaf163d9020fd2ac4c33ce311f3e09..b22a375f4472683343f4532a63060bca19a8d2d4 100644 --- a/interface/web/client/lib/lang/fr_client_template_list.lng +++ b/interface/web/client/lib/lang/fr_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Modèles de clients'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Nom du modèle'; $wb['template_id_txt'] = 'ID du modèle'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index f30fcd48c6b5be7f129cbca39fd6c526b8190209..76d44cb324ea63af17073ef438498e6c696d6ee8 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/hr.lng b/interface/web/client/lib/lang/hr.lng index 48c78e2bf18f791c5e544a425a55ba1a78b02088..a9e293840c33efe9eee51d36efb183be187fc316 100644 --- a/interface/web/client/lib/lang/hr.lng +++ b/interface/web/client/lib/lang/hr.lng @@ -16,6 +16,7 @@ $wb['Messaging'] = 'Slanje poruka'; $wb['Send email'] = 'PoÅ¡alji email'; $wb['Edit Client Circle'] = 'Promijeni krug klijenata'; $wb['Domains'] = 'Domene'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domena'; $wb['client_txt'] = 'Klijent'; $wb['error_domain_in mailuse'] = 'Ova domena ne može biti obrisana jer se koristi kao mail domena'; diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng index ec5b73d9405a71e0a95cc434e9df5f1dd51486dd..4d16bac0cb308c935300d320577893d89bf34c5f 100644 --- a/interface/web/client/lib/lang/hr_client.lng +++ b/interface/web/client/lib/lang/hr_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/hr_client_del.lng b/interface/web/client/lib/lang/hr_client_del.lng index 939cc59fb6c411ab7e7e93ae21fbddfb705f54f6..5f06b870082a20a03752b44a9e81acf8fdbac019 100644 --- a/interface/web/client/lib/lang/hr_client_del.lng +++ b/interface/web/client/lib/lang/hr_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Ukoliko potvrdite izbrisati će se svi zapisi povez $wb['btn_save_txt'] = 'ObriÅ¡i klijenta'; $wb['btn_cancel_txt'] = 'Prekini i ne briÅ¡i klijenta'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/hr_client_template_list.lng b/interface/web/client/lib/lang/hr_client_template_list.lng index cdc2f0006ae1e78a666f356ad765042df30e823a..fc817c9c254dfbd8b67196859877957e5a550832 100644 --- a/interface/web/client/lib/lang/hr_client_template_list.lng +++ b/interface/web/client/lib/lang/hr_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'PredloÅ¡ci za klijente'; $wb['template_type_txt'] = 'Vrsta'; $wb['template_name_txt'] = 'Naziv predloÅ¡ka'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng index 9188b6861b2318ac9e851d4b668784b123cf0f93..d4b9f58eebb33c1cf54ced71aa2fd3ef168fbcd5 100644 --- a/interface/web/client/lib/lang/hr_reseller.lng +++ b/interface/web/client/lib/lang/hr_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/hu.lng b/interface/web/client/lib/lang/hu.lng index 6b988dcee20c6be09870b0477a365e14594d4709..5e673985503ebe0e9fada9c1c3ee457963c9da9f 100644 --- a/interface/web/client/lib/lang/hu.lng +++ b/interface/web/client/lib/lang/hu.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng index 10993601c0f980eb09a2290de723e54179881ae9..cd491f7b00284fcc0c70ce5018c1318e0b2d7442 100644 --- a/interface/web/client/lib/lang/hu_client.lng +++ b/interface/web/client/lib/lang/hu_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/hu_client_del.lng b/interface/web/client/lib/lang/hu_client_del.lng index 0932e9568ac478948a00b84b0c50acaf2ce0c7c2..21ddcb9ea44905b316d6830ae688abda9125eaef 100644 --- a/interface/web/client/lib/lang/hu_client_del.lng +++ b/interface/web/client/lib/lang/hu_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/hu_client_message.lng b/interface/web/client/lib/lang/hu_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/hu_client_message.lng +++ b/interface/web/client/lib/lang/hu_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/hu_client_template_list.lng b/interface/web/client/lib/lang/hu_client_template_list.lng index 316de63143533a8fc3eb316e579d8dd6a7ce7074..b04b3405eeea473bba3fc95cb9d5b8af45ec2282 100644 --- a/interface/web/client/lib/lang/hu_client_template_list.lng +++ b/interface/web/client/lib/lang/hu_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Ügyfél-Sablonok'; $wb['template_type_txt'] = 'tÃpus'; $wb['template_name_txt'] = 'Sablon neve'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng index dd9290885ae739f08bb49eb88fdb158c28329654..91c31b05ad16a4da7c373f9e877a5c83cb04f64f 100644 --- a/interface/web/client/lib/lang/hu_reseller.lng +++ b/interface/web/client/lib/lang/hu_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/id.lng b/interface/web/client/lib/lang/id.lng index a393cb77473a8343184b3a7183914c567145ce48..6fe64545f42b8fe3748f79cd55a76e58184d2245 100644 --- a/interface/web/client/lib/lang/id.lng +++ b/interface/web/client/lib/lang/id.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/id_client.lng b/interface/web/client/lib/lang/id_client.lng index c84e6251f438c168bf4ca01d440ed1bc11a622cc..2b3c00bfe35862fba5cf67eebdbe20a1dde4b4f7 100644 --- a/interface/web/client/lib/lang/id_client.lng +++ b/interface/web/client/lib/lang/id_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/id_client_del.lng b/interface/web/client/lib/lang/id_client_del.lng index 1adf18bd7d016c5c90f161daea0152305d6cf3bd..2a8c6e32a158b407f8f50a4468399189ff6405c5 100644 --- a/interface/web/client/lib/lang/id_client_del.lng +++ b/interface/web/client/lib/lang/id_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Tindakan ini akan menghapus sejumlah record yang te $wb['btn_save_txt'] = 'Hapus Klien'; $wb['btn_cancel_txt'] = 'Batalkan Tanpa Menghapus Klien'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/id_client_message.lng b/interface/web/client/lib/lang/id_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/id_client_message.lng +++ b/interface/web/client/lib/lang/id_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/id_client_template_list.lng b/interface/web/client/lib/lang/id_client_template_list.lng index e0da97101a8f3f623f64962380f1d02fefc112f6..dd0259544b4f41b5a4dfd9c433b43dcaea9a5bc6 100644 --- a/interface/web/client/lib/lang/id_client_template_list.lng +++ b/interface/web/client/lib/lang/id_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Template Klien'; $wb['template_type_txt'] = 'Tipe'; $wb['template_name_txt'] = 'Nama Template'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/id_reseller.lng b/interface/web/client/lib/lang/id_reseller.lng index 821a35e3cde0939fee7818f317a9da2f534af6e1..f466b2562c19036c55ff9633e675dcc9eac4efa9 100644 --- a/interface/web/client/lib/lang/id_reseller.lng +++ b/interface/web/client/lib/lang/id_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/it.lng b/interface/web/client/lib/lang/it.lng index ff740790b00191b1cb2412167e1f8e44298a83e1..257dca805d5be49a47cb6198e4d64cc8f0e99b32 100644 --- a/interface/web/client/lib/lang/it.lng +++ b/interface/web/client/lib/lang/it.lng @@ -15,6 +15,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Dominio'; $wb['client_txt'] = 'Cliente'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng index 0f75d849d66aa85dee50f2a67cf44574b26740e5..8491d54f205129fa8cb00d2207b2e58a189dedbe 100644 --- a/interface/web/client/lib/lang/it_client.lng +++ b/interface/web/client/lib/lang/it_client.lng @@ -144,7 +144,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Bloccato (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Cancellato(disables client login)'; $wb['gender_txt'] = 'Titolo'; $wb['gender_m_txt'] = 'Sig.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/it_client_del.lng b/interface/web/client/lib/lang/it_client_del.lng index 49811c377ea4cdb0ce3f3ba5c894c7083c2e3c1d..a17dc6a7ff3d54de5af7bc4def05114558b15c9a 100644 --- a/interface/web/client/lib/lang/it_client_del.lng +++ b/interface/web/client/lib/lang/it_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Questa operazione cancellerà i seguenti record ass $wb['btn_save_txt'] = 'Cancella cliente'; $wb['btn_cancel_txt'] = 'Annulla senza cancellare il cliente'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/it_client_message.lng b/interface/web/client/lib/lang/it_client_message.lng index f5f93c22940eb23d8675001fd45229c05b255e4b..c21f9fb3bee8d9f4ace572a5ea76f013d3504529 100644 --- a/interface/web/client/lib/lang/it_client_message.lng +++ b/interface/web/client/lib/lang/it_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject vuoto.'; $wb['message_invalid_error'] = 'Message vuoto.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/it_client_template_list.lng b/interface/web/client/lib/lang/it_client_template_list.lng index d78faf87789ad9536b6880ede51c6335e7c16f17..43b1a5ca49c7fa88a022a7c43370effa0a5ccde3 100644 --- a/interface/web/client/lib/lang/it_client_template_list.lng +++ b/interface/web/client/lib/lang/it_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Modelli cliente'; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome modello'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng index 2cef293265ac55e86d43c40b16269a754c7100d1..1a2e6a1092ae31da04dde5eb501fecb0d0b24571 100644 --- a/interface/web/client/lib/lang/it_reseller.lng +++ b/interface/web/client/lib/lang/it_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ja.lng b/interface/web/client/lib/lang/ja.lng index c5ce289f700568be4fc93f44c276e90f90f45a64..b34cf49559e50c24ae68e9089ca0185b2b76bf56 100644 --- a/interface/web/client/lib/lang/ja.lng +++ b/interface/web/client/lib/lang/ja.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng index 33aa6ab4e9a6fffefc8bfe656690b0946964e3ee..cb1a7c266435163f3fb5e58280d2c5f9bf36ca2a 100644 --- a/interface/web/client/lib/lang/ja_client.lng +++ b/interface/web/client/lib/lang/ja_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ja_client_del.lng b/interface/web/client/lib/lang/ja_client_del.lng index 0932e9568ac478948a00b84b0c50acaf2ce0c7c2..21ddcb9ea44905b316d6830ae688abda9125eaef 100644 --- a/interface/web/client/lib/lang/ja_client_del.lng +++ b/interface/web/client/lib/lang/ja_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/ja_client_message.lng b/interface/web/client/lib/lang/ja_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/ja_client_message.lng +++ b/interface/web/client/lib/lang/ja_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/ja_client_template_list.lng b/interface/web/client/lib/lang/ja_client_template_list.lng index 8adca01b14bef778c75adca471fd1cb9440e7ad6..3e67a0e0092377363dbe6082937982095da79a03 100644 --- a/interface/web/client/lib/lang/ja_client_template_list.lng +++ b/interface/web/client/lib/lang/ja_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'クライアントテンプレート'; $wb['template_type_txt'] = '種別'; $wb['template_name_txt'] = 'テンプレートå'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng index 7edf836f39c999bee35f248ab6ed14cc5a7718a6..c1bade6839370466d48523946d14d51bf7041a7e 100644 --- a/interface/web/client/lib/lang/ja_reseller.lng +++ b/interface/web/client/lib/lang/ja_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/nl.lng b/interface/web/client/lib/lang/nl.lng index cf2307e6aa49fe4ee1581946f2366c8ec0da7fd9..dab8ba3c3c0a7148ab46335e51f17f77ebe57dfb 100644 --- a/interface/web/client/lib/lang/nl.lng +++ b/interface/web/client/lib/lang/nl.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Berichten'; $wb['Send email'] = 'Verstuur e-mail'; $wb['Edit Client Circle'] = 'Klanten collectie bewerken'; $wb['Domains'] = 'Domeinen'; +$wb['Add Domain'] = 'Domein toevoegen'; $wb['domain_txt'] = 'Domein'; $wb['client_txt'] = 'Klant'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng index 188a37f4fd4f2a858cec1857198bf8739702a64b..6dfc1a8525ae4cbbebe8e9aa608c67f6c4685c72 100644 --- a/interface/web/client/lib/lang/nl_client.lng +++ b/interface/web/client/lib/lang/nl_client.lng @@ -147,7 +147,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_database_user_error_notint'] = 'The database user limit must be a num $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/nl_client_del.lng b/interface/web/client/lib/lang/nl_client_del.lng index 294fb5011b4538ba2d05f757199b4576ef8e7625..9b9e5d5bc3ba57416232d646af55a9f29ce7cde7 100644 --- a/interface/web/client/lib/lang/nl_client_del.lng +++ b/interface/web/client/lib/lang/nl_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Deze actie verwijderd het volgende aantal aan recor $wb['btn_save_txt'] = 'Verwijder de klant'; $wb['btn_cancel_txt'] = 'Annuleren zonder de klant te verwijderen'; $wb['confirm_client_delete_txt'] = 'Weet je zeker dat je deze klant wil verwijderen ?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/nl_client_message.lng b/interface/web/client/lib/lang/nl_client_message.lng index aaa93be1b8da1785450faa9a06fe0473aa3df229..39962efa658fd9671a62c8dd292937a7bb4075d6 100644 --- a/interface/web/client/lib/lang/nl_client_message.lng +++ b/interface/web/client/lib/lang/nl_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Onderwerp is leeg.'; $wb['message_invalid_error'] = 'Bericht is leeg.'; $wb['email_sent_to_txt'] = 'E-mail verstuurd aan:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Ontvanger'; $wb['all_clients_resellers_txt'] = 'Alle klanten en resellers'; $wb['all_clients_txt'] = 'Alle klanten'; diff --git a/interface/web/client/lib/lang/nl_client_template_list.lng b/interface/web/client/lib/lang/nl_client_template_list.lng index 8bbe7a5a0fc82366cb1104901f0edda4228b39e6..fa62e4b79f048118a2bc85b8062811e23748408d 100644 --- a/interface/web/client/lib/lang/nl_client_template_list.lng +++ b/interface/web/client/lib/lang/nl_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template naam'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/nl_domain_list.lng b/interface/web/client/lib/lang/nl_domain_list.lng index 130345f388c85af4f0478fa069c623819bca5f2b..802917f9230eb3c8d44a4cfa98b74630c75f3e5b 100644 --- a/interface/web/client/lib/lang/nl_domain_list.lng +++ b/interface/web/client/lib/lang/nl_domain_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Domeinen'; -$wb['add_new_record_txt'] = 'Toevoegen nieuw domein'; +$wb['add_new_record_txt'] = 'Domein toevoegen'; $wb['domain_txt'] = 'Domein'; $wb['user_txt'] = 'Klant'; ?> diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng index 9953880bec94b4baaa4ceb1c745ebb7d5a289e21..bed1291a2b3f5f358d848546021ac284bd12bc65 100644 --- a/interface/web/client/lib/lang/nl_reseller.lng +++ b/interface/web/client/lib/lang/nl_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/pl.lng b/interface/web/client/lib/lang/pl.lng index ca1563e8b840e13b5f44b072f33e60ee477de5ee..8c4061a795d95d72e13433379d338f65eb93d50c 100644 --- a/interface/web/client/lib/lang/pl.lng +++ b/interface/web/client/lib/lang/pl.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'WiadomoÅ›ci dla klientów'; $wb['Send email'] = 'WyÅ›lij email'; $wb['Edit Client Circle'] = 'Edytuj grupy klientów'; $wb['Domains'] = 'Domeny'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domena'; $wb['client_txt'] = 'Klient'; $wb['error_domain_in mailuse'] = 'Ta domena nie może zostać usuniÄ™ta ponieważ jest używana jako domena dla poczty email.'; diff --git a/interface/web/client/lib/lang/pl_client.lng b/interface/web/client/lib/lang/pl_client.lng index f1a1e1e6e7da66785975f87555ca6a3c9ed05225..89fafa6776c3239f4c2a4f976b488021a4ae9dd1 100644 --- a/interface/web/client/lib/lang/pl_client.lng +++ b/interface/web/client/lib/lang/pl_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'Limity Instalatora APS'; $wb['limit_aps_txt'] = 'Maks. liczba instalacji APS'; $wb['limit_aps_error_notint'] = 'Limit instalacji APS musi być liczbÄ…'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/pl_client_del.lng b/interface/web/client/lib/lang/pl_client_del.lng index 429c61b4c72b3d22814c5659ef1cbe46d86fcf62..4e5a2386f910ec8f325ed7d1c96f3f6465f9136e 100644 --- a/interface/web/client/lib/lang/pl_client_del.lng +++ b/interface/web/client/lib/lang/pl_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Ta akcja usunie nastÄ™pujÄ…cÄ… liczbÄ™ rekordów po $wb['btn_save_txt'] = 'UsuÅ„ klienta'; $wb['btn_cancel_txt'] = 'Anuluj bez usuwania klienta'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/pl_client_template_list.lng b/interface/web/client/lib/lang/pl_client_template_list.lng index d6bd952d0bd7d427172e287b67ab6ddebd0dd04f..a7f7cf1638addae2ef0147761649603388563da9 100644 --- a/interface/web/client/lib/lang/pl_client_template_list.lng +++ b/interface/web/client/lib/lang/pl_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Szablon klienta'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Nazwa szablonu'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng index 9b2cf58f7526364c4158aa5d1483ce1656fb0be6..71f5bcfa4b157a8d390b6fbe045d73047dd84676 100644 --- a/interface/web/client/lib/lang/pl_reseller.lng +++ b/interface/web/client/lib/lang/pl_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/pt.lng b/interface/web/client/lib/lang/pt.lng index 1be427e8200496fb726491d91ebe82ab8349335d..1f837aa963d6e13cc6845b8bd410033dba038443 100644 --- a/interface/web/client/lib/lang/pt.lng +++ b/interface/web/client/lib/lang/pt.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng index ae3e45b24d343e36e512e71455665cb214ad4ff8..cccd950d3f635bfc0923b57733cc7c72cd5fc209 100644 --- a/interface/web/client/lib/lang/pt_client.lng +++ b/interface/web/client/lib/lang/pt_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/pt_client_del.lng b/interface/web/client/lib/lang/pt_client_del.lng index ef71fa91e5e0436c4cc3f38f65652c003a815905..7b56473550e0bf3d392a72035ae3ac4f748e3fe5 100644 --- a/interface/web/client/lib/lang/pt_client_del.lng +++ b/interface/web/client/lib/lang/pt_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Atenção: está acção ira remover todos os objec $wb['btn_save_txt'] = 'Remover o cliente'; $wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/pt_client_message.lng b/interface/web/client/lib/lang/pt_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/pt_client_message.lng +++ b/interface/web/client/lib/lang/pt_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/pt_client_template_list.lng b/interface/web/client/lib/lang/pt_client_template_list.lng index d5f451111a9fd9c63356ba4e54854cd67042f7af..54b88241dab8b7f8f87f93f43562fa53ed1d92a6 100644 --- a/interface/web/client/lib/lang/pt_client_template_list.lng +++ b/interface/web/client/lib/lang/pt_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Templates de Cliente '; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome da template'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng index e021cd251142fb58245d3bfc068f641ec04db19a..7f472214180b8910ad37c34de21125603d79b190 100644 --- a/interface/web/client/lib/lang/pt_reseller.lng +++ b/interface/web/client/lib/lang/pt_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ro.lng b/interface/web/client/lib/lang/ro.lng index 245991ff9df7799883342f9d8680b8150fc605a7..f129f4273fe0211b5a16dd15dcc92c44fc18c242 100644 --- a/interface/web/client/lib/lang/ro.lng +++ b/interface/web/client/lib/lang/ro.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng index 034c4d0e44b5669c04e6b6aa90b4b94834c36efb..6dd6da9dad31e7ba14b8fe2f0a3710ed92b42263 100644 --- a/interface/web/client/lib/lang/ro_client.lng +++ b/interface/web/client/lib/lang/ro_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ro_client_del.lng b/interface/web/client/lib/lang/ro_client_del.lng index 0932e9568ac478948a00b84b0c50acaf2ce0c7c2..21ddcb9ea44905b316d6830ae688abda9125eaef 100644 --- a/interface/web/client/lib/lang/ro_client_del.lng +++ b/interface/web/client/lib/lang/ro_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/ro_client_message.lng b/interface/web/client/lib/lang/ro_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/ro_client_message.lng +++ b/interface/web/client/lib/lang/ro_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/ro_client_template_list.lng b/interface/web/client/lib/lang/ro_client_template_list.lng index 17fbf995b976646e62c30392ded171ad71573dbb..3f5764c50c2c81abc0696ff786eaa772a8e2c942 100644 --- a/interface/web/client/lib/lang/ro_client_template_list.lng +++ b/interface/web/client/lib/lang/ro_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Template client'; $wb['template_type_txt'] = 'Tp'; $wb['template_name_txt'] = 'Nume Template'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng index 68e8a950f36cc62cc603e077401a697e6d8ea509..333c8bdb96cf18be0d11e582bcfde3b1aecd57a8 100644 --- a/interface/web/client/lib/lang/ro_reseller.lng +++ b/interface/web/client/lib/lang/ro_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/ru.lng b/interface/web/client/lib/lang/ru.lng index c8558a3982bf4db62a0e989381eb18b66258d154..2dabf4c6f3c0f46c6c6757da5971d62ffc2cc1d1 100644 --- a/interface/web/client/lib/lang/ru.lng +++ b/interface/web/client/lib/lang/ru.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Обмен ÑообщениÑми'; $wb['Send email'] = 'Отправить почту'; $wb['Edit Client Circle'] = 'Изменить клиента Группы'; $wb['Domains'] = 'Домены'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Домен'; $wb['client_txt'] = 'Клиент'; $wb['error_domain_in mailuse'] = 'Ðтот домен не может быть удален, так как он иÑпользуетÑÑ Ð² качеÑтве почтового домена.'; diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng index a37d4673a1d69e4e0a6f2a4bc6da00fbb3a8e70d..080512f5b0ad166ed99cdc9810aacafb50e2f759 100644 --- a/interface/web/client/lib/lang/ru_client.lng +++ b/interface/web/client/lib/lang/ru_client.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных Ñерверов должен быть чиÑлом.'; $wb['web_php_options_notempty'] = 'Ðет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Ðе выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может начинатьÑÑ Ñо Ñлова \"web\" или \"web\" Ð¿Ð»ÑŽÑ Ñ‡Ð¸Ñло.'; +$wb['username_error_collision'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может начинатьÑÑ Ñо Ñлова \\"web\\" или \\"web\\" Ð¿Ð»ÑŽÑ Ñ‡Ð¸Ñло.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доÑтупен'; @@ -141,12 +141,12 @@ $wb['email_error_isemail'] = 'Ðекорректный почтовый адре $wb['customer_no_error_unique'] = 'Счётчик номера Клиента должен быть уникален (или отÑутÑтвует).'; $wb['paypal_email_error_isemail'] = 'ПожалуйÑта, введите дейÑтвующий Ð°Ð´Ñ€ÐµÑ Ñлектронной почты PayPal.'; $wb['paypal_email_txt'] = 'ÐÐ´Ñ€ÐµÑ Ñлектронной почты PayPal'; -$wb['err_msg_master_tpl_set'] = 'ЗначениÑ, уÑтановленные здеÑÑŒ игнорируютÑÑ, еÑли не выбран в качеÑтве главного шаблона \"Custom\"!'; +$wb['err_msg_master_tpl_set'] = 'ЗначениÑ, уÑтановленные здеÑÑŒ игнорируютÑÑ, еÑли не выбран в качеÑтве главного шаблона \\"Custom\\"!'; $wb['aps_limits_txt'] = 'Лимиты УÑтановщика APS'; $wb['limit_aps_txt'] = 'МакÑ. количеÑтво ÑкземплÑров APS'; $wb['limit_aps_error_notint'] = 'Лимит ÑкземплÑров APS должен быть чиÑлом.'; $wb['default_slave_dnsserver_txt'] = 'Вторичный DNS-Ñервер по умолчанию'; -$wb['locked_txt'] = 'Заблокировано (Отключены вÑе web-Ñайты и Ñ‚.д.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Отменено (отключен вход Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð²)'; $wb['gender_txt'] = 'Обращение'; $wb['gender_m_txt'] = 'Г-н.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt доÑтупен'; $wb['limit_directive_snippets_txt'] = 'Показать выбор конфигурации веб-Ñервера'; $wb['password_click_to_set_txt'] = 'Клик Ð´Ð»Ñ ÑƒÑтановки'; $wb['limit_dns_record_error_notint'] = 'Лимит вторичных DNS-зон должен быть чиÑлом.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Лимиты'; ?> diff --git a/interface/web/client/lib/lang/ru_client_del.lng b/interface/web/client/lib/lang/ru_client_del.lng index 94a05acca0d1cf7d222e19db3009232c8dae6e97..cf371efeb91e8f6c51355bbd95e7fbf1581257c7 100644 --- a/interface/web/client/lib/lang/ru_client_del.lng +++ b/interface/web/client/lib/lang/ru_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Ðто дейÑтвие удалит Ñледующ $wb['btn_save_txt'] = 'Удалить клиента'; $wb['btn_cancel_txt'] = 'Отменить без удалениÑ'; $wb['confirm_client_delete_txt'] = 'Ð’Ñ‹ уверены, что хотите удалить Ñтот клиента?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/ru_client_template_list.lng b/interface/web/client/lib/lang/ru_client_template_list.lng index 30d0dfed45f972687786cb627df3b1a01ec9740f..2981e21671d5de3da97b324bdfbde0faaca5d024 100644 --- a/interface/web/client/lib/lang/ru_client_template_list.lng +++ b/interface/web/client/lib/lang/ru_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Шаблоны клиентов'; $wb['template_type_txt'] = 'Тип'; $wb['template_name_txt'] = 'Ð˜Ð¼Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°'; $wb['template_id_txt'] = 'ID шаблона'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng index 4a177cccc8242ecc9f4249616d3e15e13bd1e8a8..f5806377c3f010f24257632ace654aef5f39839e 100644 --- a/interface/web/client/lib/lang/ru_reseller.lng +++ b/interface/web/client/lib/lang/ru_reseller.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных Ñерверов должен быть чиÑлом.'; $wb['web_php_options_notempty'] = 'Ðет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Ðе выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может начинатьÑÑ Ñо Ñлова \"web\" или \"web\" Ð¿Ð»ÑŽÑ Ñ‡Ð¸Ñло.'; +$wb['username_error_collision'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может начинатьÑÑ Ñо Ñлова \\"web\\" или \\"web\\" Ð¿Ð»ÑŽÑ Ñ‡Ð¸Ñло.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доÑтупен'; @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Дата добавлениÑ'; $wb['limit_domainmodule_error_notint'] = 'Лимит модулей домена должен быть чиÑлом.'; $wb['limit_domainmodule_txt'] = 'Лимит модулей домена'; $wb['client_limits_txt'] = 'Лимиты Клиента'; -$wb['err_msg_master_tpl_set'] = 'ЗначениÑ, уÑтановленные здеÑÑŒ игнорируютÑÑ, еÑли не выбран в качеÑтве главного шаблона \"Custom\"!'; +$wb['err_msg_master_tpl_set'] = 'ЗначениÑ, уÑтановленные здеÑÑŒ игнорируютÑÑ, еÑли не выбран в качеÑтве главного шаблона \\"Custom\\"!'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; $wb['email_error_empty'] = 'ÐÐ´Ñ€ÐµÑ Ñл. почты пуÑтой'; @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'Лимит квоты базы да $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt доÑтупен'; $wb['limit_directive_snippets_txt'] = 'Показать выбор конфигурации веб-Ñервера'; $wb['password_click_to_set_txt'] = 'Клик Ð´Ð»Ñ ÑƒÑтановки'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Лимиты'; ?> diff --git a/interface/web/client/lib/lang/se.lng b/interface/web/client/lib/lang/se.lng index 3845b9c57a97cc8d58e40bde8a3807cd6d97980b..adceb746d622e6fb1712f783c47154812be18da5 100644 --- a/interface/web/client/lib/lang/se.lng +++ b/interface/web/client/lib/lang/se.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Meddelanden'; $wb['Send email'] = 'Skicka epost'; $wb['Edit Client Circle'] = 'Redigera kundcirkel'; $wb['Domains'] = 'Domäner'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domän'; $wb['client_txt'] = 'Kund'; $wb['error_domain_in mailuse'] = 'Den här domänen kan inte tas bort dÃ¥ den används som epostdomän'; diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index 2884302c18fc9d7d0f096dfa6f08fdcfd69cff58..6e0f025f90d2f7358e49c50d3cfc2e9df861553b 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Förvald sekundär DNS-server'; -$wb['locked_txt'] = 'LÃ¥st (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Uppsagd (disables client login)'; $wb['gender_txt'] = 'Titel'; $wb['gender_m_txt'] = 'Herr'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/se_client_del.lng b/interface/web/client/lib/lang/se_client_del.lng index 99aa9d8a42291116d2d2ce160f48e09e021f6d82..56f2f0d9d790af9103b93997817f8299061ec680 100644 --- a/interface/web/client/lib/lang/se_client_del.lng +++ b/interface/web/client/lib/lang/se_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Radera kunden'; $wb['btn_cancel_txt'] = 'Avbryt utan att radera kunden'; $wb['confirm_client_delete_txt'] = 'Är du säker pÃ¥ att du vill radera den här kunden?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/se_client_template_list.lng b/interface/web/client/lib/lang/se_client_template_list.lng index b594337e7ca6ef727ad97849a7036bcd708428dd..37ce6de45d0a3f8f50c709d0d9230cb2feba3cda 100644 --- a/interface/web/client/lib/lang/se_client_template_list.lng +++ b/interface/web/client/lib/lang/se_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Kundmallar'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Mallnamn'; $wb['template_id_txt'] = 'Mall-ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index 68e8a950f36cc62cc603e077401a697e6d8ea509..333c8bdb96cf18be0d11e582bcfde3b1aecd57a8 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/sk.lng b/interface/web/client/lib/lang/sk.lng index f3bfd3e2f66371469ab922e73f2b5841c7589128..7058583a3284d5a4c33ca754d92a56f2400bd084 100644 --- a/interface/web/client/lib/lang/sk.lng +++ b/interface/web/client/lib/lang/sk.lng @@ -17,6 +17,7 @@ $wb['Messaging'] = 'Messaging'; $wb['Send email'] = 'Send Email'; $wb['Edit Client Circle'] = 'Edit Client Circle'; $wb['Domains'] = 'Domains'; +$wb['Add Domain'] = 'Add Domain'; $wb['domain_txt'] = 'Domain'; $wb['client_txt'] = 'Client'; $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng index 3edec417cf07d51e0245b97063ece6409be3a5d7..b215eb2b32fc27591d6e9b600dd35d2624705ec5 100644 --- a/interface/web/client/lib/lang/sk_client.lng +++ b/interface/web/client/lib/lang/sk_client.lng @@ -146,7 +146,7 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked (disables all webs etc.)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'Canceled (disables client login)'; $wb['gender_txt'] = 'Title'; $wb['gender_m_txt'] = 'Mr.'; @@ -200,5 +200,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/sk_client_del.lng b/interface/web/client/lib/lang/sk_client_del.lng index 0932e9568ac478948a00b84b0c50acaf2ce0c7c2..21ddcb9ea44905b316d6830ae688abda9125eaef 100644 --- a/interface/web/client/lib/lang/sk_client_del.lng +++ b/interface/web/client/lib/lang/sk_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec $wb['btn_save_txt'] = 'Delete the client'; $wb['btn_cancel_txt'] = 'Cancel without deleting the client'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/sk_client_message.lng b/interface/web/client/lib/lang/sk_client_message.lng index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644 --- a/interface/web/client/lib/lang/sk_client_message.lng +++ b/interface/web/client/lib/lang/sk_client_message.lng @@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.'; $wb['subject_invalid_error'] = 'Subject is empty.'; $wb['message_invalid_error'] = 'Message is empty.'; $wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; +$wb["page_head_txt"] = 'Send email message to clients and resellers'; $wb['recipient_txt'] = 'Recipient'; $wb['all_clients_resellers_txt'] = 'All clients and resellers'; $wb['all_clients_txt'] = 'All clients'; diff --git a/interface/web/client/lib/lang/sk_client_template_list.lng b/interface/web/client/lib/lang/sk_client_template_list.lng index ac25b8f3a9685b37651893ac39ec870c2302e543..94637b1750121208a01a27f064e08e875d45a869 100644 --- a/interface/web/client/lib/lang/sk_client_template_list.lng +++ b/interface/web/client/lib/lang/sk_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Klient-Å ablóny'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Meno Å¡ablóny'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng index 4ae3ef5b976ac3223f9eef29177589278296fa07..9e1ec0a80f6fa2ef254df91787cca78377dcae27 100644 --- a/interface/web/client/lib/lang/sk_reseller.lng +++ b/interface/web/client/lib/lang/sk_reseller.lng @@ -203,5 +203,7 @@ $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a n $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; $wb['limit_directive_snippets_txt'] = 'Show web server config selection'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; $wb['Limits'] = 'Limits'; ?> diff --git a/interface/web/client/lib/lang/tr.lng b/interface/web/client/lib/lang/tr.lng index 0f3df4d7a38e5a931b7f7a6fc7c7d2480064b12a..6f5f55e702efd0c6658a1cbe99b297ae9c45254a 100644 --- a/interface/web/client/lib/lang/tr.lng +++ b/interface/web/client/lib/lang/tr.lng @@ -16,14 +16,16 @@ $wb['delete_additional_template_txt'] = 'Ek Kalıbı Sil'; $wb['Messaging'] = 'İletiÅŸim'; $wb['Send email'] = 'E-posta Gönderimi'; $wb['Edit Client Circle'] = 'Müşteri Grubu Düzenleme'; -$wb['Domains'] = 'Alan Adları'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['Domains'] = 'Etki Alanları'; +$wb['Add Domain'] = 'Add Domain'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['client_txt'] = 'Müşteri'; -$wb['error_domain_in mailuse'] = 'Bu alan adı e-posta alan adı olarak kullanıldığından silinemez'; -$wb['error_domain_in webuse'] = 'Bu alan adı web alan adı olarak kullanıldığından silinemez'; -$wb['error_client_can_not_add_domain'] = 'Yeni bir alan adı ekleyemezsiniz'; +$wb['error_domain_in dnsuse'] = 'Bu etki alanı birincil DNS bölgesi olarak kullanıldığından silinemez'; +$wb['error_domain_in dnsslaveuse'] = 'Bu etki alanı ikincil DNS bölgesi olarak kullanıldığından silinemez'; +$wb['error_domain_in mailuse'] = 'Bu etki alanı e-posta etki alanı olarak kullanıldığından silinemez'; +$wb['error_domain_in webuse'] = 'Bu etki alanı web etki alanı olarak kullanıldığından silinemez'; +$wb['error_client_can_not_add_domain'] = 'Yeni bir etki alanı ekleyemezsiniz'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['error_client_group_id_empty'] = 'Bir müşteri seçmelisiniz<br>'; -$wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone'; -$wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone'; -$wb['Email-Templates'] = 'Email-Templates'; +$wb['Email-Templates'] = 'E-posta Kalıpları'; ?> diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng index 765d9f198062bf50a8eba83da192d56caef91413..d87fe26da90ab23836ef720031cf9f2498f04f90 100644 --- a/interface/web/client/lib/lang/tr_client.lng +++ b/interface/web/client/lib/lang/tr_client.lng @@ -1,24 +1,26 @@ <?php -$wb['limit_maildomain_txt'] = 'En Fazla E-posta Alan Adı Sayısı'; -$wb['limit_mailmailinglist_txt'] = 'En Fazla Posta Listesi Sayısı'; -$wb['limit_mailbox_txt'] = 'En Fazla Posta Kutusu Sayısı'; +$wb['limit_maildomain_txt'] = 'En Fazla E-posta Etki Alanı Sayısı'; +$wb['limit_mailmailinglist_txt'] = 'En Fazla E-posta Listesi Sayısı'; +$wb['limit_mailbox_txt'] = 'En Fazla E-posta Kutusu Sayısı'; $wb['limit_mailalias_txt'] = 'En Fazla Takma E-posta Sayısı'; -$wb['limit_mailaliasdomain_txt'] = 'En Fazla Takma Alan Adı Sayısı'; +$wb['limit_mailaliasdomain_txt'] = 'En Fazla Takma Etki Alanı Sayısı'; $wb['limit_mailforward_txt'] = 'En Fazla E-posta Yönlendirme Sayısı'; $wb['limit_mailcatchall_txt'] = 'En Fazla Tümünü Al Hesabı Sayısı'; $wb['limit_mailrouting_txt'] = 'En Fazla E-posta Yöneltici Sayısı'; $wb['limit_mailfilter_txt'] = 'En Fazla E-posta Süzgeci Sayısı'; -$wb['limit_fetchmail_txt'] = 'En Fazla Posta Alma Hesabı Sayısı'; -$wb['limit_mailquota_txt'] = 'Posta Kutusu Kotası'; -$wb['limit_spamfilter_wblist_txt'] = 'En Fazla Önemsiz Posta Beyaz/Kara Liste Süzgeci Sayısı'; -$wb['limit_spamfilter_user_txt'] = 'En Fazla Önemsiz Posta Süzgeci Kullanıcısı Sayısı'; -$wb['limit_spamfilter_policy_txt'] = 'En Fazla Önemsiz Posta Süzgeci Kuralı Sayısı'; -$wb['default_mailserver_txt'] = 'Varsayılan Posta Sunucusu'; -$wb['company_name_txt'] = 'Kurum Adı'; +$wb['limit_fetchmail_txt'] = 'En Fazla E-posta Alma Hesabı Sayısı'; +$wb['limit_mailquota_txt'] = 'E-posta Kutusu Kotası'; +$wb['limit_spamfilter_wblist_txt'] = 'En Fazla Önemsiz İleti Beyaz/Kara Liste Süzgeci Sayısı'; +$wb['limit_spamfilter_user_txt'] = 'En Fazla Önemsiz İleti Süzgeci Kullanıcısı Sayısı'; +$wb['limit_spamfilter_policy_txt'] = 'En Fazla Önemsiz İleti Süzgeci Kuralı Sayısı'; +$wb['default_mailserver_txt'] = 'Varsayılan E-posta Sunucusu'; +$wb['company_name_txt'] = 'KuruluÅŸ Adı'; +$wb['contact_firstname_txt'] = 'İlgili Adı'; $wb['contact_name_txt'] = 'İlgili Adı'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_click_to_set_txt'] = 'Ayarlamak için tıklayın'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['language_txt'] = 'Dil'; $wb['usertheme_txt'] = 'Tema'; $wb['street_txt'] = 'Adres'; @@ -33,8 +35,8 @@ $wb['email_txt'] = 'E-posta'; $wb['internet_txt'] = 'İnternet'; $wb['icq_txt'] = 'ICQ'; $wb['notes_txt'] = 'Notlar'; -$wb['company_txt'] = 'Kurum'; -$wb['title_txt'] = 'Ünvan'; +$wb['company_txt'] = 'KuruluÅŸ'; +$wb['title_txt'] = 'Unvan'; $wb['firstname_txt'] = 'Ad'; $wb['surname_txt'] = 'Soyad'; $wb['limit_domain_txt'] = 'limit_domain'; @@ -42,16 +44,16 @@ $wb['limit_subdomain_txt'] = 'limit_subdomain'; $wb['limit_webquota_txt'] = 'limit_webquota'; $wb['limit_database_txt'] = 'En Fazla Veritabanı Sayısı'; $wb['limit_cron_txt'] = 'En Fazla Zamanlanmış Görev Sayısı'; -$wb['limit_cron_type_txt'] = 'En Fazla Zamanlanmış Görev Tipi Sayısı (chroot ve tam İnternet adresi uygulama)'; +$wb['limit_cron_type_txt'] = 'En Fazla Zamanlanmış Görev Türü Sayısı (chroot ve tam İnternet adresi uygulama)'; $wb['limit_cron_frequency_txt'] = 'İki Çalıştırma Arasındaki Süre'; $wb['ip_address_txt'] = 'ip_address'; $wb['limit_client_error_notint'] = 'Alt müşteri sınırı bir sayı olmalıdır.'; $wb['firstname_error_empty'] = 'Ad boÅŸ olamaz.'; $wb['contact_error_empty'] = 'İlgili adı boÅŸ olamaz.'; $wb['default_webserver_txt'] = 'Varsayılan Web Sunucusu'; -$wb['limit_web_domain_txt'] = 'En Fazla Alan Adı Sayısı'; -$wb['limit_web_aliasdomain_txt'] = 'En Fazla Takma Alan Adı Sayısı'; -$wb['limit_web_subdomain_txt'] = 'En Fazla Alt Alan Adı Sayısı'; +$wb['limit_web_domain_txt'] = 'En Fazla Etki Alanı Sayısı'; +$wb['limit_web_aliasdomain_txt'] = 'En Fazla Takma Etki Alanı Sayısı'; +$wb['limit_web_subdomain_txt'] = 'En Fazla Alt Etki Alanı Sayısı'; $wb['limit_ftp_user_txt'] = 'En Fazla FTP Kullanıcısı Sayısı'; $wb['default_dnsserver_txt'] = 'Varsayılan DNS Sunucusu'; $wb['limit_dns_zone_txt'] = 'En Fazla DNS Bölgesi Sayısı'; @@ -59,32 +61,35 @@ $wb['limit_dns_slave_zone_txt'] = 'En Fazla İkincil DNS Bölgesi Sayısı'; $wb['limit_dns_record_txt'] = 'En Fazla DNS Kaydı Sayısı'; $wb['limit_shell_user_txt'] = 'En Fazla Kabuk Kullanıcısı Sayısı'; $wb['limit_webdav_user_txt'] = 'En Fazla Webdav Kullanıcısı Sayısı'; +$wb['limit_backup_txt'] = 'Yedekleme ÖzelliÄŸi Kullanılsın'; $wb['limit_client_txt'] = 'En Fazla Müşteri Sayısı'; $wb['username_error_empty'] = 'Kullanıcı adı boÅŸ olamaz.'; $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var.'; -$wb['limit_maildomain_error_notint'] = 'E-posta alan adı sınırı bir sayı olmalıdır.'; -$wb['limit_mailmailinglist_error_notint'] = 'Posta listesi kaydı sınırı bir sayı olmalıdır.'; -$wb['limit_mailbox_error_notint'] = 'Posta kutusu sınırı bir sayı olmalıdır.'; +$wb['limit_maildomain_error_notint'] = 'E-posta etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_mailmailinglist_error_notint'] = 'E-posta listesi kaydı sınırı bir sayı olmalıdır.'; +$wb['limit_mailbox_error_notint'] = 'E-posta kutusu sınırı bir sayı olmalıdır.'; $wb['limit_mailalias_error_notint'] = 'Takma e-posta sınırı bir sayı olmalıdır.'; -$wb['limit_mailaliasdomain_error_notint'] = 'E-posta takma alan adı sınırı bir sayı olmalıdır.'; +$wb['limit_mailaliasdomain_error_notint'] = 'E-posta takma etki alanı sınırı bir sayı olmalıdır.'; $wb['limit_mailforward_error_notint'] = 'E-posta yönlendirme sınırı bir sayı olmalıdır.'; $wb['limit_mailcatchall_error_notint'] = 'E-posta tümünü al hesabı sınırı bir sayı olmalıdır.'; $wb['limit_mailrouting_error_notint'] = 'E-posta yöneltici sınırı bir sayı olmalıdır.'; $wb['limit_mailfilter_error_notint'] = 'E-posta süzgeci sınırı bir sayı olmalıdır.'; $wb['limit_mailfetchmail_error_notint'] = 'E-posta alma sınırı bir sayı olmalıdır.'; $wb['limit_mailquota_error_notint'] = 'E-posta kota sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_wblist_error_notint'] = 'Önemsiz posta süzgeci beyaz/kara liste sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_user_error_notint'] = 'Önemsiz posta süzgeci kullanıcısı sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_policy_error_notint'] = 'Önemsiz posta süzgeci kuralı sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_wblist_error_notint'] = 'Önemsiz ileti süzgeci beyaz/kara liste sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_user_error_notint'] = 'Önemsiz ileti süzgeci kullanıcısı sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_policy_error_notint'] = 'Önemsiz ileti süzgeci kuralı sınırı bir sayı olmalıdır.'; $wb['limit_web_domain_error_notint'] = 'Web sitesi sınırı bir sayı olmalıdır.'; -$wb['limit_web_aliasdomain_error_notint'] = 'Web sitesi takma alan adı sınırı bir sayı olmalıdır.'; -$wb['limit_web_subdomain_error_notint'] = 'Web sitesi alt alan adı sınırı bir sayı olmalıdır.'; +$wb['limit_web_aliasdomain_error_notint'] = 'Web sitesi takma etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_web_subdomain_error_notint'] = 'Web sitesi alt etki alanı sınırı bir sayı olmalıdır.'; $wb['limit_ftp_user_error_notint'] = 'FTP kullanıcısı sınırı bir sayı olmalıdır.'; $wb['limit_shell_user_error_notint'] = 'Kabuk kullanıcısı sınırı bir sayı olmalıdır.'; $wb['limit_webdav_user_error_notint'] = 'Webdav kullanıcısı sınırı bir sayı olmalıdır.'; -$wb['limit_dns_zone_error_notint'] = 'DNS kaydı sınırı bir sayı olmalıdır.'; +$wb['limit_dns_zone_error_notint'] = 'Birincil DNS kaydı sınırı bir sayı olmalıdır.'; $wb['limit_dns_slave_zone_error_notint'] = 'İkincil DNS bölgesi sınırı bir sayı olmalıdır.'; +$wb['limit_dns_record_error_notint'] = 'DNS kaydı sınırı bir sayı olmalıdır.'; $wb['default_dbserver_txt'] = 'Varsayılan Veritabanı Sunucusu'; +$wb['limit_database_txt'] = 'Veritabanı Sayısı'; $wb['limit_database_error_notint'] = 'Veritabanı sınırı bir sayı olmalıdır.'; $wb['limit_cron_error_notint'] = 'Zamanlanmış Görev sınırı bir sayı olmalıdır.'; $wb['limit_cron_error_frequency'] = 'Zamanlanmış Görev sıklığı sınırı bir sayı olmalıdır.'; @@ -96,15 +101,16 @@ $wb['add_additional_template_txt'] = 'Ek Kalıbı Ekle'; $wb['delete_additional_template_txt'] = 'Ek Kalıbı Sil'; $wb['ssh_chroot_txt'] = 'SSH-Chroot Ayarları'; $wb['web_php_options_txt'] = 'PHP Ayarları'; -$wb['limit_cgi_txt'] = 'CGI Kullanılabilir'; -$wb['limit_ssi_txt'] = 'SSI Kullanılabilir'; -$wb['limit_perl_txt'] = 'Perl Kullanılabilir'; -$wb['limit_ruby_txt'] = 'Ruby Kullanılabilir'; -$wb['limit_python_txt'] = 'Python Kullanılabilir'; -$wb['force_suexec_txt'] = 'SuEXEC Dayatılmış'; -$wb['limit_hterror_txt'] = 'Özel Hata Sayfaları Kullanılabilir'; -$wb['limit_wildcard_txt'] = 'Genel Alt Alan Adı Kullanılabilir'; -$wb['limit_ssl_txt'] = 'SSL Kullanılabilir'; +$wb['limit_cgi_txt'] = 'CGI Kullanılsın'; +$wb['limit_ssi_txt'] = 'SSI Kullanılsın'; +$wb['limit_perl_txt'] = 'Perl Kullanılsın'; +$wb['limit_ruby_txt'] = 'Ruby Kullanılsın'; +$wb['limit_python_txt'] = 'Python Kullanılsın'; +$wb['force_suexec_txt'] = 'SuEXEC Dayatılsın'; +$wb['limit_hterror_txt'] = 'Özel Hata Sayfaları Kullanılsın'; +$wb['limit_wildcard_txt'] = 'Genel Alt Etki Alanı Kullanılsın'; +$wb['limit_ssl_txt'] = 'SSL Kullanılsın'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt Kullanılsın'; $wb['limit_client_error'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla müşteri sınırına ulaÅŸtınız.'; $wb['limit_web_quota_txt'] = 'Web Kotası'; $wb['limit_traffic_quota_txt'] = 'Trafik Kotası'; @@ -127,11 +133,12 @@ $wb['bank_account_iban_txt'] = 'IBAN'; $wb['bank_account_swift_txt'] = 'BIC / Swift'; $wb['web_limits_txt'] = 'Web Sınırları'; $wb['email_limits_txt'] = 'E-posta Sınırları'; +$wb['xmpp_limits_txt'] = 'XMPP Sınırları'; $wb['database_limits_txt'] = 'Veritabanı Sınırları'; $wb['cron_job_limits_txt'] = 'Zamanlanmış Görev Sınırları'; $wb['dns_limits_txt'] = 'DNS Sınırları'; $wb['virtualization_limits_txt'] = 'SanallaÅŸtırma Sınırları'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; @@ -139,66 +146,62 @@ $wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.'; $wb['customer_no_error_unique'] = 'Müşteri numarası eÅŸsiz (ya da boÅŸ) olmalıdır.'; $wb['paypal_email_error_isemail'] = 'Lütfen geçerli bir PayPal e-posta adresi yazın.'; $wb['paypal_email_txt'] = 'PayPal E-posta Adresi'; -$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan baÅŸka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; +$wb['err_msg_master_tpl_set'] = '"Özel" kalıptan baÅŸka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yok sayılır.'; $wb['aps_limits_txt'] = 'APS Yükleyici Sınırları'; $wb['limit_aps_txt'] = 'En Fazla APS Kopyası Sayısı'; $wb['limit_aps_error_notint'] = 'APS kopya sayısı sınırı bir sayı olmalıdır.'; $wb['default_slave_dnsserver_txt'] = 'Varsayılan İkincil DNS Sunucusu'; -$wb['locked_txt'] = 'Kilitli<br/>(tüm web vb. devre dışı)'; +$wb['locked_txt'] = 'Locked (disables everything except DNS)'; $wb['canceled_txt'] = 'İptal<br/>(müşteri oturumu devre dışı)'; -$wb['gender_txt'] = 'Ünvan'; +$wb['gender_txt'] = 'Unvan'; $wb['gender_m_txt'] = 'Bay'; $wb['gender_f_txt'] = 'Bayan'; +$wb['web_servers_txt'] = 'Web Sunucuları'; +$wb['web_servers_placeholder'] = 'Web Sunucularını Seçin'; +$wb['no_web_server_error'] = 'En az bir web sunucusu seçilmelidir.'; +$wb['web_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir web sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['dns_servers_txt'] = 'DNS Sunucular'; +$wb['dns_servers_placeholder'] = 'DNS Sunucuları Seçin'; +$wb['no_dns_server_error'] = 'En az bir DNS sunucusu seçilmelidir.'; +$wb['dns_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir DNS sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun'; +$wb['db_servers_txt'] = 'Veritabanı Sunucuları'; +$wb['db_servers_placeholder'] = 'Veritabanı Sunucularını Seçin'; +$wb['no_db_server_error'] = 'En az bir veritabanı sunucusu seçilmelidir.'; +$wb['db_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir veritabanı sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['mail_servers_txt'] = 'E-posta Sunucuları'; +$wb['mail_servers_placeholder'] = 'E-posta Sunucularını Seçin'; +$wb['no_mail_server_error'] = 'En az bir e-posta sunucusu seçilmelidir.'; +$wb['mail_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir e-posta sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; + +$wb['xmpp_servers_txt'] = 'XMPP Sunucular'; +$wb['xmpp_servers_placeholder'] = 'XMPP Sunucuları Seçin'; +$wb['no_xmpp_server_error'] = 'En az bir XMPP sunucusu seçilmelidir.'; +$wb['xmpp_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir XMPP sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_domain_txt'] = 'En Fazla XMPP Etki Alanı Sayısı'; +$wb['limit_xmpp_user_txt'] = 'En Fazla XMPP Hesabı Sayısı'; +$wb['limit_xmpp_muc_txt'] = 'Çok Kullanıcılı Sohbet (ÇKS) Kullanılsın'; +$wb['limit_xmpp_pastebin_txt'] = 'ÇKS için Pastebin Kullanılsın'; +$wb['limit_xmpp_httparchive_txt'] = 'ÇKS için HTTP ArÅŸivi Kullanılsın'; +$wb['limit_xmpp_anon_txt'] = 'Adsız Sunucu Kullanılsın'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD Kullanıcı Klasörü Kullanılsın'; +$wb['limit_xmpp_proxy_txt'] = 'Bytestream Vekil Sunucusu Kullanılsın'; +$wb['limit_xmpp_status_txt'] = 'Durum Sunucusu Kullanılsın'; $wb['added_by_txt'] = 'Ekleyen'; $wb['added_date_txt'] = 'EklendiÄŸi Tarih'; $wb['parent_client_id_txt'] = 'Bayi Müşterisi'; -$wb['none_txt'] = 'yok'; -$wb['contact_firstname_txt'] = 'Contact firstname'; -$wb['password_click_to_set_txt'] = 'Click to set'; -$wb['limit_backup_txt'] = 'Backupfunction available'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; -$wb['xmpp_limits_txt'] = 'XMPP Limits'; -$wb['web_servers_txt'] = 'Webservers'; -$wb['web_servers_placeholder'] = 'Select webservers'; -$wb['no_web_server_error'] = 'At least one webserver must be selected.'; -$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before you remove it.'; -$wb['dns_servers_txt'] = 'DNS servers'; -$wb['dns_servers_placeholder'] = 'Select DNS servers'; -$wb['no_dns_server_error'] = 'At least one DNS server must be selected.'; -$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before you remove it.'; -$wb['db_servers_txt'] = 'Database servers'; -$wb['db_servers_placeholder'] = 'Select database servers'; -$wb['no_db_server_error'] = 'At least one Database server must be selected.'; -$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before you remove it.'; -$wb['mail_servers_txt'] = 'Mailservers'; -$wb['mail_servers_placeholder'] = 'Select mailservers'; -$wb['no_mail_server_error'] = 'At least one mailserver must be selected.'; -$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before you remove it.'; -$wb['xmpp_servers_txt'] = 'XMPP Servers'; -$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers'; -$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.'; -$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.'; -$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.'; -$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.'; -$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains'; -$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts'; -$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available'; -$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available'; -$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available'; -$wb['limit_xmpp_anon_txt'] = 'Anonymous host available'; -$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available'; -$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available'; -$wb['limit_xmpp_status_txt'] = 'Status host available'; -$wb['limit_database_quota_txt'] = 'Database quota'; -$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; -$wb['limit_database_user_txt'] = 'Max. Database users'; -$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; -$wb['reseller_txt'] = 'Reseller'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['invalid_vat_id'] = 'The VAT ID is invalid.'; -$wb['email_error_empty'] = 'Email is empty'; -$wb['limit_directive_snippets_txt'] = 'Show web server config selection'; -$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; -$wb['Limits'] = 'Limits'; +$wb['none_txt'] = 'Yok'; +$wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; +$wb['limit_database_quota_error_notint'] = 'Veritabanı kotası sınırı bir sayı olmalıdır.'; +$wb['limit_database_user_txt'] = 'En Fazla Veritabanı Kullanıcısı Sayısı'; +$wb['limit_database_user_error_notint'] = 'Veritabanı kullanıcı sınırı bir sayı olmalıdır.'; +$wb['reseller_txt'] = 'Bayi'; +$wb['btn_save_txt'] = 'Kaydet'; +$wb['btn_cancel_txt'] = 'İptal'; +$wb['invalid_vat_id'] = 'Vergi numarası geçersiz.'; +$wb['email_error_empty'] = 'E-posta boÅŸ olamaz.'; +$wb['limit_directive_snippets_txt'] = 'Web Sunucu Yapılandırma Seçimi Görüntülensin'; +$wb['Address'] = 'Address'; +$wb['Limits'] = 'Sınırlar'; ?> diff --git a/interface/web/client/lib/lang/tr_client_del.lng b/interface/web/client/lib/lang/tr_client_del.lng index b93579998bdf19e7f1d4b542b94987cb29c3fd0a..82f00ba9d56815691e03d3485f236afca48515e6 100644 --- a/interface/web/client/lib/lang/tr_client_del.lng +++ b/interface/web/client/lib/lang/tr_client_del.lng @@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Bu iÅŸlem bu müşteri ile ilgili ÅŸu kayıtları s $wb['btn_save_txt'] = 'Müşteriyi sil'; $wb['btn_cancel_txt'] = 'Müşteriyi silmeden iptal et'; $wb['confirm_client_delete_txt'] = 'Bu müşteriyi silmek istediÄŸinize emin misiniz?'; +$wb['list_head_txt'] = 'Delete Client'; +$wb['table_txt'] = 'Table'; +$wb['data_txt'] = 'Data'; ?> diff --git a/interface/web/client/lib/lang/tr_client_message_template.lng b/interface/web/client/lib/lang/tr_client_message_template.lng index 885e2afc865693d21f588627dcc2639fed794fd7..2b2994c557ef3d6776d5da555a9ad9a473a190e1 100644 --- a/interface/web/client/lib/lang/tr_client_message_template.lng +++ b/interface/web/client/lib/lang/tr_client_message_template.lng @@ -1,13 +1,13 @@ <?php -$wb['template_type_txt'] = 'E-posta tipi'; -$wb['template_name_txt'] = 'Kalıp adı'; +$wb['template_type_txt'] = 'E-posta Türü'; +$wb['template_name_txt'] = 'Kalıp Adı'; $wb['subject_txt'] = 'Konu'; $wb['message_txt'] = 'İleti'; -$wb['Email template'] = 'E-posta kalıbı'; +$wb['Email template'] = 'E-posta Kalıbı'; $wb['Settings'] = 'Ayarlar'; $wb['variables_txt'] = 'DeÄŸiÅŸkenler'; $wb['variables_description_txt'] = '(Kullanıcı adı ve parola deÄŸiÅŸkenleri yalnız hoÅŸgeldiniz e-postalarında kullanılabilir.)'; -$wb['duplicate_welcome_error'] = 'Yalnız bir varsayılan hoÅŸgeldiniz e-postası kalıbı bulunabilir. Lütfen yeni bir tema eklemek yerine varolan temayı düzenlemeyi deneyin.'; -$wb['subject_error_empty'] = 'Subject is empty'; -$wb['message_error_empty'] = 'Message is empty'; +$wb['duplicate_welcome_error'] = 'Yalnız bir varsayılan hoÅŸgeldiniz e-postası kalıbı bulunabilir. Lütfen yeni bir tema eklemek yerine var olan temayı düzenlemeyi deneyin.'; +$wb['subject_error_empty'] = 'Konu boÅŸ olamaz'; +$wb['message_error_empty'] = 'İleti boÅŸ olamaz'; ?> diff --git a/interface/web/client/lib/lang/tr_client_message_template_list.lng b/interface/web/client/lib/lang/tr_client_message_template_list.lng index d0f50c7feab299fdbbbae0168ad36a2f066abdab..fb7fd944fea9c0f630ce6845ef0f5d4e3e56fdb7 100644 --- a/interface/web/client/lib/lang/tr_client_message_template_list.lng +++ b/interface/web/client/lib/lang/tr_client_message_template_list.lng @@ -1,5 +1,5 @@ <?php $wb['list_head_txt'] = 'E-posta Kalıpları'; -$wb['template_type_txt'] = 'İleti grubu'; -$wb['template_name_txt'] = 'Kalıp adı'; +$wb['template_type_txt'] = 'İleti Grubu'; +$wb['template_name_txt'] = 'Kalıp Adı'; ?> diff --git a/interface/web/client/lib/lang/tr_client_template.lng b/interface/web/client/lib/lang/tr_client_template.lng index da9f19f79487a165c7ca7994e18ff9f3ff0455f8..30911764483f05a10fbc7b0c62ce6c83c58b6dd4 100644 --- a/interface/web/client/lib/lang/tr_client_template.lng +++ b/interface/web/client/lib/lang/tr_client_template.lng @@ -1,61 +1,68 @@ <?php -$wb['template_type_txt'] = 'Kalıp Tipi'; +$wb['template_type_txt'] = 'Kalıp Türü'; $wb['template_name_txt'] = 'Kalıp Adı'; -$wb['limit_client_error_notint'] = 'Müşteri sınırı bir sayı olmalı.'; -$wb['limit_maildomain_txt'] = 'En Fazla E-posta Alan Adı Sayısı'; -$wb['limit_mailbox_txt'] = 'En Fazla Posta Kutusu Sayısı'; +$wb['limit_client_error_notint'] = 'Müşteri sınırı bir sayı olmalıdır.'; +$wb['default_mailserver_txt'] = 'Varsayılan E-posta Sunucusu'; +$wb['limit_maildomain_txt'] = 'En Fazla E-posta Etki Alanı Sayısı'; +$wb['limit_mailbox_txt'] = 'En Fazla E-posta Kutusu Sayısı'; $wb['limit_mailalias_txt'] = 'En Fazla Takma E-posta Sayısı'; -$wb['limit_mailaliasdomain_txt'] = 'En Fazla Takma Alan Adı Sayısı'; -$wb['limit_mailmailinglist_txt'] = 'En Fazla Posta Listesi Sayısı'; +$wb['limit_mailaliasdomain_txt'] = 'En Fazla Takma Etki Alanı Sayısı'; +$wb['limit_mailmailinglist_txt'] = 'En Fazla E-posta Listesi Sayısı'; $wb['limit_mailforward_txt'] = 'En Fazla E-posta Yönlendirici Sayısı'; $wb['limit_mailcatchall_txt'] = 'En Fazla Tümünü Al Hesabı Sayısı'; $wb['limit_mailrouting_txt'] = 'En Fazla E-posta Yöneltici Sayısı'; $wb['limit_mailfilter_txt'] = 'En Fazla E-posta Süzgeci Sayısı'; -$wb['limit_fetchmail_txt'] = 'En Fazla Posta Alma Hesabı Sayısı'; -$wb['limit_mailquota_txt'] = 'Posta Kutusu Kotası'; -$wb['limit_spamfilter_wblist_txt'] = 'En Fazla Önemsiz Posta Beyaz/Kara Liste Süzgeci Sayısı'; -$wb['limit_spamfilter_user_txt'] = 'En Fazla Önemsiz Posta Süzgeci Kullanıcı Sayısı'; -$wb['limit_spamfilter_policy_txt'] = 'En Fazla Önemsiz Posta Süzgeci Kuralı Sayısı'; +$wb['limit_fetchmail_txt'] = 'En Fazla E-posta Alma Hesabı Sayısı'; +$wb['limit_mailquota_txt'] = 'E-posta Kutusu Kotası'; +$wb['limit_spamfilter_wblist_txt'] = 'En Fazla Önemsiz İleti Beyaz/Kara Liste Süzgeci Sayısı'; +$wb['limit_spamfilter_user_txt'] = 'En Fazla Önemsiz İleti Süzgeci Kullanıcı Sayısı'; +$wb['limit_spamfilter_policy_txt'] = 'En Fazla Önemsiz İleti Süzgeci Kuralı Sayısı'; $wb['limit_domain_txt'] = 'limit_domain'; $wb['limit_subdomain_txt'] = 'limit_subdomain'; $wb['limit_webquota_txt'] = 'limit_webquota'; $wb['limit_database_txt'] = 'En Fazla Veritabanı Sayısı'; $wb['limit_cron_txt'] = 'En Fazla Zamanlanmış Görev Sayısı'; -$wb['limit_cron_type_txt'] = 'En Fazla Zamanlanmış Görev Tipi (chroot ve tam İnternet adresi uygulanan)'; +$wb['limit_cron_type_txt'] = 'En Fazla Zamanlanmış Görev Türü (chroot ve tam İnternet adresi uygulanan)'; $wb['limit_cron_frequency_txt'] = 'İki çalıştırma arasındaki süre'; -$wb['limit_web_domain_txt'] = 'En Fazla Alan Adı Sayısı'; -$wb['limit_web_aliasdomain_txt'] = 'En Fazla Takma Alan Adı Sayısı'; -$wb['limit_web_subdomain_txt'] = 'En Fazla Alt Alan Adı Sayısı'; +$wb['default_webserver_txt'] = 'Varsayılan Web Sunucusu'; +$wb['limit_web_domain_txt'] = 'En Fazla Etki Alanı Sayısı'; +$wb['limit_web_aliasdomain_txt'] = 'En Fazla Takma Etki Alanı Sayısı'; +$wb['limit_web_subdomain_txt'] = 'En Fazla Alt Etki Alanı Sayısı'; $wb['limit_ftp_user_txt'] = 'En Fazla FTP Kullanıcısı Sayısı'; +$wb['default_dnsserver_txt'] = 'Varsayılan Birincil DNS Sunucusu'; $wb['limit_dns_zone_txt'] = 'En Fazla DNS Bölgesi Sayısı'; -$wb['limit_dns_slave_zone_txt'] = 'En Fazla İkinci DNS Bölgesi Sayısı'; +$wb['default_slave_dnsserver_txt'] = 'Varsayılan İkincil DNS Sunucusu'; +$wb['limit_dns_slave_zone_txt'] = 'En Fazla İkincil DNS Bölgesi Sayısı'; $wb['limit_dns_record_txt'] = 'En Fazla DNS Kaydı Sayısı'; $wb['limit_shell_user_txt'] = 'En Fazla Kabuk Kullanıcısı Sayısı'; $wb['limit_webdav_user_txt'] = 'En Fazla Webdav Kullanıcısı Sayısı'; +$wb['limit_backup_txt'] = 'Yedekleme ÖzelliÄŸi Kullanılsın'; $wb['limit_client_txt'] = 'En Fazla Müşteri Sayısı'; -$wb['limit_maildomain_error_notint'] = 'E-posta alan adı sınırı bir sayı olmalıdır.'; -$wb['limit_mailmailinglist_error_notint'] = 'Posta listesi kaydı sınırı bir sayı olmalıdır.'; -$wb['limit_mailbox_error_notint'] = 'Posta kutusu sınırı bir sayı olmalıdır.'; +$wb['limit_maildomain_error_notint'] = 'E-posta etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_mailmailinglist_error_notint'] = 'E-posta listesi kaydı sınırı bir sayı olmalıdır.'; +$wb['limit_mailbox_error_notint'] = 'E-posta kutusu sınırı bir sayı olmalıdır.'; $wb['limit_mailalias_error_notint'] = 'Takma e-posta sınırı bir sayı olmalıdır.'; -$wb['limit_mailaliasdomain_error_notint'] = 'Takma e-posta alan adı sınırı bir sayı olmalıdır.'; +$wb['limit_mailaliasdomain_error_notint'] = 'Takma e-posta etki alanı sınırı bir sayı olmalıdır.'; $wb['limit_mailforward_error_notint'] = 'E-posta yönlendirme sınırı bir sayı olmalıdır.'; $wb['limit_mailcatchall_error_notint'] = 'E-posta tümünü al sınırı bir sayı olmalıdır.'; $wb['limit_mailrouting_error_notint'] = 'E-posta yöneltici sınırı bir sayı olmalıdır.'; $wb['limit_mailfilter_error_notint'] = 'E-posta süzgeci sınırı bir sayı olmalıdır.'; -$wb['limit_mailfetchmail_error_notint'] = 'Posta alma sınırı bir sayı olmalıdır.'; +$wb['limit_mailfetchmail_error_notint'] = 'E-posta alma sınırı bir sayı olmalıdır.'; $wb['limit_mailquota_error_notint'] = 'E-posta kotası sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_wblist_error_notint'] = 'Önemsiz posta süzgeci beyaz/kara liste sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_user_error_notint'] = 'Önemsiz posta süzgeci kullanıcı sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_policy_error_notint'] = 'Önemsiz posta süzgeci kural sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_wblist_error_notint'] = 'Önemsiz ileti süzgeci beyaz/kara liste sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_user_error_notint'] = 'Önemsiz ileti süzgeci kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_policy_error_notint'] = 'Önemsiz ileti süzgeci kural sınırı bir sayı olmalıdır.'; $wb['limit_web_domain_error_notint'] = 'Web sitesi sınırı bir sayı olmalıdır.'; -$wb['limit_web_aliasdomain_error_notint'] = 'Web sitesi takma alan adı sınırı bir sayı olmalıdır.'; -$wb['limit_web_subdomain_error_notint'] = 'Web sitesi alt alan sınırı bir sayı olmalıdır.'; +$wb['limit_web_aliasdomain_error_notint'] = 'Web sitesi takma etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_web_subdomain_error_notint'] = 'Web sitesi alt etki alanı sınırı bir sayı olmalıdır.'; $wb['limit_ftp_user_error_notint'] = 'FTP kullanıcı sınırı bir sayı olmalıdır.'; $wb['limit_shell_user_error_notint'] = 'Kabuk kullanıcı sınırı bir sayı olmalıdır.'; $wb['limit_webdav_user_error_notint'] = 'Webdav kullanıcı sınırı bir sayı olmalıdır.'; -$wb['limit_dns_zone_error_notint'] = 'DNS kaydı sınırı bir sayı olmalıdır.'; +$wb['limit_dns_zone_error_notint'] = 'Birincil DNS kaydı sınırı bir sayı olmalıdır.'; $wb['limit_dns_slave_zone_error_notint'] = 'İkinci DNS bölgesi sınırı bir sayı olmalıdır.'; $wb['limit_dns_record_error_notint'] = 'DNS kaydı sınırı bir sayı olmalıdır.'; +$wb['default_dbserver_txt'] = 'Varsayılan Veritabanı Sunucusu'; +$wb['limit_database_txt'] = 'En Fazla Veritabanı Sayısı'; $wb['limit_database_error_notint'] = 'Veritabanı sınırı bir sayı olmalıdır.'; $wb['limit_cron_error_notint'] = 'Zamanlanmış Görev sınırı bir sayı olmalıdır.'; $wb['limit_cron_error_frequency'] = 'Zamanlanmış Görev sıklığı sınırı bir sayı olmalıdır.'; @@ -69,15 +76,16 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Dayatılacak Sanal Sunucu Kalıbı'; $wb['limit_openvz_vm_error_notint'] = 'Sanal sunucu sınırı bir sayı olmalıdır.'; $wb['ssh_chroot_txt'] = 'SSH-Chroot Ayarları'; $wb['web_php_options_txt'] = 'PHP Ayarları'; -$wb['limit_cgi_txt'] = 'CGI Kullanılabilir'; -$wb['limit_ssi_txt'] = 'SSI Kullanılabilir'; -$wb['limit_perl_txt'] = 'Perl Kullanılabilir'; -$wb['limit_ruby_txt'] = 'Ruby Kullanılabilir'; -$wb['limit_python_txt'] = 'Python Kullanılabilir'; -$wb['force_suexec_txt'] = 'SuEXEC Dayatılmış'; -$wb['limit_hterror_txt'] = 'Özel Hata Sayfaları Kullanılabilir'; -$wb['limit_wildcard_txt'] = 'Genel Alt Alan Adı Kullanılabilir'; -$wb['limit_ssl_txt'] = 'SSL Kullanılabilir'; +$wb['limit_cgi_txt'] = 'CGI Kullanılsın'; +$wb['limit_ssi_txt'] = 'SSI Kullanılsın'; +$wb['limit_perl_txt'] = 'Perl Kullanılsın'; +$wb['limit_ruby_txt'] = 'Ruby Kullanılsın'; +$wb['limit_python_txt'] = 'Python Kullanılsın'; +$wb['force_suexec_txt'] = 'SuEXEC Dayatılsın'; +$wb['limit_hterror_txt'] = 'Özel Hata Sayfaları Kullanılsın'; +$wb['limit_wildcard_txt'] = 'Genel Alt Etki Alanı Kullanılsın'; +$wb['limit_ssl_txt'] = 'SSL Kullanılsın'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt Kullanılsın'; $wb['web_limits_txt'] = 'Web Sınırları'; $wb['email_limits_txt'] = 'E-posta Sınırları'; $wb['database_limits_txt'] = 'Veritabanı Sınırları'; @@ -87,38 +95,33 @@ $wb['virtualization_limits_txt'] = 'SanallaÅŸtırma Sınırları'; $wb['aps_limits_txt'] = 'APS Yükleyici Sınırları'; $wb['limit_aps_txt'] = 'En fazla APS kopyası sayısı'; $wb['limit_aps_error_notint'] = 'APS kopyaları sınırı bir sayı olmalıdır.'; -$wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı'; +$wb['limit_domainmodule_txt'] = 'Etki Alanı Modülü Sınırı'; $wb['client_limits_txt'] = 'Müşteri Sınırları'; -$wb['default_mailserver_txt'] = 'Default Mailserver'; -$wb['default_webserver_txt'] = 'Default Webserver'; -$wb['default_dnsserver_txt'] = 'Default DNS Server'; -$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['limit_backup_txt'] = 'Backupfunction available'; -$wb['default_dbserver_txt'] = 'Default Database Server'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; -$wb['limit_database_quota_txt'] = 'Database quota'; -$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; -$wb['xmpp_limits_txt'] = 'XMPP Limits'; -$wb['xmpp_servers_txt'] = 'XMPP Servers'; -$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers'; -$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.'; -$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.'; -$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.'; -$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.'; -$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains'; -$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts'; -$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available'; -$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available'; -$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available'; -$wb['limit_xmpp_anon_txt'] = 'Anonymous host available'; -$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available'; -$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available'; -$wb['limit_xmpp_status_txt'] = 'Status host available'; -$wb['dns_servers_txt'] = 'DNS servers'; -$wb['limit_directive_snippets_txt'] = 'Show web server config selection'; -$wb['limit_database_user_txt'] = 'Max. Database users'; -$wb['web_servers_txt'] = 'Webservers'; -$wb['db_servers_txt'] = 'Database servers'; -$wb['mail_servers_txt'] = 'Mailservers'; -$wb['Limits'] = 'Limits'; +$wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; +$wb['limit_database_quota_error_notint'] = 'Veritabanı kotası sınırı deÄŸeri bir sayı olmalıdır.'; +$wb['xmpp_limits_txt'] = 'XMPP Sınırları'; +$wb['xmpp_servers_txt'] = 'XMPP Sunucuları'; +$wb['xmpp_servers_placeholder'] = 'XMPP Sunucularını Seçin'; +$wb['no_xmpp_server_error'] = 'En az bir XMPP sunucusu seçilmelidir.'; +$wb['xmpp_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir XMPP sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_domain_txt'] = 'En fazla XMPP etki alanı sayısı'; +$wb['limit_xmpp_user_txt'] = 'En fazla XMPP hesabı sayısı'; +$wb['limit_xmpp_muc_txt'] = 'Çok Kullanıcılı Sohbet (ÇKS) Kullanılsın'; +$wb['limit_xmpp_pastebin_txt'] = 'ÇKS için Pastebin Kullanılsın'; +$wb['limit_xmpp_httparchive_txt'] = 'ÇKS için HTTP ArÅŸivi Kullanılsın'; +$wb['limit_xmpp_anon_txt'] = 'Adsız Sunucu Kullanılsın'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD Kullanıcı Klasörü Kullanılsın'; +$wb['limit_xmpp_proxy_txt'] = 'Bytestream Vekil Sunucusu Kullanılsın'; +$wb['limit_xmpp_status_txt'] = 'Durum Sunucusu Kullanılsın'; +$wb['dns_servers_txt'] = 'DNS Sunucular'; +$wb['limit_directive_snippets_txt'] = 'Web Sunucu Yapılandırma Seçimi Görüntülensin'; +$wb['limit_database_user_txt'] = 'En Fazla Veritabanı Kullanıcısı Sayısı'; +$wb['web_servers_txt'] = 'Web Sunucuları'; +$wb['db_servers_txt'] = 'Veritabanı Sunucuları'; +$wb['xmpp_servers_txt'] = 'XMPP Sunucuları'; +$wb['db_servers_txt'] = 'Veritabanı Sunucuları'; +$wb['mail_servers_txt'] = 'E-posta Sunucuları'; +$wb['Limits'] = 'Sınırlar'; ?> diff --git a/interface/web/client/lib/lang/tr_client_template_list.lng b/interface/web/client/lib/lang/tr_client_template_list.lng index 1663e6e2da3ccaab1f2fa8a93519d45e6212ff72..cab3f906a4aaa871f1e7758796bc9cc028e99ca1 100644 --- a/interface/web/client/lib/lang/tr_client_template_list.lng +++ b/interface/web/client/lib/lang/tr_client_template_list.lng @@ -1,6 +1,7 @@ <?php $wb['list_head_txt'] = 'Müşteri ve Bayi Kalıpları'; -$wb['template_type_txt'] = 'Tip'; -$wb['template_name_txt'] = 'Kalıp adı'; -$wb['template_id_txt'] = 'Kalıp kodu'; +$wb['template_type_txt'] = 'Tür'; +$wb['template_name_txt'] = 'Kalıp Adı'; +$wb['template_id_txt'] = 'Kalıp Kodu'; +$wb['sys_groupid_txt'] = 'Bayi'; ?> diff --git a/interface/web/client/lib/lang/tr_clients_list.lng b/interface/web/client/lib/lang/tr_clients_list.lng index d59411a3d1d02dbcd35ddf9d61d71e1730ebb983..8b13f1c81b94b31c26e93a14ecdc92aab8804cef 100644 --- a/interface/web/client/lib/lang/tr_clients_list.lng +++ b/interface/web/client/lib/lang/tr_clients_list.lng @@ -1,14 +1,14 @@ <?php $wb['list_head_txt'] = 'Müşteriler'; $wb['client_id_txt'] = 'Kod'; -$wb['company_name_txt'] = 'Kurum Adı'; +$wb['company_name_txt'] = 'KuruluÅŸ Adı'; $wb['contact_name_txt'] = 'İlgili Adı'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['city_txt'] = 'İl'; $wb['country_txt'] = 'Ülke'; $wb['add_new_record_txt'] = 'Müşteri Ekle'; $wb['customer_no_txt'] = 'Müşteri No'; -$wb['locked_txt'] = 'Locked'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; +$wb['locked_txt'] = 'Kilitli'; +$wb['yes_txt'] = 'Evet'; +$wb['no_txt'] = 'Hayır'; ?> diff --git a/interface/web/client/lib/lang/tr_domain.lng b/interface/web/client/lib/lang/tr_domain.lng index ba5dab700d0a988220530423d87ead120ce0c69f..d0b4e228dae6ab0867652235de8eea6ff4c2d601 100644 --- a/interface/web/client/lib/lang/tr_domain.lng +++ b/interface/web/client/lib/lang/tr_domain.lng @@ -1,6 +1,6 @@ <?php -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz'; -$wb['domain_error_unique'] = 'Aynı alan adı zaten var'; -$wb['domain_error_regex'] = 'Bu alan adına izin verilmiyor'; -$wb['Domain'] = 'Alan Adı'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz'; +$wb['domain_error_unique'] = 'Aynı etki alanı zaten var'; +$wb['domain_error_regex'] = 'Bu etki alanına izin verilmiyor'; +$wb['Domain'] = 'Etki Alanı'; ?> diff --git a/interface/web/client/lib/lang/tr_domain_list.lng b/interface/web/client/lib/lang/tr_domain_list.lng index d422ef3d5d4ac5e51619e10b5f18df24604ed47f..8b6f75be84624cbec238c7df2fea38deb6b8497b 100644 --- a/interface/web/client/lib/lang/tr_domain_list.lng +++ b/interface/web/client/lib/lang/tr_domain_list.lng @@ -1,6 +1,6 @@ <?php -$wb['list_head_txt'] = 'Alan Adları'; -$wb['add_new_record_txt'] = 'Alan Adı Ekle'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['list_head_txt'] = 'Etki Alanları'; +$wb['add_new_record_txt'] = 'Etki Alanı Ekle'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['user_txt'] = 'Müşteri'; ?> diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng index 4906a894c0bf02bbd6bf33b4ab4a7f8c84eb0eb5..d7bc06429e137f5cd6abf3a3205870f7bee8866d 100644 --- a/interface/web/client/lib/lang/tr_reseller.lng +++ b/interface/web/client/lib/lang/tr_reseller.lng @@ -1,28 +1,30 @@ <?php -$wb['limit_maildomain_txt'] = 'En Fazla Alan Adı Sayısı'; -$wb['limit_mailmailinglist_txt'] = 'En Fazla Posta Listesi Sayısı'; -$wb['limit_mailbox_txt'] = 'En Fazla Posta Kutusu Sayısı'; +$wb['limit_maildomain_txt'] = 'En Fazla Etki Alanı Sayısı'; +$wb['limit_mailmailinglist_txt'] = 'En Fazla E-posta Listesi Sayısı'; +$wb['limit_mailbox_txt'] = 'En Fazla E-posta Kutusu Sayısı'; $wb['limit_mailalias_txt'] = 'En Fazla Takma E-posta Sayısı'; -$wb['limit_mailaliasdomain_txt'] = 'En Fazla Takma Alan Adı Sayısı'; +$wb['limit_mailaliasdomain_txt'] = 'En Fazla Takma Etki Alanı Sayısı'; $wb['limit_mailforward_txt'] = 'En Fazla E-posta Yönlendirici Sayısı'; $wb['limit_mailcatchall_txt'] = 'En Fazla E-posta Tümünü Al Hesabı Sayısı'; $wb['limit_mailrouting_txt'] = 'En Fazla E-posta Yöneltici Sayısı'; $wb['limit_mailfilter_txt'] = 'En Fazla E-posta Süzgeci Sayısı'; -$wb['limit_fetchmail_txt'] = 'En Fazla Posta Alma Hesabı Sayısı'; -$wb['limit_mailquota_txt'] = 'Posta Kutusu Kotası'; -$wb['limit_spamfilter_wblist_txt'] = 'En Fazla Önemsiz Posta Beyaz/Kara Liste Süzgeci Sayısı'; -$wb['limit_spamfilter_user_txt'] = 'En Fazla Önemsiz Posta Kullanıcısı Sayısı'; -$wb['limit_spamfilter_policy_txt'] = 'En Fazla Önemsiz Posta Kuralı Sayısı'; -$wb['default_mailserver_txt'] = 'Varsayılan Posta Sunucusu'; -$wb['company_name_txt'] = 'Kurum Adı'; +$wb['limit_fetchmail_txt'] = 'En Fazla E-posta Alma Hesabı Sayısı'; +$wb['limit_mailquota_txt'] = 'E-posta Kutusu Kotası'; +$wb['limit_spamfilter_wblist_txt'] = 'En Fazla Önemsiz İleti Beyaz/Kara Liste Süzgeci Sayısı'; +$wb['limit_spamfilter_user_txt'] = 'En Fazla Önemsiz İleti Kullanıcısı Sayısı'; +$wb['limit_spamfilter_policy_txt'] = 'En Fazla Önemsiz İleti Kuralı Sayısı'; +$wb['default_mailserver_txt'] = 'Varsayılan E-posta Sunucusu'; +$wb['company_name_txt'] = 'KuruluÅŸ Adı'; +$wb['contact_firstname_txt'] = 'İlgili Adı'; $wb['contact_name_txt'] = 'İlgili Adı'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_click_to_set_txt'] = 'Ayarlamak için tıklayın'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['language_txt'] = 'Dil'; $wb['usertheme_txt'] = 'Tema'; $wb['street_txt'] = 'Adres'; -$wb['zip_txt'] = 'Posta kodu'; +$wb['zip_txt'] = 'Posta Kodu'; $wb['city_txt'] = 'İlçe'; $wb['state_txt'] = 'İl'; $wb['country_txt'] = 'Ülke'; @@ -33,25 +35,26 @@ $wb['email_txt'] = 'E-posta'; $wb['internet_txt'] = 'İnternet'; $wb['icq_txt'] = 'ICQ'; $wb['notes_txt'] = 'Notlar'; -$wb['company_txt'] = 'Kurum'; -$wb['title_txt'] = 'Ünvan'; +$wb['company_txt'] = 'KuruluÅŸ'; +$wb['title_txt'] = 'Unvan'; $wb['firstname_txt'] = 'Adı'; $wb['surname_txt'] = 'Soyadı'; $wb['limit_domain_txt'] = 'limit_domain'; $wb['limit_subdomain_txt'] = 'limit_subdomain'; $wb['limit_webquota_txt'] = 'limit_webquota'; $wb['limit_database_txt'] = 'En Fazla Veritabanı Sayısı'; +$wb['limit_database_user_txt'] = 'En Fazla Veritabanı Kullanıcısı Sayısı'; $wb['limit_cron_txt'] = 'En Fazla Zamanlanmış Görev Sayısı'; -$wb['limit_cron_type_txt'] = 'En Fazla Zamanlanmış Görev Tipi (chroot ve tam İnternet adresi uygulaması)'; +$wb['limit_cron_type_txt'] = 'En Fazla Zamanlanmış Görev Türü (chroot ve tam İnternet adresi uygulaması)'; $wb['limit_cron_frequency_txt'] = 'İki Çalıştırma Arasındaki Süre'; $wb['ip_address_txt'] = 'ip_adresi'; $wb['limit_client_error_notint'] = 'Alt müşteri sınırı bir sayı olmalıdır.'; $wb['firstname_error_empty'] = 'Adı boÅŸ olamaz.'; $wb['contact_error_empty'] = 'İlgili adı boÅŸ olamaz.'; $wb['default_webserver_txt'] = 'Varsayılan Web Sunucusu'; -$wb['limit_web_domain_txt'] = 'En Fazla Alan Adı Sayısı'; -$wb['limit_web_aliasdomain_txt'] = 'En Fazla Takma Alan Adı Sayısı'; -$wb['limit_web_subdomain_txt'] = 'En Fazla Alt Alan Adı Sayısı'; +$wb['limit_web_domain_txt'] = 'En Fazla Etki Alanı Sayısı'; +$wb['limit_web_aliasdomain_txt'] = 'En Fazla Takma Etki Alanı Sayısı'; +$wb['limit_web_subdomain_txt'] = 'En Fazla Alt Etki Alanı Sayısı'; $wb['limit_ftp_user_txt'] = 'En Fazla FTP Kullanıcı Sayısı'; $wb['default_dnsserver_txt'] = 'Varsayılan DNS Sunucusu'; $wb['limit_dns_zone_txt'] = 'En Fazla DNS Bölgesi Sayısı'; @@ -59,32 +62,35 @@ $wb['limit_dns_slave_zone_txt'] = 'En Fazla İkincil DNS Bölgesi Sayısı'; $wb['limit_dns_record_txt'] = 'En Fazla DNS Kaydı Sayısı'; $wb['limit_shell_user_txt'] = 'En Fazla Kabuk Kullanıcısı Sayısı'; $wb['limit_webdav_user_txt'] = 'En Fazla Webdav Kullanıcısı Sayısı'; +$wb['limit_backup_txt'] = 'Yedekleme ÖzelliÄŸi Kullanılsın'; $wb['limit_client_txt'] = 'En Fazla Müşteri Sayısı'; $wb['username_error_empty'] = 'Kullanıcı adı boÅŸ olamaz.'; $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var.'; -$wb['limit_maildomain_error_notint'] = 'E-posta alan adı sınırı bir sayı olmalıdır.'; -$wb['limit_mailmailinglist_error_notint'] = 'Posta listesi kaydı sınırı bir sayı olmalıdır.'; -$wb['limit_mailbox_error_notint'] = 'Posta kutusu sınırı bir sayı olmalıdır.'; +$wb['limit_maildomain_error_notint'] = 'E-posta etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_mailmailinglist_error_notint'] = 'E-posta listesi kaydı sınırı bir sayı olmalıdır.'; +$wb['limit_mailbox_error_notint'] = 'E-posta kutusu sınırı bir sayı olmalıdır.'; $wb['limit_mailalias_error_notint'] = 'Takma e-posta sınırı bir sayı olmalıdır.'; $wb['limit_mailforward_error_notint'] = 'E-posta yönlendirici sınırı bir sayı olmalıdır.'; $wb['limit_mailcatchall_error_notint'] = 'E-posta tümünü al hesabı sınırı bir sayı olmalıdır.'; $wb['limit_mailrouting_error_notint'] = 'E-posta yöneltici sınırı bir sayı olmalıdır.'; $wb['limit_mailfilter_error_notint'] = 'E-posta süzgeci sınırı bir sayı olmalıdır.'; -$wb['limit_mailfetchmail_error_notint'] = 'Posta alıcısı sınırı bir sayı olmalıdır.'; +$wb['limit_mailfetchmail_error_notint'] = 'E-posta alıcısı sınırı bir sayı olmalıdır.'; $wb['limit_mailquota_error_notint'] = 'E-posta kota sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_wblist_error_notint'] = 'Önemsiz posta beyaz/kara liste süzgeci sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_user_error_notint'] = 'Önemsiz posta süzgeci kullanıcısı sınırı bir sayı olmalıdır.'; -$wb['limit_spamfilter_policy_error_notint'] = 'Önemsiz posta süzgeci kuralı sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_wblist_error_notint'] = 'Önemsiz ileti beyaz/kara liste süzgeci sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_user_error_notint'] = 'Önemsiz ileti süzgeci kullanıcısı sınırı bir sayı olmalıdır.'; +$wb['limit_spamfilter_policy_error_notint'] = 'Önemsiz ileti süzgeci kuralı sınırı bir sayı olmalıdır.'; $wb['limit_web_domain_error_notint'] = 'Web sitesi sınırı bir sayı olmalıdır.'; -$wb['limit_web_aliasdomain_error_notint'] = 'Web sitesi takma alan adı sınırı bir sayı olmalıdır.'; -$wb['limit_web_subdomain_error_notint'] = 'Web sitesi alt alan adı sınırı bir sayı olmalıdır.'; +$wb['limit_web_aliasdomain_error_notint'] = 'Web sitesi takma etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_web_subdomain_error_notint'] = 'Web sitesi alt etki alanı sınırı bir sayı olmalıdır.'; $wb['limit_ftp_user_error_notint'] = 'FTP kullanıcı sınırı bir sayı olmalıdır.'; $wb['limit_webdav_user_error_notint'] = 'Webdav kullanıcısı sınırı bir sayı olmalıdır.'; $wb['limit_shell_user_error_notint'] = 'Kabuk kullanıcısı sınırı bir sayı olmalıdır.'; -$wb['limit_dns_zone_error_notint'] = 'DNS bölgesi sınırı bir sayı olmalıdır.'; +$wb['limit_dns_zone_error_notint'] = 'Birincil DNS bölgesi sınırı bir sayı olmalıdır.'; $wb['limit_dns_slave_zone_error_notint'] = 'İkincil DNS bölgesi sınırı bir sayı olmalıdır.'; $wb['limit_dns_record_error_notint'] = 'DNS kaydı sınırı bir sayı olmalıdır.'; +$wb['limit_client_error_notint'] = 'Müşteri sınırı bir sayı olmalıdır.'; $wb['default_dbserver_txt'] = 'Varsayılan Veritabanı Sunucusu'; +$wb['limit_database_txt'] = 'En Fazla Veritabanı Sayısı'; $wb['limit_database_error_notint'] = 'Veritabanı sınırı bir sayı olmalıdır.'; $wb['limit_cron_error_notint'] = 'Zamanlanmış görev sınırı bir sayı olmalıdır.'; $wb['limit_cron_error_frequency'] = 'Zamanlanmış görev sıklığı sınırı bir sayı olmalıdır.'; @@ -95,16 +101,18 @@ $wb['add_additional_template_txt'] = 'Ek Kalıbı Ekle'; $wb['delete_additional_template_txt'] = 'Ek Kalıbı Sil'; $wb['ssh_chroot_txt'] = 'SSH-Chroot Ayarları'; $wb['web_php_options_txt'] = 'PHP Ayarları'; -$wb['limit_cgi_txt'] = 'CGI Kullanılabilir'; -$wb['limit_ssi_txt'] = 'SSI Kullanılabilir'; -$wb['limit_perl_txt'] = 'Perl Kullanılabilir'; -$wb['limit_ruby_txt'] = 'Ruby Kullanılabilir'; -$wb['limit_python_txt'] = 'Python Kullanılabilir'; -$wb['force_suexec_txt'] = 'SuEXEC Dayatılmış'; -$wb['limit_hterror_txt'] = 'Özel Hata Sayfaları Kullanılabilir'; -$wb['limit_wildcard_txt'] = 'Genel Alt Alan Kullanılabilir'; -$wb['limit_ssl_txt'] = 'SSL Kullanılabilir'; +$wb['limit_cgi_txt'] = 'CGI Kullanılsın'; +$wb['limit_ssi_txt'] = 'SSI Kullanılsın'; +$wb['limit_perl_txt'] = 'Perl Kullanılsın'; +$wb['limit_ruby_txt'] = 'Ruby Kullanılsın'; +$wb['limit_python_txt'] = 'Python Kullanılsın'; +$wb['force_suexec_txt'] = 'SuEXEC Dayatılsın'; +$wb['limit_hterror_txt'] = 'Özel Hata Sayfaları Kullanılsın'; +$wb['limit_wildcard_txt'] = 'Genel Alt Etki Alanı Kullanılsın'; +$wb['limit_ssl_txt'] = 'SSL Kullanılsın'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt Kullanılsın'; $wb['limit_client_error'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla müşteri sayısına ulaÅŸtınız.'; +$wb['limit_client_error_positive_or_unlimited'] = 'Müşteri sayısı > 0 ya da -1 (sınırsız) olmalıdır'; $wb['limit_web_quota_txt'] = 'Web Kotası'; $wb['limit_traffic_quota_txt'] = 'Trafik Kotası'; $wb['limit_trafficquota_error_notint'] = 'Trafik kotası bir sayı olmalıdır.'; @@ -123,7 +131,7 @@ $wb['database_limits_txt'] = 'Veritabanı Sınırları'; $wb['cron_job_limits_txt'] = 'Zamanlanmış Görev Sınırları'; $wb['dns_limits_txt'] = 'DNS Sınırları'; $wb['virtualization_limits_txt'] = 'SanallaÅŸtırma Sınırları'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; @@ -146,62 +154,60 @@ $wb['locked_txt'] = 'Kilitli'; $wb['canceled_txt'] = 'İptal edilmiÅŸ'; $wb['gender_m_txt'] = 'Bay'; $wb['gender_f_txt'] = 'Bayan'; -$wb['gender_txt'] = 'Ünvan'; +$wb['gender_txt'] = 'Unvan'; +$wb['web_servers_txt'] = 'Web Sunucuları'; +$wb['web_servers_placeholder'] = 'Web Sunucularını Seçin'; +$wb['no_web_server_error'] = 'En az bir web sunucusu seçilmelidir.'; +$wb['web_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir web sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['dns_servers_txt'] = 'DNS Sunucular'; +$wb['dns_servers_placeholder'] = 'DNS Sunucuları Seçin'; +$wb['no_dns_server_error'] = 'En az bir DNS sunucusu seçilmelidir.'; +$wb['dns_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir DNS sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun'; +$wb['db_servers_txt'] = 'Veritabanı Sunucuları'; +$wb['db_servers_placeholder'] = 'Veritabanı Sunucularını Seçin'; +$wb['no_db_server_error'] = 'En az bir veritabanı sunucusu seçilmelidir.'; +$wb['db_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir veritabanı sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['mail_servers_txt'] = 'E-posta Sunucuları'; +$wb['mail_servers_placeholder'] = 'E-posta Sunucularını Seçin'; +$wb['no_mail_server_error'] = 'En az bir e-posta sunucusu seçilmelidir.'; +$wb['mail_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir e-posta sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; $wb['customer_no_template_txt'] = 'Müşteri No Kalıbı'; $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersiz karakterler var'; $wb['customer_no_start_txt'] = 'Müşteri No BaÅŸlangıç DeÄŸeri'; $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı'; + +$wb['xmpp_limits_txt'] = 'XMPP Sınırları'; +$wb['xmpp_servers_txt'] = 'XMPP Sunucular'; +$wb['xmpp_servers_placeholder'] = 'XMPP Sunucuları Seçin'; +$wb['no_xmpp_server_error'] = 'En az bir XMPP sunucusu seçilmelidir.'; +$wb['xmpp_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir XMPP sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_domain_txt'] = 'En Fazla XMPP Etki Alanı Sayısı'; +$wb['limit_xmpp_user_txt'] = 'En Fazla XMPP Hesabı Sayısı'; +$wb['limit_xmpp_muc_txt'] = 'Çok Kullanıcılı Sohbet (ÇKS) Kullanılsın'; +$wb['limit_xmpp_pastebin_txt'] = 'ÇKS için Pastebin Kullanılsın'; +$wb['limit_xmpp_httparchive_txt'] = 'ÇKS için HTTP ArÅŸivi Kullanılsın'; +$wb['limit_xmpp_anon_txt'] = 'Adsız Sunucu Kullanılsın'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD Kullanıcı Klasörü Kullanılsın'; +$wb['limit_xmpp_proxy_txt'] = 'Bytestream Vekil Sunucusu Kullanılsın'; +$wb['limit_xmpp_status_txt'] = 'Durum Sunucusu Kullanılsın'; $wb['added_by_txt'] = 'Ekleyen'; $wb['added_date_txt'] = 'EklendiÄŸi Tarih'; -$wb['limit_domainmodule_error_notint'] = 'Alan adı modülü sınırı bir sayı olmalıdır.'; -$wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı'; +$wb['limit_domainmodule_error_notint'] = 'Etki alanı modülü sınırı bir sayı olmalıdır.'; +$wb['limit_domainmodule_txt'] = 'Etki Alanı Modülü Sınırı'; $wb['client_limits_txt'] = 'Müşteri Sınırları'; -$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan baÅŸka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; -$wb['contact_firstname_txt'] = 'Contact firstname'; -$wb['password_click_to_set_txt'] = 'Click to set'; -$wb['limit_database_user_txt'] = 'Max. Database users'; -$wb['limit_backup_txt'] = 'Backupfunction available'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; -$wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; -$wb['web_servers_txt'] = 'Webservers'; -$wb['web_servers_placeholder'] = 'Select Webservers'; -$wb['no_web_server_error'] = 'At least one webserver must be selected.'; -$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before to remove it.'; -$wb['dns_servers_txt'] = 'DNS Server'; -$wb['dns_servers_placeholder'] = 'Select DNS Servers'; -$wb['no_dns_server_error'] = 'At least one DNS server must be selected.'; -$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before to remove it.'; -$wb['db_servers_txt'] = 'Database Server'; -$wb['db_servers_placeholder'] = 'Select Database Servers'; -$wb['no_db_server_error'] = 'At least one Database server must be selected.'; -$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before to remove it.'; -$wb['mail_servers_txt'] = 'Mailservers'; -$wb['mail_servers_placeholder'] = 'Select Mailservers'; -$wb['no_mail_server_error'] = 'At least one Mailserver must be selected.'; -$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before to remove it.'; -$wb['xmpp_limits_txt'] = 'XMPP Limits'; -$wb['xmpp_servers_txt'] = 'XMPP Servers'; -$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers'; -$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.'; -$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.'; -$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.'; -$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.'; -$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains'; -$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts'; -$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available'; -$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available'; -$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available'; -$wb['limit_xmpp_anon_txt'] = 'Anonymous host available'; -$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available'; -$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available'; -$wb['limit_xmpp_status_txt'] = 'Status host available'; -$wb['invalid_vat_id'] = 'The VAT ID is invalid.'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['email_error_empty'] = 'Email is empty'; -$wb['limit_directive_snippets_txt'] = 'Show web server config selection'; -$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; -$wb['limit_database_quota_txt'] = 'Database quota'; -$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; -$wb['Limits'] = 'Limits'; +$wb['err_msg_master_tpl_set'] = '"Özel" kalıptan baÅŸka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yok sayılır.'; +$wb['invalid_vat_id'] = 'Vergi numarası geçersiz.'; +$wb['btn_save_txt'] = 'Kaydet'; +$wb['btn_cancel_txt'] = 'İptal'; +$wb['email_error_empty'] = 'E-posta boÅŸ olamaz.'; +$wb['limit_directive_snippets_txt'] = 'Web Sunucu Yapılandırma Seçimi Görüntülensin'; +$wb['limit_database_user_txt'] = 'En Fazla Veritabanı Kullanıcısı Sayısı'; +$wb['limit_database_user_error_notint'] = 'Veritabanı kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; +$wb['limit_database_quota_error_notint'] = 'Veritabanı kotası sınırı bir sayı olmalıdır.'; +$wb['Reseller'] = 'Reseller'; +$wb['Address'] = 'Address'; +$wb['Limits'] = 'Sınırlar'; ?> diff --git a/interface/web/client/lib/lang/tr_resellers_list.lng b/interface/web/client/lib/lang/tr_resellers_list.lng index 2cb388b96eaf084d3e4fb0140d32dbd13585657f..62116103c14046c5e5f46f479e49e5e26d251a0f 100644 --- a/interface/web/client/lib/lang/tr_resellers_list.lng +++ b/interface/web/client/lib/lang/tr_resellers_list.lng @@ -1,7 +1,7 @@ <?php $wb['list_head_txt'] = 'Bayiler'; $wb['client_id_txt'] = 'Kod'; -$wb['company_name_txt'] = 'Kurum Adı'; +$wb['company_name_txt'] = 'KuruluÅŸ Adı'; $wb['contact_name_txt'] = 'İlgili Adı'; $wb['city_txt'] = 'İl'; $wb['country_txt'] = 'Ülke'; diff --git a/interface/web/client/lib/module.conf.php b/interface/web/client/lib/module.conf.php index 2603550c9b507b715dfe320bfd1553f73e98d124..2203571381023be16ef3656fdbf3cf45685ed2c1 100644 --- a/interface/web/client/lib/module.conf.php +++ b/interface/web/client/lib/module.conf.php @@ -87,6 +87,10 @@ if ($settings['use_domain_module'] == 'y') { 'target' => 'content', 'link' => 'client/domain_list.php'); + $items[] = array( 'title' => 'Add Domain', + 'target' => 'content', + 'link' => 'client/domain_edit.php'); + $module['nav'][] = array( 'title' => 'Domains', 'open' => 1, 'items' => $items); diff --git a/interface/web/client/reseller_del.php b/interface/web/client/reseller_del.php index 55872beabd3567f1c536bf775ac534d3d6133cee..a77dc5659cda8a36d75189ab62d244a7fb9a7280 100644 --- a/interface/web/client/reseller_del.php +++ b/interface/web/client/reseller_del.php @@ -60,7 +60,48 @@ class page_action extends tform_actions { $client_id = $app->functions->intval($this->dataRecord['client_id']); $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE parent_client_id = ?", $client_id); - if($tmp["number"] > 0) $app->error($app->lng('error_has_clients')); + if($tmp["number"] > 0) { + $app->error($app->lng('error_has_clients')); + } else { + $parent_client_id = $app->functions->intval($this->dataRecord['parent_client_id']); + $parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = ?", $parent_client_id); + $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ?", $client_id); + + // Delete all records (mail, web, etc....) of this reseller. + $tables = 'cron,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_folder,web_folder_user,domain,mail_mailinglist,spamfilter_wblist'; + $tables_array = explode(',', $tables); + $client_group_id = $app->functions->intval($client_group['groupid']); + if($client_group_id > 1) { + foreach($tables_array as $table) { + if($table != '') { + //* find the primary ID of the table + $table_info = $app->db->tableInfo($table); + $index_field = ''; + foreach($table_info as $tmp) { + if($tmp['option'] == 'primary') $index_field = $tmp['name']; + } + //* Delete the records + if($index_field != '') { + $records = $app->db->queryAllRecords("SELECT * FROM ?? WHERE sys_groupid = ? ORDER BY ?? DESC", $table, $client_group_id, $index_field); + if(is_array($records)) { + foreach($records as $rec) { + $app->db->datalogDelete($table, $index_field, $rec[$index_field]); + //* Delete traffic records that dont have a sys_groupid column + if($table == 'web_domain') { + $app->db->query("DELETE FROM web_traffic WHERE hostname = ?", $rec['domain']); + } + //* Delete mail_traffic records that dont have a sys_groupid + if($table == 'mail_user') { + $app->db->query("DELETE FROM mail_traffic WHERE mailuser_id = ?", $rec['mailuser_id']); + } + } + } + } + + } + } + } + } } diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php index 7a84be525300ccedf01d95ce1f7aacacf8368fe7..3078e01fbc47a8c71f1ec1734fa03f642c4b6baf 100644 --- a/interface/web/client/reseller_edit.php +++ b/interface/web/client/reseller_edit.php @@ -200,6 +200,9 @@ class page_action extends tform_actions { */ function onAfterInsert() { global $app, $conf; + + $app->uses('auth'); + // Create the group for the reseller $groupid = $app->db->datalogInsert('sys_group', array("name" => $this->dataRecord["username"], "description" => '', "client_id" => $this->id), 'groupid'); $groups = $groupid; @@ -213,16 +216,10 @@ class page_action extends tform_actions { $active = 1; $language = $this->dataRecord["language"]; - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password), $salt); - + $password = $app->auth->crypt_password(stripslashes($password)); + // Create the controlpaneluser for the reseller - $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) + $sql = "INSERT INTO sys_user (`username`,`passwort`,`modules`,`startmodule`,`app_theme`,`typ`, `active`,`language`,`groups`,`default_group`,`client_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $app->db->query($sql, $username, $password, $modules, $startmodule, $usertheme, $type, $active, $language, $groups, $groupid, $this->id); @@ -313,6 +310,8 @@ class page_action extends tform_actions { function onAfterUpdate() { global $app, $conf; + $app->uses('auth'); + // username changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) { $username = $this->dataRecord["username"]; @@ -329,13 +328,8 @@ class page_action extends tform_actions { if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') { $password = $this->dataRecord["password"]; $client_id = $this->id; - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password), $salt); + + $password = $app->auth->crypt_password(stripslashes($password)); $sql = "UPDATE sys_user SET passwort = ? WHERE client_id = ?"; $app->db->query($sql, $password, $client_id); } @@ -368,6 +362,124 @@ class page_action extends tform_actions { $app->uses('client_templates'); $app->client_templates->update_client_templates($this->id, $this->_template_additional); } + + if(!isset($this->dataRecord['locked'])) $this->dataRecord['locked'] = 'n'; + if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && $this->dataRecord["locked"] != $this->oldDataRecord['locked']) { + /** lock all the things like web, mail etc. - easy to extend */ + + + // get tmp_data of client + $client_data = $app->db->queryOneRecord('SELECT `tmp_data` FROM `client` WHERE `client_id` = ?', $this->id); + + if($client_data['tmp_data'] == '') $tmp_data = array(); + else $tmp_data = unserialize($client_data['tmp_data']); + + if(!is_array($tmp_data)) $tmp_data = array(); + + // database tables with their primary key columns + $to_disable = array('cron' => 'id', + 'ftp_user' => 'ftp_user_id', + 'mail_domain' => 'domain_id', + 'mail_user' => 'mailuser_id', + 'mail_user_smtp' => 'mailuser_id', + 'mail_forwarding' => 'forwarding_id', + 'mail_get' => 'mailget_id', + 'openvz_vm' => 'vm_id', + 'shell_user' => 'shell_user_id', + 'webdav_user' => 'webdav_user_id', + 'web_database' => 'database_id', + 'web_domain' => 'domain_id', + 'web_folder' => 'web_folder_id', + 'web_folder_user' => 'web_folder_user_id' + ); + + $udata = $app->db->queryOneRecord('SELECT `userid` FROM `sys_user` WHERE `client_id` = ?', $this->id); + $gdata = $app->db->queryOneRecord('SELECT `groupid` FROM `sys_group` WHERE `client_id` = ?', $this->id); + $sys_groupid = $gdata['groupid']; + $sys_userid = $udata['userid']; + + $entries = array(); + if($this->dataRecord['locked'] == 'y') { + $prev_active = array(); + $prev_sysuser = array(); + foreach($to_disable as $current => $keycolumn) { + $active_col = 'active'; + $reverse = false; + if($current == 'mail_user') { + $active_col = 'postfix'; + } elseif($current == 'mail_user_smtp') { + $current = 'mail_user'; + $active_col = 'disablesmtp'; + $reverse = true; + } + + if(!isset($prev_active[$current])) $prev_active[$current] = array(); + if(!isset($prev_sysuser[$current])) $prev_sysuser[$current] = array(); + + $entries = $app->db->queryAllRecords('SELECT ?? as `id`, `sys_userid`, ?? FROM ?? WHERE `sys_groupid` = ?', $keycolumn, $active_col, $current, $sys_groupid); + foreach($entries as $item) { + + if($item[$active_col] != 'y' && $reverse == false) $prev_active[$current][$item['id']][$active_col] = 'n'; + elseif($item[$active_col] == 'y' && $reverse == true) $prev_active[$current][$item['id']][$active_col] = 'y'; + if($item['sys_userid'] != $sys_userid) $prev_sysuser[$current][$item['id']] = $item['sys_userid']; + // we don't have to store these if y, as everything without previous state gets enabled later + + $app->db->datalogUpdate($current, array($active_col => ($reverse == true ? 'y' : 'n'), 'sys_userid' => $_SESSION["s"]["user"]["userid"]), $keycolumn, $item['id']); + } + } + + $tmp_data['prev_active'] = $prev_active; + $tmp_data['prev_sys_userid'] = $prev_sysuser; + $app->db->query("UPDATE `client` SET `tmp_data` = ? WHERE `client_id` = ?", serialize($tmp_data), $this->id); + unset($prev_active); + unset($prev_sysuser); + } elseif($this->dataRecord['locked'] == 'n') { + foreach($to_disable as $current => $keycolumn) { + $active_col = 'active'; + $reverse = false; + if($current == 'mail_user') { + $active_col = 'postfix'; + } elseif($current == 'mail_user_smtp') { + $current = 'mail_user'; + $active_col = 'disablesmtp'; + $reverse = true; + } + + $entries = $app->db->queryAllRecords('SELECT ?? as `id` FROM ?? WHERE `sys_groupid` = ?', $keycolumn, $current, $sys_groupid); + foreach($entries as $item) { + $set_active = ($reverse == true ? 'n' : 'y'); + $set_inactive = ($reverse == true ? 'y' : 'n'); + $set_sysuser = $sys_userid; + if(array_key_exists('prev_active', $tmp_data) == true + && array_key_exists($current, $tmp_data['prev_active']) == true + && array_key_exists($item['id'], $tmp_data['prev_active'][$current]) == true + && $tmp_data['prev_active'][$current][$item['id']][$active_col] == $set_inactive) $set_active = $set_inactive; + if(array_key_exists('prev_sysuser', $tmp_data) == true + && array_key_exists($current, $tmp_data['prev_sysuser']) == true + && array_key_exists($item['id'], $tmp_data['prev_sysuser'][$current]) == true + && $tmp_data['prev_sysuser'][$current][$item['id']] != $sys_userid) $set_sysuser = $tmp_data['prev_sysuser'][$current][$item['id']]; + + $app->db->datalogUpdate($current, array($active_col => $set_active, 'sys_userid' => $set_sysuser), $keycolumn, $item['id']); + } + } + if(array_key_exists('prev_active', $tmp_data)) unset($tmp_data['prev_active']); + $app->db->query("UPDATE `client` SET `tmp_data` = ? WHERE `client_id` = ?", serialize($tmp_data), $this->id); + } + unset($tmp_data); + unset($entries); + unset($to_disable); + } + + if(!isset($this->dataRecord['canceled'])) $this->dataRecord['canceled'] = 'n'; + if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && $this->dataRecord["canceled"] != $this->oldDataRecord['canceled']) { + if($this->dataRecord['canceled'] == 'y') { + $sql = "UPDATE sys_user SET active = '0' WHERE client_id = ?"; + $app->db->query($sql, $this->id); + } elseif($this->dataRecord['canceled'] == 'n') { + $sql = "UPDATE sys_user SET active = '1' WHERE client_id = ?"; + $app->db->query($sql, $this->id); + } + } parent::onAfterUpdate(); } diff --git a/interface/web/client/templates/client_circle_list.htm b/interface/web/client/templates/client_circle_list.htm index 56bce62d6c3b823587308506199607790bbd8eb6..2cfbdf36e38b87e1af5e919c825b70b5db8ecd5c 100644 --- a/interface/web/client/templates/client_circle_list.htm +++ b/interface/web/client/templates/client_circle_list.htm @@ -40,7 +40,7 @@ <td><a href="#" data-load-content="client/client_circle_edit.php?id={tmpl_var name='id'}">{tmpl_var name="circle_name"}</a></td> <td><a href="#" data-load-content="client/client_circle_edit.php?id={tmpl_var name='id'}">{tmpl_var name="description"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/client_circle_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/client_circle_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/client/templates/client_del.htm b/interface/web/client/templates/client_del.htm index e24ca768c2a94047f4ed7be8bfabdc7f8f534af0..5e7201ce5c31ace8d8a4dbb563108b37832b23cf 100644 --- a/interface/web/client/templates/client_del.htm +++ b/interface/web/client/templates/client_del.htm @@ -1,24 +1,32 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - <div id="OKMsg"> - <tmpl_if name='number_records'> - <tmpl_var name="delete_explanation">:<br /><br /> - <tmpl_loop name="records"> - <tmpl_var name="table">, - </tmpl_loop> - </tmpl_else> - <h3><tmpl_var name="confirm_client_delete_txt"></h3> - </tmpl_if> - </div> - - <div> <input type="checkbox" name="confirm" value="yes" /> <b><tmpl_var name="confirm_action_txt"></b></div> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="left"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_del.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file +<div class='page-header'><h1><tmpl_var name="list_head_txt"></h1></div> +<tmpl_if name='number_records'> + <tmpl_var name="delete_explanation">:<br /><br /> + <div class="table-wrapper marginTop15"> + <table class="table"> + <thead class="dark form-group-sm"> + <tr> + <th class="tiny-col"><tmpl_var name="table_txt"></th> + <th class="tiny-col"><tmpl_var name="data_txt"></th> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr> + <td>{tmpl_var name="table"} ({tmpl_var name="count"})</td> + <td>{tmpl_var name="data"}</td> + </tr> + </tmpl_loop> + </tbody> + </table> + </div> +</tmpl_else> + <h3><tmpl_var name="confirm_client_delete_txt"></h3> +</tmpl_if> + +<div> <input type="checkbox" name="confirm" value="yes" /> <b><tmpl_var name="confirm_action_txt"></b></div> + +<input type="hidden" name="id" value="{tmpl_var name='id'}"> +<div class="clear"><div class="left"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_del.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button> +</div></div> diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm index 86393c8e9d3a92fd5123629142d6746989dce6c8..835b2644003257b9538d7c357d11ed30309f390a 100644 --- a/interface/web/client/templates/client_edit_address.htm +++ b/interface/web/client/templates/client_edit_address.htm @@ -1,13 +1,7 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Address</legend> - <div class="form-group"> + <div class="form-group"> <label for="company_name" class="col-sm-3 control-label">{tmpl_var name='company_name_txt'}</label> - <div class="col-sm-9"><input type="text" name="company_name" id="company_name" value="{tmpl_var name='company_name'}" class="form-control" /></div></div> + <div class="col-sm-9"><input type="text" name="company_name" id="company_name" value="{tmpl_var name='company_name'}" class="form-control" /></div> + </div> <div class="form-group"> <label for="gender" class="col-sm-3 control-label">{tmpl_var name='gender_txt'}</label> <div class="col-sm-9"><select name="gender" id="gender" class="form-control"> @@ -152,7 +146,7 @@ </div> </div> {tmpl_var name='required_fields_txt'} - + <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index c8cf74e328b2b03aea5fcbc679d584c582a75f25..db0b3708045e8a9bc03d522aa83c19b5fd256e65 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -1,14 +1,7 @@ -<tmpl_if name="list_head_txt"> -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -</tmpl_if> -<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if> - <div class="panel panel_client"> - + <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name="Limits"}</legend> + <fieldset class="inlineLabels"> <div class="form-group"> <label for="template_master" class="col-sm-3 control-label">{tmpl_var name='template_master_txt'}</label> <div class="col-sm-9"><select name="template_master" id="template_master" class="form-control"> @@ -368,7 +361,7 @@ <label for="limit_cron_frequency" class="col-sm-3 control-label">{tmpl_var name='limit_cron_frequency_txt'}</label> <div class="col-sm-9"><input type="text" name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" class="form-control" /></div> </div> - + </div> </div> </div> diff --git a/interface/web/client/templates/client_message.htm b/interface/web/client/templates/client_message.htm index 7e1b1da70183a46853d19ccf9caa98ffd075f437..b546181fa71a5a77edee9ae936cafb80e4e31756 100644 --- a/interface/web/client/templates/client_message.htm +++ b/interface/web/client/templates/client_message.htm @@ -1,10 +1,6 @@ <div class='page-header'> <h1><tmpl_var name="page_head_txt"></h1> </div> -<p><tmpl_var name="form_desc_txt"></p> - - - <legend>{tmpl_var name='form_legend_txt'}</legend> <tmpl_if name="okmsg"> <div id="OKMsg"><p><tmpl_var name="okmsg"></p></div> </tmpl_if> @@ -32,4 +28,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_send_txt'}" data-submit-form="pageForm" data-form-action="client/client_message.php">{tmpl_var name='btn_send_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/client/templates/client_message_template_list.htm b/interface/web/client/templates/client_message_template_list.htm index d83a9f7dec1ce714a3da33ea4c815e5c2a520ed5..2f586c1ed767bb5555b62070528633b47f8d0831 100644 --- a/interface/web/client/templates/client_message_template_list.htm +++ b/interface/web/client/templates/client_message_template_list.htm @@ -32,7 +32,7 @@ <td><a href="#" data-load-content="client/message_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="template_name"}</a></td> <td class="text-right"> <div class="buttons icons16"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/message_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/message_template_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </div> </td> </tr> diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm index df5501602b4aed8fc9e781e0337c1324b5c4e22f..a3e4b63e9aa99454d5e107a2a249022712498134 100644 --- a/interface/web/client/templates/client_template_edit_limits.htm +++ b/interface/web/client/templates/client_template_edit_limits.htm @@ -1,11 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>{tmpl_var name="Limits"}</legend> - <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> <div class="panel panel-default"> <div class="panel-heading" role="tab" id="headingWeb"> diff --git a/interface/web/client/templates/client_template_edit_template.htm b/interface/web/client/templates/client_template_edit_template.htm index e06d07792d9b5e45a7271378a485a71430f98de9..181dedd20f019b8e26f86d9790099d654f8c89f2 100644 --- a/interface/web/client/templates/client_template_edit_template.htm +++ b/interface/web/client/templates/client_template_edit_template.htm @@ -1,12 +1,3 @@ -<tmpl_if name="list_head_txt"> -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -</tmpl_if> -<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if> - - - <legend>Template</legend> <div class="form-group"> <label for="template_type" class="col-sm-3 control-label">{tmpl_var name='template_type_txt'}</label> <div class="col-sm-9"><select name="template_type" id="template_type" class="form-control"> diff --git a/interface/web/client/templates/client_template_list.htm b/interface/web/client/templates/client_template_list.htm index 37564f7197c2f6c01749cd6ee8b00f61da0c7b0c..887072b438623e679ceb65b9c318006a85c6c84a 100644 --- a/interface/web/client/templates/client_template_list.htm +++ b/interface/web/client/templates/client_template_list.htm @@ -40,7 +40,7 @@ <td><a href="#" data-load-content="client/client_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="template_type"}</a></td> <td><a href="#" data-load-content="client/client_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="template_name"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/client_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/client_template_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/client/templates/clients_list.htm b/interface/web/client/templates/clients_list.htm index 7a538eba22a212a38567418bae3d40970a862854..2ffd7dfa78acd49aa24bc82b8d2fe38fdfcdef38 100644 --- a/interface/web/client/templates/clients_list.htm +++ b/interface/web/client/templates/clients_list.htm @@ -68,7 +68,7 @@ <tmpl_elseif name="is_reseller"> <a class="btn btn-default formbutton-success formbutton-narrow" data-load-content="login/login_as.php?cid={tmpl_var name='id'}"><span class="icon icon-loginas"></span></a> </tmpl_if> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/client_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/client_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/client/templates/domain_list.htm b/interface/web/client/templates/domain_list.htm index 8dda689cba7e0b728eb475da8c4d75ca32afc109..818812ddd91b951cb93d6a7381fcdc77914bade7 100644 --- a/interface/web/client/templates/domain_list.htm +++ b/interface/web/client/templates/domain_list.htm @@ -32,7 +32,7 @@ <td><a href="#" data-load-content="client/domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td> <td><a href="#" data-load-content="client/domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/client/templates/message_template.htm b/interface/web/client/templates/message_template.htm index 7fd63f3448c4aadf61e8b1f1471b91e343b35194..4078d36ac89617cbe9eedb1a2d6fc9fb63d34196 100644 --- a/interface/web/client/templates/message_template.htm +++ b/interface/web/client/templates/message_template.htm @@ -1,12 +1,6 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="panel panel_invoice_message_template"> <div class="pnl_formsarea"> - <legend>Settings</legend> <div class="form-group"> <label for="template_type" class="col-sm-3 control-label">{tmpl_var name='template_type_txt'}</label> <div class="col-sm-9"><select name="template_type" id="template_type" class="form-control"> diff --git a/interface/web/client/templates/message_template_list.htm b/interface/web/client/templates/message_template_list.htm index 5efaf5f23e9d21dfccf7092496ffbabc36fcfe50..71011634f9a397167a9ff16b3d2701559b41bc8a 100644 --- a/interface/web/client/templates/message_template_list.htm +++ b/interface/web/client/templates/message_template_list.htm @@ -28,7 +28,7 @@ <td><a href="#" data-load-content="billing/invoice_message_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="template_name"}</a></td> <td class="text-right"> <div class="buttons icons16"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('billing/invoice_message_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('billing/invoice_message_template_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </div> </td> </tr> diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm index 69b6552938673ecff837ca53c1c99c3776a15646..eb2760dc3d6aeac4228df02bd36cb64bf5b3d6fc 100644 --- a/interface/web/client/templates/reseller_edit_address.htm +++ b/interface/web/client/templates/reseller_edit_address.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Address</legend> <div class="form-group"> <label for="company_name" class="col-sm-3 control-label">{tmpl_var name='company_name_txt'}</label> <div class="col-sm-9"><input type="text" name="company_name" id="company_name" value="{tmpl_var name='company_name'}" class="form-control" /></div></div> diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm index 7a4dc090411d77d6f9daa9307b4a8c0711737852..c0a25939dfaa91a2abddf4af56d015e833b1f294 100644 --- a/interface/web/client/templates/reseller_edit_limits.htm +++ b/interface/web/client/templates/reseller_edit_limits.htm @@ -1,14 +1,6 @@ -<tmpl_if name="list_head_txt"> -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -</tmpl_if> -<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if> - <div class="panel panel_client"> <div class="pnl_formsarea"> - <legend>{tmpl_var name="Limits"}</legend> <tmpl_if name="is_admin"> <div class="form-group"> <label for="template_master" class="col-sm-3 control-label">{tmpl_var name='template_master_txt'}</label> diff --git a/interface/web/client/templates/resellers_list.htm b/interface/web/client/templates/resellers_list.htm index 8edfa08546d28bf66201ffde13a3311e7acec7cf..1ccaffa07e12c7639b78f387b978b77c6e1e5a19 100644 --- a/interface/web/client/templates/resellers_list.htm +++ b/interface/web/client/templates/resellers_list.htm @@ -50,7 +50,7 @@ <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}"><span class="flags flag-{tmpl_var name="countryiso"}">{tmpl_var name="country"}</span></a></td> <td class="text-right"> <a class="btn btn-default formbutton-success formbutton-narrow" data-load-content="login/login_as.php?cid={tmpl_var name='id'}"><span class="icon icon-loginas"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/reseller_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('client/reseller_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index 5426ba9572cfb085de0891635b2243fc8218e86d..005c364aa5cd644dd04ca87482f54c1b7e846e80 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -149,7 +149,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { $info[] = array('info_msg' => '<p>There is a new Version of ISPConfig 3 available!</p>' . '<p>This Version: <b>' . $v1 . '</b></p>' . '<p>New Version : <b>' . $v2 . '</b></p>' . - '<p><a href="http://www.ispconfig.org/ispconfig-3/download" target="ISPC">See more...</a></p>'); + '<p><a href="https://www.ispconfig.org/ispconfig-3/download" target="ISPC">See more...</a></p>'); } } diff --git a/interface/web/dashboard/dashlets/databasequota.php b/interface/web/dashboard/dashlets/databasequota.php index 6439cdee1269e2c2d2e4db64eb8d3003a1669f81..d8c131702f043fff173249df1ce222c22a59f71f 100644 --- a/interface/web/dashboard/dashlets/databasequota.php +++ b/interface/web/dashboard/dashlets/databasequota.php @@ -7,6 +7,9 @@ class dashlet_databasequota { //* Loading Template $app->uses('tpl,quota_lib'); + if (!$app->auth->verify_module_permissions('sites')) { + return; + } $tpl = new tpl; $tpl->newTemplate("dashlets/templates/databasequota.htm"); diff --git a/interface/web/dashboard/dashlets/mailquota.php b/interface/web/dashboard/dashlets/mailquota.php index 4629d6a4630c23bea7fe6d71a3846ca76667da6d..a9434e58eaac846087c77738d9d131ebe4d51abe 100644 --- a/interface/web/dashboard/dashlets/mailquota.php +++ b/interface/web/dashboard/dashlets/mailquota.php @@ -21,13 +21,17 @@ class dashlet_mailquota { $has_mailquota = false; if(is_array($emails) && !empty($emails)){ + foreach($emails as &$email) { + $email['email'] = $app->functions->idn_decode($email['email']); + } + unset($email); // email username is quoted in quota.lib already, so no htmlentities here to prevent double encoding //$emails = $app->functions->htmlentities($emails); $tpl->setloop('mailquota', $emails); $has_mailquota = isset($emails[0]['used']); } $tpl->setVar('has_mailquota', $has_mailquota); - + return $tpl->grab(); } diff --git a/interface/web/dashboard/dashlets/modules.php b/interface/web/dashboard/dashlets/modules.php index 5c1f15149da70a328f922ab18a79bb3f2bab9a57..f5f96a82acc8e9e462c07d284fc67874bdcc509d 100644 --- a/interface/web/dashboard/dashlets/modules.php +++ b/interface/web/dashboard/dashlets/modules.php @@ -40,6 +40,11 @@ class dashlet_modules { $web_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE web_server = 1 AND active = 1"); if($web_servers['cnt'] == 0) continue; } + + if($mt == 'vm'){ + $vserver_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE vserver_server = 1 AND active = 1"); + if($vserver_servers['cnt'] == 0) continue; + } $module_title = $app->lng($module['title']); if(function_exists('mb_strlen')) { diff --git a/interface/web/dashboard/dashlets/quota.php b/interface/web/dashboard/dashlets/quota.php index 6ff975b6235f368a14597ac72d5d461ff19d83f2..3fd5adbb85c5843bd51646304cb071f54f1eda33 100644 --- a/interface/web/dashboard/dashlets/quota.php +++ b/interface/web/dashboard/dashlets/quota.php @@ -7,6 +7,9 @@ class dashlet_quota { //* Loading Template $app->uses('tpl,quota_lib'); + if (!$app->auth->verify_module_permissions('sites')) { + return; + } $tpl = new tpl; $tpl->newTemplate("dashlets/templates/quota.htm"); @@ -21,6 +24,11 @@ class dashlet_quota { $has_quota = false; if(is_array($sites) && !empty($sites)){ + foreach($sites as &$site) { + $site['domain'] = $app->functions->idn_decode($site['domain']); + } + unset($site); + $sites = $app->functions->htmlentities($sites); $tpl->setloop('quota', $sites); $has_quota = isset($sites[0]['used']); diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm index 5ad01d6865a662a5fc9660f7853337da86742228..3573ef1ab9aea76697e574ee0b7cb3f5d7289880 100644 --- a/interface/web/dashboard/dashlets/templates/mailquota.htm +++ b/interface/web/dashboard/dashlets/templates/mailquota.htm @@ -12,7 +12,7 @@ <tbody> <tmpl_loop name='mailquota'> <tr> - <td>{tmpl_var name='email'}</td> + <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='mailuser_id'}" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{tmpl_var name='email'}">{tmpl_var name='email'}</a></td> <td>{tmpl_var name='name'}</td> <td>{tmpl_var name='used'}</td> <td>{tmpl_var name='quota'}</td> diff --git a/interface/web/dashboard/lib/lang/ar_dashlet_limits.lng b/interface/web/dashboard/lib/lang/ar_dashlet_limits.lng index 6ec82aad5bd18a38c636383f0f415a0b172c5c96..b15261dfc421c88c018bc81c790b14815ad08322 100644 --- a/interface/web/dashboard/lib/lang/ar_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/ar_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = 'of'; -$wb['unlimited_txt'] = 'Unlimited'; $wb['limit_maildomain_txt'] = 'Number of email domains'; $wb['limit_mailbox_txt'] = 'Number of mailboxes'; $wb['limit_mailalias_txt'] = 'Number of email aliases'; diff --git a/interface/web/dashboard/lib/lang/bg_dashlet_limits.lng b/interface/web/dashboard/lib/lang/bg_dashlet_limits.lng index dad751aaf08f94d1233419e933c66db400597314..961e6825df2fdb495e131a1258d4086148e72828 100644 --- a/interface/web/dashboard/lib/lang/bg_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/bg_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Ðкаунт ограничениÑ'; $wb['of_txt'] = 'на'; -$wb['unlimited_txt'] = 'Ðеограничен'; $wb['limit_maildomain_txt'] = 'Брой на email домейни'; $wb['limit_mailbox_txt'] = 'Брой на пощенÑките кутии'; $wb['limit_mailalias_txt'] = 'Брой на email пÑевдоними'; diff --git a/interface/web/dashboard/lib/lang/br.lng b/interface/web/dashboard/lib/lang/br.lng index 05935493bb7e36cc8cb058bd6ed6aad10d7a119c..4ad7fc9c3ccf392b622e73010820e78be60b3b06 100644 --- a/interface/web/dashboard/lib/lang/br.lng +++ b/interface/web/dashboard/lib/lang/br.lng @@ -1,4 +1,4 @@ <?php $wb['welcome_user_txt'] = 'Bem-vindo %s'; -$wb['available_modules_txt'] = 'Módulos DisponÃveis'; +$wb['available_modules_txt'] = 'Módulos disponÃveis'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_customer.lng b/interface/web/dashboard/lib/lang/br_dashlet_customer.lng index 5e73e41ff9663e178d3d0e8039c66e4e39972eb0..8c110cc29b12d16bd000349438e7375a71e6abbc 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_customer.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_customer.lng @@ -1,4 +1,4 @@ <?php -$wb['customerdata_txt'] = 'Meus Dados'; +$wb['customerdata_txt'] = 'Meus dados'; $wb['edit_txt'] = 'Editar'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng index de92eef6bf687a32dd45a608cc96ea3617c609ea..9279d2230a2172ce862b52c28228f6dc136e773e 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng @@ -1,6 +1,6 @@ <?php -$wb['databasequota_txt'] = 'Cota para banco de dados'; -$wb['database_txt'] = 'Nome do banco de dados'; +$wb['databasequota_txt'] = 'Cota do banco de dados'; +$wb['database_txt'] = 'Banco de dados'; $wb['used_txt'] = 'Espaço utilizado'; $wb['quota_txt'] = 'Cota'; $wb['no_database_accounts_txt'] = 'Nenhum banco de dados encontrado.'; diff --git a/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng index 413177c83dac419ecc70a0084ae8d6598f15b93d..1ac4ee2fae26549856762b1cc321d77b5946cb8d 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng @@ -1,4 +1,4 @@ <?php -$wb['invoice_client_settings_txt'] = 'Configuração de Faturas do Cliente'; +$wb['invoice_client_settings_txt'] = 'Configurações de fatura de clientes'; $wb['edit_txt'] = 'Editar'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng index 2a5a0d9bcc7df4147c21020c099247ca2354203e..545c6994a620a9a273e6ad53477d2cf67dc5f50c 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng @@ -1,18 +1,18 @@ <?php $wb['invoices_txt'] = 'Faturas'; -$wb['invoice_no_txt'] = 'No. da Fatura'; +$wb['invoice_no_txt'] = 'No. da fatura'; $wb['amount_txt'] = 'Quantidade'; $wb['date_txt'] = 'Data'; $wb['invoice_status_txt'] = 'Estado'; $wb['no_invoices_txt'] = 'Nenhuma fatura disponÃvel.'; $wb['paid_txt'] = 'Pago'; -$wb['unpaid_txt'] = 'Aberto'; +$wb['unpaid_txt'] = 'A pagar'; $wb['paynow_txt'] = 'pagar agora'; $wb['proforma_txt'] = 'Proforma'; $wb['refunded_txt'] = 'Devolvido'; -$wb['not_refunded_txt'] = 'Sem devolução'; +$wb['not_refunded_txt'] = 'Não reembolsado'; $wb['invoice_type_invoice_txt'] = 'Fatura'; $wb['invoice_type_proforma_txt'] = 'Proforma'; -$wb['invoice_type_refund_txt'] = 'Devolver'; +$wb['invoice_type_refund_txt'] = 'Reembolso'; $wb['invoice_type_reminder_txt'] = 'Lembrar'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_limits.lng b/interface/web/dashboard/lib/lang/br_dashlet_limits.lng index 04c59b883528a37f97fd2530a031b1aa70430a99..739c7e44454b8c08e9f1de699880a44b965ee920 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_limits.lng @@ -1,34 +1,33 @@ <?php -$wb['limits_txt'] = 'Limites das contas'; +$wb['limits_txt'] = 'Limites de contas'; $wb['of_txt'] = 'de'; -$wb['unlimited_txt'] = 'ilimitado'; -$wb['limit_maildomain_txt'] = 'Limite de domÃnios de e-mail'; -$wb['limit_mailbox_txt'] = 'Limite de contas de e-mail'; -$wb['limit_mailalias_txt'] = 'Limite de apelidos de domÃnio de e-mail'; -$wb['limit_mailaliasdomain_txt'] = 'Limite de subdomÃnios para e-mail'; -$wb['limit_mailforward_txt'] = 'Limite de redirecionamentos de e-mail'; -$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo'; -$wb['limit_mailrouting_txt'] = 'Limite de transporte de e-mail'; -$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail'; -$wb['limit_fetchmail_txt'] = 'Limite de contas de busca'; -$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros anti-spam lista branca/negra'; -$wb['limit_spamfilter_user_txt'] = 'Limite de usuários para filtros anti-spam'; -$wb['limit_spamfilter_policy_txt'] = 'Limite de polÃticas anti-spam'; -$wb['limit_cron_txt'] = 'Limite de tarefas no cron'; -$wb['limit_web_domain_txt'] = 'Limite de domÃnios de site'; -$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos de domÃnios de site'; -$wb['limit_web_subdomain_txt'] = 'Limite de subdomÃnios de site'; -$wb['limit_ftp_user_txt'] = 'Limite de contas ftp'; -$wb['limit_dns_zone_txt'] = 'Limite de zonas dns primárias'; -$wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias'; -$wb['limit_dns_record_txt'] = 'Limite de registros dns'; -$wb['limit_shell_user_txt'] = 'Limite de usuários shell'; -$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav'; -$wb['limit_client_txt'] = 'Limite de clientes'; -$wb['limit_database_txt'] = 'Limite de banco de dados'; -$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails'; -$wb['limit_domain_txt'] = 'Limite de domÃnios'; -$wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; -$wb['limit_web_quota_txt'] = 'Assigned web quota'; -$wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['limit_maildomain_txt'] = 'Número de domÃnios de e-mail'; +$wb['limit_mailmailinglist_txt'] = 'Número de listas de e-mail'; +$wb['limit_mailbox_txt'] = 'Número de contas de e-mail'; +$wb['limit_mailalias_txt'] = 'Número de alias de e-mail'; +$wb['limit_mailaliasdomain_txt'] = 'Número de alias de domÃnios de e-mail'; +$wb['limit_mailforward_txt'] = 'Número de encaminhamentos de e-mail'; +$wb['limit_mailcatchall_txt'] = 'Número de contas cata-tudo'; +$wb['limit_mailrouting_txt'] = 'Número de rotas de e-mail'; +$wb['limit_mailfilter_txt'] = 'Número de filtros de e-mail'; +$wb['limit_fetchmail_txt'] = 'Número de contas de busca'; +$wb['limit_spamfilter_wblist_txt'] = 'Número de filtros anti-spam "lista branca/negra"'; +$wb['limit_spamfilter_user_txt'] = 'Número de filtros anti-spam'; +$wb['limit_spamfilter_policy_txt'] = 'Número de polÃticas anti-spam'; +$wb['limit_cron_txt'] = 'Número de tarefas no cron'; +$wb['limit_web_domain_txt'] = 'Número de domÃnios de site'; +$wb['limit_web_aliasdomain_txt'] = 'Número de alias de domÃnios de site'; +$wb['limit_web_subdomain_txt'] = 'Número de subdomÃnios de site'; +$wb['limit_ftp_user_txt'] = 'Número de usuários ftp'; +$wb['limit_dns_zone_txt'] = 'Número de zonas dns'; +$wb['limit_dns_slave_zone_txt'] = 'Número de zonas dns secundárias'; +$wb['limit_dns_record_txt'] = 'Número de registros dns'; +$wb['limit_shell_user_txt'] = 'Número de usuários do shell'; +$wb['limit_webdav_user_txt'] = 'Número de usuários webdav'; +$wb['limit_client_txt'] = 'Número de clientes'; +$wb['limit_database_txt'] = 'Número de banco de dados'; +$wb['limit_domain_txt'] = 'Número de domÃnios'; +$wb['limit_mailquota_txt'] = 'Cotas atribuÃdas para contas de e-mail'; +$wb['limit_web_quota_txt'] = 'Cotas atribuÃdas para sites'; +$wb['limit_database_quota_txt'] = 'Cotas atribuÃdas para banco de dados'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng index 8aa300dffa5da937a810cdd87ab00e98c5889188..d164a35661c264480757acaf6ae003623494bad5 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng @@ -1,6 +1,6 @@ <?php -$wb['mailquota_txt'] = 'Cota para contas de e-mail'; -$wb['email_txt'] = 'e-mail'; +$wb['mailquota_txt'] = 'Cota de contas de e-mail'; +$wb['email_txt'] = 'Endereço de e-mail'; $wb['name_txt'] = 'Nome'; $wb['used_txt'] = 'Espaço utilizado'; $wb['quota_txt'] = 'Cota'; diff --git a/interface/web/dashboard/lib/lang/br_dashlet_modules.lng b/interface/web/dashboard/lib/lang/br_dashlet_modules.lng index 80af8858209abd67aca0c452ed4108b5c51a8ac6..905d3d600723704273e3dc7a47107befcda6f59f 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_modules.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_modules.lng @@ -1,4 +1,4 @@ <?php -$wb['available_modules_txt'] = 'Módulos DisponÃveis'; +$wb['available_modules_txt'] = 'Módulos disponÃveis'; $wb['go_to_txt'] = 'Ir para'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_products.lng b/interface/web/dashboard/lib/lang/br_dashlet_products.lng index 129b14480102f2bd453a873ba2a0844df7e3ba54..c750052ad7182178dbaa61c25ddeb8cced63676c 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_products.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_products.lng @@ -1,8 +1,8 @@ <?php -$wb['products_txt'] = 'Meus Produtos'; +$wb['products_txt'] = 'Meus produtos'; $wb['name_txt'] = 'Nome'; $wb['price_txt'] = 'Preço'; -$wb['next_payment_date_txt'] = 'Próxima Fatura'; +$wb['next_payment_date_txt'] = 'Próxima fatura'; $wb['no_products_txt'] = 'Nenhum produto encontrado.'; $wb['edit_txt'] = 'Editar'; $wb['cancellation_date_txt'] = 'Cancelado por'; diff --git a/interface/web/dashboard/lib/lang/br_dashlet_quota.lng b/interface/web/dashboard/lib/lang/br_dashlet_quota.lng index 080e45d4e73a066134fe09397949b16a39ab0482..589e3dca3ec8e245430c195e8b1fcce96cafa877 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_quota.lng @@ -1,8 +1,8 @@ <?php -$wb['quota_txt'] = 'Cota para sites'; +$wb['quota_txt'] = 'Cota de site (disco)'; $wb['domain_txt'] = 'DomÃnio/Site'; $wb['used_txt'] = 'Espaço utilizado'; -$wb['hard_txt'] = 'Limite'; +$wb['hard_txt'] = 'Limite para bloqueio'; $wb['soft_txt'] = 'Limite para alerta'; $wb['no_sites_txt'] = 'Nenhum site encontrado.'; ?> diff --git a/interface/web/dashboard/lib/lang/br_dashlet_shop.lng b/interface/web/dashboard/lib/lang/br_dashlet_shop.lng index 48847abff4a7135ca9290eb76a094b2b8eabdc33..9fd37d5250f046f988c48c2accbb51a867ea993b 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_shop.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_shop.lng @@ -1,8 +1,8 @@ <?php -$wb['shop_txt'] = 'Pedido'; +$wb['shop_txt'] = 'Ordem'; $wb['name_txt'] = 'Nome'; $wb['price_txt'] = 'Preço'; -$wb['setup_fee_txt'] = 'Taxa Inicial'; +$wb['setup_fee_txt'] = 'Taxa criada'; $wb['no_products_txt'] = 'Nenhum produto encontrado.'; -$wb['order_txt'] = 'Pedir'; +$wb['order_txt'] = 'Ordem'; ?> diff --git a/interface/web/dashboard/lib/lang/ca_dashlet_limits.lng b/interface/web/dashboard/lib/lang/ca_dashlet_limits.lng index f482b47e38b0bab17dd6d0c0d2b4c169c8d9b904..ae78112c858cf3cd53484e95400e0398b3f30b2f 100644 --- a/interface/web/dashboard/lib/lang/ca_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/ca_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Limites du compte'; $wb['of_txt'] = 'sur'; -$wb['unlimited_txt'] = 'Illimité'; $wb['limit_maildomain_txt'] = 'Nombre de domaines courriel'; $wb['limit_mailmailinglist_txt'] = 'Nombre de mailing lists'; $wb['limit_mailbox_txt'] = 'Nombre de boites courriel'; diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng index 9666ed2b084e918617cee00c4a8d3aa3d39e64df..ab093825c60f1890b862021d2977528c7aa3878d 100644 --- a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng +++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng @@ -3,7 +3,7 @@ $wb['invoices_txt'] = 'Invoices'; $wb['invoice_no_txt'] = 'Invoice No.'; $wb['amount_txt'] = 'Amount'; $wb['date_txt'] = 'Datum'; -$wb['invoice_status_txt'] = 'Status'; +$wb['invoice_status_txt'] = 'Stav'; $wb['no_invoices_txt'] = 'No Invoices available.'; $wb['paid_txt'] = 'Paid'; $wb['unpaid_txt'] = 'Unpaid'; diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng index d322823e6bab0a400bd5e0d9ac06b6090bb98156..d93dd87761b0a2dc300adf984389dc76efe8cc09 100644 --- a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php -$wb['limits_txt'] = 'Limity úÄtu'; +$wb['limits_txt'] = 'Limity úÄtů'; $wb['of_txt'] = 'z'; -$wb['unlimited_txt'] = 'neomezeno'; $wb['limit_maildomain_txt'] = 'PoÄet e-mailových domén'; $wb['limit_mailbox_txt'] = 'PoÄet e-mailových schránek'; $wb['limit_mailalias_txt'] = 'PoÄet e-mailových pÅ™ezdÃvek'; @@ -28,7 +27,7 @@ $wb['limit_client_txt'] = 'PoÄet klientů'; $wb['limit_database_txt'] = 'PoÄet databázÃ'; $wb['limit_mailmailinglist_txt'] = 'PoÄet e-mailových konferencÃ'; $wb['limit_domain_txt'] = 'PoÄet domén'; -$wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; -$wb['limit_web_quota_txt'] = 'Assigned web quota'; -$wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['limit_mailquota_txt'] = 'PÅ™iÅ™azená e-mailová kvóta'; +$wb['limit_web_quota_txt'] = 'PÅ™iÅ™azená webová kvóta'; +$wb['limit_database_quota_txt'] = 'PÅ™iÅ™azená databázová kvóta'; ?> diff --git a/interface/web/dashboard/lib/lang/de_dashlet_limits.lng b/interface/web/dashboard/lib/lang/de_dashlet_limits.lng index 335c17ca85afd24f86e155de0dfe5743cf8f3490..22e87237d5d6b1716a253f285bf9b530b590dcba 100644 --- a/interface/web/dashboard/lib/lang/de_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/de_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Kontobeschränkungen'; $wb['of_txt'] = 'von'; -$wb['unlimited_txt'] = 'unlimitiert'; $wb['limit_maildomain_txt'] = 'Anzahl der E-Mail Domains'; $wb['limit_mailbox_txt'] = 'Anzahl der E-Mail Konten'; $wb['limit_mailalias_txt'] = 'Anzahl der E-Mail Aliase'; diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng b/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng index eb128750b2c84265319f5ccc71df3e8c318e16f5..402aa722f514f5486d454419bfe91768fdda74f8 100644 --- a/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Konto begrænsninger'; $wb['of_txt'] = 'af'; -$wb['unlimited_txt'] = 'Ubegrænset'; $wb['limit_maildomain_txt'] = 'Antal af e-mail domæner'; $wb['limit_mailmailinglist_txt'] = 'Antal af mail-lister'; $wb['limit_mailbox_txt'] = 'Antal af mail-bokse'; diff --git a/interface/web/dashboard/lib/lang/el_dashlet_limits.lng b/interface/web/dashboard/lib/lang/el_dashlet_limits.lng index dac3b556232f3a3199b4220f66e3c787590c9e64..f51c1da1b5cc87cf0f97c731acf8d3e85e304c41 100644 --- a/interface/web/dashboard/lib/lang/el_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/el_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'ÎŒÏια ΛογαÏιασμών'; $wb['of_txt'] = 'από'; -$wb['unlimited_txt'] = 'ΑπεÏιόÏιστα'; $wb['limit_maildomain_txt'] = 'ΑÏιθμός email domains'; $wb['limit_mailbox_txt'] = 'ΑÏιθμός θυÏίδων'; $wb['limit_mailalias_txt'] = 'ΑÏιθμός ψευδωνÏμων email'; diff --git a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng index 5d504c8e9b6e91dd62aa181fcd354781b5470567..d30977799f768537bd6723115f7caa1596287709 100644 --- a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = "Account limits"; $wb['of_txt'] = "of"; -$wb['unlimited_txt'] = "Unlimited"; $wb['limit_maildomain_txt'] = "Number of email domains"; $wb['limit_mailmailinglist_txt'] = "Number of mailing lists"; $wb['limit_mailbox_txt'] = "Number of mailboxes"; diff --git a/interface/web/dashboard/lib/lang/es.lng b/interface/web/dashboard/lib/lang/es.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_customer.lng b/interface/web/dashboard/lib/lang/es_dashlet_customer.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/es_dashlet_invoice_client_settings.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/es_dashlet_invoices.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_limits.lng b/interface/web/dashboard/lib/lang/es_dashlet_limits.lng old mode 100755 new mode 100644 index da6cd6b513fb9fa4f5f3ec258be6ac2ade7c95ab..d56d17c6615dbc071ca039ff7190e569d520370a --- a/interface/web/dashboard/lib/lang/es_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/es_dashlet_limits.lng @@ -27,7 +27,6 @@ $wb['limit_web_subdomain_txt'] = 'Cantidad de sub-dominios'; $wb['limit_webdav_user_txt'] = 'Cantidad de usuarios Webdav'; $wb['limits_txt'] = 'LÃmites de la cuenta'; $wb['of_txt'] = 'de'; -$wb['unlimited_txt'] = 'Ilimitado'; $wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; $wb['limit_web_quota_txt'] = 'Assigned web quota'; $wb['limit_database_quota_txt'] = 'Assigned database quota'; diff --git a/interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_modules.lng b/interface/web/dashboard/lib/lang/es_dashlet_modules.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_products.lng b/interface/web/dashboard/lib/lang/es_dashlet_products.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_quota.lng b/interface/web/dashboard/lib/lang/es_dashlet_quota.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/es_dashlet_shop.lng b/interface/web/dashboard/lib/lang/es_dashlet_shop.lng old mode 100755 new mode 100644 diff --git a/interface/web/dashboard/lib/lang/fi_dashlet_limits.lng b/interface/web/dashboard/lib/lang/fi_dashlet_limits.lng index 6ec82aad5bd18a38c636383f0f415a0b172c5c96..b15261dfc421c88c018bc81c790b14815ad08322 100644 --- a/interface/web/dashboard/lib/lang/fi_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/fi_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = 'of'; -$wb['unlimited_txt'] = 'Unlimited'; $wb['limit_maildomain_txt'] = 'Number of email domains'; $wb['limit_mailbox_txt'] = 'Number of mailboxes'; $wb['limit_mailalias_txt'] = 'Number of email aliases'; diff --git a/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng index 525249f6d44ce91a5c54d43448f593096ce43e27..fa5043ab85ac7fa31637f53e2c24eda50c83aace 100644 --- a/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Limites du compte'; $wb['of_txt'] = 'sur'; -$wb['unlimited_txt'] = 'Illimité'; $wb['limit_maildomain_txt'] = 'Nombre de domaines e-mail'; $wb['limit_mailmailinglist_txt'] = 'Nombre de liste de distribution'; $wb['limit_mailbox_txt'] = 'Nombre de boîtes aux lettres'; diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng index 1a3db42a24c7711caa7634567a94b92ccfb9a169..2aa1792f91559950cb35a9ab0ffe6cd24074ecde 100644 --- a/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'OgraniÄenja'; $wb['of_txt'] = 'od'; -$wb['unlimited_txt'] = 'neograniÄeno'; $wb['limit_maildomain_txt'] = 'Mail domene'; $wb['limit_mailbox_txt'] = 'Mailboxi'; $wb['limit_mailalias_txt'] = 'Mail aliasi'; diff --git a/interface/web/dashboard/lib/lang/hu_dashlet_limits.lng b/interface/web/dashboard/lib/lang/hu_dashlet_limits.lng index 13c5a4e45029a8c48a919ede5a071cfe2db3d8ab..76498eed86f896ebb972effc317e771f422c27b3 100644 --- a/interface/web/dashboard/lib/lang/hu_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/hu_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = '-'; -$wb['unlimited_txt'] = 'Korlátlan'; $wb['limit_maildomain_txt'] = 'Email domainek száma'; $wb['limit_mailbox_txt'] = 'Mailbox-ok száma'; $wb['limit_mailalias_txt'] = 'Email aliasok száma'; diff --git a/interface/web/dashboard/lib/lang/id_dashlet_limits.lng b/interface/web/dashboard/lib/lang/id_dashlet_limits.lng index 8079b742b790194010abaaa99426d1f4c88a1492..94a64e226f6090ac1e0beddab50ee4c2d7dc4ea6 100644 --- a/interface/web/dashboard/lib/lang/id_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/id_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Batasan Akun'; $wb['of_txt'] = 'dari'; -$wb['unlimited_txt'] = 'Tak terbatas'; $wb['limit_maildomain_txt'] = 'Jumlah domain email'; $wb['limit_mailbox_txt'] = 'Jumlah mailbox'; $wb['limit_mailalias_txt'] = 'Jumlah alias email'; diff --git a/interface/web/dashboard/lib/lang/it.lng b/interface/web/dashboard/lib/lang/it.lng index db8858aafd91a6b2f02237957262fc08a60d5d61..6a22e7cf5ebbdae3c20939eb333b65412a460a31 100644 --- a/interface/web/dashboard/lib/lang/it.lng +++ b/interface/web/dashboard/lib/lang/it.lng @@ -1,4 +1,5 @@ <?php $wb['welcome_user_txt'] = 'Buongiorno %s'; $wb['available_modules_txt'] = 'Moduli disponibili'; +$wb['last_login_ip'] = "Ultimo login %s da %s"; ?> diff --git a/interface/web/dashboard/lib/lang/it_dashlet_customer.lng b/interface/web/dashboard/lib/lang/it_dashlet_customer.lng index 4fe6cb0ef7db195cb03d4e73c5ba9b232a7d58bb..bb6c2c5a6d04aee882bf54ea1ceda24ef81ec242 100644 --- a/interface/web/dashboard/lib/lang/it_dashlet_customer.lng +++ b/interface/web/dashboard/lib/lang/it_dashlet_customer.lng @@ -1,4 +1,4 @@ <?php -$wb['customerdata_txt'] = 'My Data'; -$wb['edit_txt'] = 'Edit'; +$wb['customerdata_txt'] = 'I miei dati'; +$wb['edit_txt'] = 'Modifica'; ?> diff --git a/interface/web/dashboard/lib/lang/it_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/it_dashlet_databasequota.lng index bd2402dbf6c113dde8190fbbdec29490f948d725..61ab6d9b21a40b3959e1d3a798c72b7cbd01f113 100644 --- a/interface/web/dashboard/lib/lang/it_dashlet_databasequota.lng +++ b/interface/web/dashboard/lib/lang/it_dashlet_databasequota.lng @@ -1,7 +1,7 @@ <?php -$wb['databasequota_txt'] = 'Database Quota'; -$wb['database_txt'] = 'Database Name'; -$wb['used_txt'] = 'Used Space'; +$wb['databasequota_txt'] = 'Quota Database'; +$wb['database_txt'] = 'Nome Database'; +$wb['used_txt'] = 'Spazio Usato'; $wb['quota_txt'] = 'Quota'; -$wb['no_database_accounts_txt'] = 'No databases found.'; +$wb['no_database_accounts_txt'] = 'Nessun database trovato.'; ?> diff --git a/interface/web/dashboard/lib/lang/it_dashlet_limits.lng b/interface/web/dashboard/lib/lang/it_dashlet_limits.lng index a1a2000edf88d00db8e8ee9b876265901bed1821..895f619864720b0f8c3e695f9707be243343c66b 100644 --- a/interface/web/dashboard/lib/lang/it_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/it_dashlet_limits.lng @@ -1,15 +1,14 @@ <?php $wb['limits_txt'] = 'Sintesi account'; $wb['of_txt'] = 'su'; -$wb['unlimited_txt'] = 'illimitati'; -$wb['limit_maildomain_txt'] = 'Domini email'; -$wb['limit_mailbox_txt'] = 'Caselle email'; -$wb['limit_mailalias_txt'] = 'Alias di email'; +$wb['limit_maildomain_txt'] = 'Domini e-mail'; +$wb['limit_mailbox_txt'] = 'Caselle e-mail'; +$wb['limit_mailalias_txt'] = 'Alias di e-mail'; $wb['limit_mailaliasdomain_txt'] = 'Alias di domini'; -$wb['limit_mailforward_txt'] = 'Inoltro email'; -$wb['limit_mailcatchall_txt'] = 'Account catchall email'; -$wb['limit_mailrouting_txt'] = 'Instradamento email'; -$wb['limit_mailfilter_txt'] = 'Filtri email'; +$wb['limit_mailforward_txt'] = 'Inoltro e-mail'; +$wb['limit_mailcatchall_txt'] = 'Account catchall e-mail'; +$wb['limit_mailrouting_txt'] = 'Instradamento e-mail'; +$wb['limit_mailfilter_txt'] = 'Filtri e-mail'; $wb['limit_fetchmail_txt'] = 'Account fetchmail'; $wb['limit_spamfilter_wblist_txt'] = 'Filtri spamfilter white / blacklist'; $wb['limit_spamfilter_user_txt'] = 'Utenti spamfilter'; @@ -26,9 +25,9 @@ $wb['limit_shell_user_txt'] = 'Utenti Shell'; $wb['limit_webdav_user_txt'] = 'Utenti Webdav'; $wb['limit_client_txt'] = 'Client'; $wb['limit_database_txt'] = 'Database'; -$wb['limit_mailmailinglist_txt'] = 'Number of mailing lists'; -$wb['limit_domain_txt'] = 'Number of Domains'; -$wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; -$wb['limit_web_quota_txt'] = 'Assigned web quota'; -$wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['limit_mailmailinglist_txt'] = 'Numero mailing-list'; +$wb['limit_domain_txt'] = 'Numero domini'; +$wb['limit_mailquota_txt'] = 'Quota mailbox assegnata'; +$wb['limit_web_quota_txt'] = 'Quota web assegnata'; +$wb['limit_database_quota_txt'] = 'Quota database assegnata'; ?> diff --git a/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng index 1ab1e66658fbcab9841ac79a17eb76deb42e40a7..daaaa67f49c948861df6a5a049c2758212d6964e 100644 --- a/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng @@ -1,8 +1,8 @@ <?php -$wb['mailquota_txt'] = 'Mailbox Quota'; -$wb['email_txt'] = 'Email Address'; -$wb['name_txt'] = 'Name'; -$wb['used_txt'] = 'Used Space'; +$wb['mailquota_txt'] = 'Quota Mailbox'; +$wb['email_txt'] = 'Indirizzo e-mail'; +$wb['name_txt'] = 'Nome'; +$wb['used_txt'] = 'Spazio Usato'; $wb['quota_txt'] = 'Quota'; -$wb['no_email_accounts_txt'] = 'No email accounts found.'; +$wb['no_email_accounts_txt'] = 'Nessun account e-mail trovato.'; ?> diff --git a/interface/web/dashboard/lib/lang/it_dashlet_modules.lng b/interface/web/dashboard/lib/lang/it_dashlet_modules.lng index 69d5c079978cda232d9826df38b6bea5b946b266..a80b302092d013bde2177ddb5491912712d5c7a2 100644 --- a/interface/web/dashboard/lib/lang/it_dashlet_modules.lng +++ b/interface/web/dashboard/lib/lang/it_dashlet_modules.lng @@ -1,4 +1,4 @@ <?php $wb['available_modules_txt'] = 'Moduli disponibili'; -$wb['go_to_txt'] = 'Go to'; +$wb['go_to_txt'] = 'Vai a'; ?> diff --git a/interface/web/dashboard/lib/lang/it_dashlet_quota.lng b/interface/web/dashboard/lib/lang/it_dashlet_quota.lng index de7b5a893612c6c8abb9117bfe933d0eddd782af..63799d2ee3dfa48e7e0177ec64abafab2cd13f8c 100644 --- a/interface/web/dashboard/lib/lang/it_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/it_dashlet_quota.lng @@ -1,8 +1,8 @@ <?php -$wb['quota_txt'] = 'Website Harddisk Quota'; -$wb['domain_txt'] = 'Domain / Website'; -$wb['used_txt'] = 'Used space'; -$wb['hard_txt'] = 'Hard limit'; -$wb['soft_txt'] = 'Soft limit'; -$wb['no_sites_txt'] = 'No web sites found.'; +$wb['quota_txt'] = 'Quota disco domini'; +$wb['domain_txt'] = 'Dominio'; +$wb['used_txt'] = 'Spazio usato'; +$wb['hard_txt'] = 'Limite (forzato)'; +$wb['soft_txt'] = 'Limite'; +$wb['no_sites_txt'] = 'Nessun dominio trovato.'; ?> diff --git a/interface/web/dashboard/lib/lang/ja_dashlet_limits.lng b/interface/web/dashboard/lib/lang/ja_dashlet_limits.lng index 6ec82aad5bd18a38c636383f0f415a0b172c5c96..b15261dfc421c88c018bc81c790b14815ad08322 100644 --- a/interface/web/dashboard/lib/lang/ja_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/ja_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = 'of'; -$wb['unlimited_txt'] = 'Unlimited'; $wb['limit_maildomain_txt'] = 'Number of email domains'; $wb['limit_mailbox_txt'] = 'Number of mailboxes'; $wb['limit_mailalias_txt'] = 'Number of email aliases'; diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng b/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng index 10d1e8283713a6f5ed63e94116bce6baff1378fe..35a2b9e0bed100408e82431f38354e326ab3bebf 100644 --- a/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limieten'; $wb['of_txt'] = 'van'; -$wb['unlimited_txt'] = 'Ongelimiteerd'; $wb['limit_maildomain_txt'] = 'Aantal email domeinen'; $wb['limit_mailbox_txt'] = 'Aantal mailboxes'; $wb['limit_mailalias_txt'] = 'Aantal e-mail aliassen'; diff --git a/interface/web/dashboard/lib/lang/pl_dashlet_limits.lng b/interface/web/dashboard/lib/lang/pl_dashlet_limits.lng index 4d5b971469952abfef8425650c7f7ae1e511ab11..5513b32551afdce00566c74f02c63f85fce8ea1b 100644 --- a/interface/web/dashboard/lib/lang/pl_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/pl_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Limity konta'; $wb['of_txt'] = 'z'; -$wb['unlimited_txt'] = 'nielimitowane'; $wb['limit_maildomain_txt'] = 'Liczba domen e-mail'; $wb['limit_mailbox_txt'] = 'Liczba skrzynek pocztowych'; $wb['limit_mailalias_txt'] = 'Liczba aliasów e-mail'; diff --git a/interface/web/dashboard/lib/lang/pt_dashlet_limits.lng b/interface/web/dashboard/lib/lang/pt_dashlet_limits.lng index 6ec82aad5bd18a38c636383f0f415a0b172c5c96..b15261dfc421c88c018bc81c790b14815ad08322 100644 --- a/interface/web/dashboard/lib/lang/pt_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/pt_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = 'of'; -$wb['unlimited_txt'] = 'Unlimited'; $wb['limit_maildomain_txt'] = 'Number of email domains'; $wb['limit_mailbox_txt'] = 'Number of mailboxes'; $wb['limit_mailalias_txt'] = 'Number of email aliases'; diff --git a/interface/web/dashboard/lib/lang/ro_dashlet_limits.lng b/interface/web/dashboard/lib/lang/ro_dashlet_limits.lng index 6ec82aad5bd18a38c636383f0f415a0b172c5c96..b15261dfc421c88c018bc81c790b14815ad08322 100644 --- a/interface/web/dashboard/lib/lang/ro_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/ro_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = 'of'; -$wb['unlimited_txt'] = 'Unlimited'; $wb['limit_maildomain_txt'] = 'Number of email domains'; $wb['limit_mailbox_txt'] = 'Number of mailboxes'; $wb['limit_mailalias_txt'] = 'Number of email aliases'; diff --git a/interface/web/dashboard/lib/lang/ru_dashlet_limits.lng b/interface/web/dashboard/lib/lang/ru_dashlet_limits.lng index 19295b65e378928825bfe97a34d7338862d7f2c7..9e77f43d8d115a4b792ce723d1f5f474d186eb57 100644 --- a/interface/web/dashboard/lib/lang/ru_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/ru_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Лимиты учётной запиÑи'; $wb['of_txt'] = 'из'; -$wb['unlimited_txt'] = 'Безлимитный'; $wb['limit_maildomain_txt'] = 'КоличеÑтво почтовых аккаунтов'; $wb['limit_mailbox_txt'] = 'КоличеÑтво почтовых Ñщиков'; $wb['limit_mailalias_txt'] = 'КоличеÑтво алиаÑов почты'; diff --git a/interface/web/dashboard/lib/lang/se_dashlet_limits.lng b/interface/web/dashboard/lib/lang/se_dashlet_limits.lng index d1f38b1b0deb8bc41d5e9078f1022a16536e076c..f02f83bffd4133794f554b99eb2c8def0e210205 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Kontogränser'; $wb['of_txt'] = 'av'; -$wb['unlimited_txt'] = 'Obegränsat'; $wb['limit_maildomain_txt'] = 'Antal epostdomäner'; $wb['limit_mailbox_txt'] = 'Antal epostkonton'; $wb['limit_mailalias_txt'] = 'Antal epostalias'; diff --git a/interface/web/dashboard/lib/lang/sk_dashlet_limits.lng b/interface/web/dashboard/lib/lang/sk_dashlet_limits.lng index 6ec82aad5bd18a38c636383f0f415a0b172c5c96..b15261dfc421c88c018bc81c790b14815ad08322 100644 --- a/interface/web/dashboard/lib/lang/sk_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/sk_dashlet_limits.lng @@ -1,7 +1,6 @@ <?php $wb['limits_txt'] = 'Account limits'; $wb['of_txt'] = 'of'; -$wb['unlimited_txt'] = 'Unlimited'; $wb['limit_maildomain_txt'] = 'Number of email domains'; $wb['limit_mailbox_txt'] = 'Number of mailboxes'; $wb['limit_mailalias_txt'] = 'Number of email aliases'; diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng b/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng index 4fe6cb0ef7db195cb03d4e73c5ba9b232a7d58bb..4902a83a09b162257e8718cfa31473b937c0f0ea 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng @@ -1,4 +1,4 @@ <?php -$wb['customerdata_txt'] = 'My Data'; -$wb['edit_txt'] = 'Edit'; +$wb['customerdata_txt'] = 'Bilgilerim'; +$wb['edit_txt'] = 'Düzenle'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng index bd2402dbf6c113dde8190fbbdec29490f948d725..d8e8dfb89a4d0016ee34b3e50ecdb3b930b51bb1 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng @@ -1,7 +1,7 @@ <?php -$wb['databasequota_txt'] = 'Database Quota'; -$wb['database_txt'] = 'Database Name'; -$wb['used_txt'] = 'Used Space'; -$wb['quota_txt'] = 'Quota'; -$wb['no_database_accounts_txt'] = 'No databases found.'; +$wb['databasequota_txt'] = 'Veritabanı Kotası'; +$wb['database_txt'] = 'Veritabanı Adı'; +$wb['used_txt'] = 'Kullanılan Alan'; +$wb['quota_txt'] = 'Kota'; +$wb['no_database_accounts_txt'] = 'Henüz bir veritabanı yok.'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng b/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng index e41c374cde792db1d7b906f986f7ba7e0a215ef8..7324cb840da45468a1243fc5e5acfa0311be0aaf 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng @@ -1,7 +1,7 @@ <?php -$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the current ISPConfig Manual.'; -$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.'; -$wb['hide_btn_txt'] = 'Hide'; -$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual'; -$wb['more_btn_txt'] = 'More'; +$wb['donate_txt'] = 'ISPConfig Hosting Control Panel uygulaması ücretsiz dağıtılmaktadır. Belki bu düzeyde bir yazılımı geliÅŸtirmek, güncellemek ve desteklemek için çok fazla zaman ve emek harcandığının farkındasınızdır. ISPConfig uygulamasının geliÅŸtirmesine destek olmak için bağış yapmak isteyebilirsiniz. Hediye olarak ISPConfig kılavuzunu alacaksınız.'; +$wb['donate2_txt'] = 'Bağış tutarı en az 5 EUR ya da ödeme sırasında seçeceÄŸiniz baÅŸka bir tutar olabilir. Ödemeleri PayPal üzerinden alıyoruz. PDF alındısında ISPConfig UG yazar.'; +$wb['hide_btn_txt'] = 'Gizle'; +$wb['donate_btn_txt'] = 'ISPConfig uygulamasını destekleyerek kılavuzu edinin'; +$wb['more_btn_txt'] = 'Ayrıntılar'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng index 8cae3dfb4f0563e28f98f3cc43f4e0983946e9d6..b6b47cae90be2f4ab65183f62d5eb82cf7e8ff18 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng @@ -1,4 +1,4 @@ <?php -$wb['invoice_client_settings_txt'] = 'Invoice Client Settings'; -$wb['edit_txt'] = 'Edit'; +$wb['invoice_client_settings_txt'] = 'Müşteri Fatura Ayarları'; +$wb['edit_txt'] = 'Düzenle'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng index a680daa8f623ad5af726dffd8eb1e1c0b1ce9b4e..db24326749b97a5673286dd288ea1e7c2b83f2f0 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng @@ -1,18 +1,18 @@ <?php -$wb['invoices_txt'] = 'Invoices'; -$wb['invoice_no_txt'] = 'Invoice No.'; -$wb['amount_txt'] = 'Amount'; -$wb['date_txt'] = 'Date'; -$wb['invoice_status_txt'] = 'Status'; -$wb['no_invoices_txt'] = 'No Invoices available.'; -$wb['paid_txt'] = 'Paid'; -$wb['unpaid_txt'] = 'Unpaid'; -$wb['paynow_txt'] = 'pay now'; -$wb['proforma_txt'] = 'Proforma'; -$wb['refunded_txt'] = 'Refunded'; -$wb['not_refunded_txt'] = 'Not refunded'; -$wb['invoice_type_invoice_txt'] = 'Invoice'; -$wb['invoice_type_proforma_txt'] = 'Proforma'; -$wb['invoice_type_refund_txt'] = 'Refund'; -$wb['invoice_type_reminder_txt'] = 'Reminder'; +$wb['invoices_txt'] = 'Faturalar'; +$wb['invoice_no_txt'] = 'Fatura No'; +$wb['amount_txt'] = 'Tutar'; +$wb['date_txt'] = 'Tarih'; +$wb['invoice_status_txt'] = 'Durum'; +$wb['no_invoices_txt'] = 'Henüz bir fatura yok.'; +$wb['paid_txt'] = 'Ödendi'; +$wb['unpaid_txt'] = 'Ödenmedi'; +$wb['paynow_txt'] = 'Åžimdi Öde'; +$wb['proforma_txt'] = 'Teklif'; +$wb['refunded_txt'] = 'Geri Ödendi'; +$wb['not_refunded_txt'] = 'Geri Ödenmedi'; +$wb['invoice_type_invoice_txt'] = 'Fatura'; +$wb['invoice_type_proforma_txt'] = 'Teklif'; +$wb['invoice_type_refund_txt'] = 'Geri Ödeme'; +$wb['invoice_type_reminder_txt'] = 'Anımsatıcı'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng index a8869328f9f02096e41093acbcafca40cd1f04b0..6a4a6a0d242ce70939e727db129d476e66bd5e96 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng @@ -1,34 +1,33 @@ <?php $wb['limits_txt'] = 'Hesap Sınırları'; $wb['of_txt'] = '/'; -$wb['unlimited_txt'] = 'Sınırsız'; -$wb['limit_maildomain_txt'] = 'E-posta Alan Adı Sayısı'; -$wb['limit_mailmailinglist_txt'] = 'Posta Listesi Sayısı'; -$wb['limit_mailbox_txt'] = 'Posta Kutusu Sayısı'; +$wb['limit_maildomain_txt'] = 'E-posta Etki Alanı Sayısı'; +$wb['limit_mailmailinglist_txt'] = 'E-posta Listesi Sayısı'; +$wb['limit_mailbox_txt'] = 'E-posta Kutusu Sayısı'; $wb['limit_mailalias_txt'] = 'Takma E-posta Sayısı'; -$wb['limit_mailaliasdomain_txt'] = 'Takma Alan Adı Sayısı'; +$wb['limit_mailaliasdomain_txt'] = 'Takma Etki Alanı Sayısı'; $wb['limit_mailforward_txt'] = 'E-posta Yönlendirici Sayısı'; $wb['limit_mailcatchall_txt'] = 'E-posta Tümünü Al Hesabı Sayısı'; $wb['limit_mailrouting_txt'] = 'E-posta Yöneltici Sayısı'; $wb['limit_mailfilter_txt'] = 'E-posta Süzgeci Sayısı'; -$wb['limit_fetchmail_txt'] = 'Posta Alma Hesabı Sayısı'; -$wb['limit_spamfilter_wblist_txt'] = 'Önemsiz Posta Beyaz/Kara Liste Sayısı'; -$wb['limit_spamfilter_user_txt'] = 'Önemsiz Posta Süzgeci Kullanıcı Sayısı'; -$wb['limit_spamfilter_policy_txt'] = 'Önemsiz Posta Kuralı Sayısı'; +$wb['limit_fetchmail_txt'] = 'E-posta Alma Hesabı Sayısı'; +$wb['limit_spamfilter_wblist_txt'] = 'Önemsiz İleti Beyaz/Kara Liste Sayısı'; +$wb['limit_spamfilter_user_txt'] = 'Önemsiz İleti Süzgeci Kullanıcı Sayısı'; +$wb['limit_spamfilter_policy_txt'] = 'Önemsiz İletia Kuralı Sayısı'; $wb['limit_cron_txt'] = 'Zamanlanmış Görev Sayısı'; -$wb['limit_web_domain_txt'] = 'Web Alan Adı Sayısı'; -$wb['limit_web_aliasdomain_txt'] = 'Web Takma Alan Adı Sayısı'; -$wb['limit_web_subdomain_txt'] = 'Web Alt Alan Adı Sayısı'; +$wb['limit_web_domain_txt'] = 'Web Etki Alanı Sayısı'; +$wb['limit_web_aliasdomain_txt'] = 'Web Takma Etki Alanı Sayısı'; +$wb['limit_web_subdomain_txt'] = 'Web Alt Etki Alanı Sayısı'; $wb['limit_ftp_user_txt'] = 'FTP Kullanıcı Sayısı'; $wb['limit_dns_zone_txt'] = 'DNS Bölgesi Sayısı'; -$wb['limit_dns_slave_zone_txt'] = 'İkinci DNS Bölgesi Sayısı'; +$wb['limit_dns_slave_zone_txt'] = 'İkincil DNS Bölgesi Sayısı'; $wb['limit_dns_record_txt'] = 'DNS Kayıtları Sayısı'; $wb['limit_shell_user_txt'] = 'Kabuk Kullanıcısı Sayısı'; $wb['limit_webdav_user_txt'] = 'Webdav Kullanıcı Sayısı'; $wb['limit_client_txt'] = 'Müşteri Sayısı'; $wb['limit_database_txt'] = 'Veritabanı Sayısı'; -$wb['limit_domain_txt'] = 'Alan Adı Sayısı'; -$wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; -$wb['limit_web_quota_txt'] = 'Assigned web quota'; -$wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['limit_domain_txt'] = 'Etki Alanı Sayısı'; +$wb['limit_mailquota_txt'] = 'E-posta Kutusu Alanı Kotası'; +$wb['limit_web_quota_txt'] = 'Web Sitesi Alanı Kotası'; +$wb['limit_database_quota_txt'] = 'Veritabanı Alanı Kotası'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng index bee7e8677f699865aad3c44f3df3768735697df4..67888a818eb770b3c4f899af64c4c2f651dbe116 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng @@ -1,5 +1,5 @@ <?php -$wb['mailquota_txt'] = 'Posta Kutusu Kotası'; +$wb['mailquota_txt'] = 'E-posta Kutusu Kotası'; $wb['email_txt'] = 'E-posta Adresi'; $wb['name_txt'] = 'Ad'; $wb['used_txt'] = 'Kullanılan Alan'; diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_modules.lng b/interface/web/dashboard/lib/lang/tr_dashlet_modules.lng index c551510a50b61d008ac94abe96b3bd23614b80cb..ce75e962108a664166a58e6f5ebcc7b8ec810fd9 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_modules.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_modules.lng @@ -1,4 +1,4 @@ <?php $wb['available_modules_txt'] = 'Kullanılabilecek Modüller'; -$wb['go_to_txt'] = 'Go to'; +$wb['go_to_txt'] = ''; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_products.lng b/interface/web/dashboard/lib/lang/tr_dashlet_products.lng index a69b61d2fbf06f20ab1cbed5f33d4804256ba40a..11aa2e519dd794a60612b7d00ecc83923e557bce 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_products.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_products.lng @@ -1,9 +1,9 @@ <?php -$wb['products_txt'] = 'My Products'; -$wb['name_txt'] = 'Name'; -$wb['price_txt'] = 'Price'; -$wb['next_payment_date_txt'] = 'Next Invoice'; -$wb['no_products_txt'] = 'No products found.'; -$wb['edit_txt'] = 'Edit'; -$wb['cancellation_date_txt'] = 'Cancelled by'; +$wb['products_txt'] = 'Ürünlerim'; +$wb['name_txt'] = 'Ad'; +$wb['price_txt'] = 'Fiyat'; +$wb['next_payment_date_txt'] = 'Sonraki Fatura'; +$wb['no_products_txt'] = 'Henüz bir ürün yok.'; +$wb['edit_txt'] = 'Düzenle'; +$wb['cancellation_date_txt'] = 'İptal eden:'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng index 5a757be6f7384152444548e95af3d9d179ea9051..c49fcba52205c3e21b995591787e00313320b693 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng @@ -1,8 +1,8 @@ <?php $wb['quota_txt'] = 'Web Sitesi Disk Kotası'; -$wb['domain_txt'] = 'Alan Adı / Web Sitesi'; +$wb['domain_txt'] = 'Etki Alanı / Web Sitesi'; $wb['used_txt'] = 'Kullanılan Alan'; -$wb['hard_txt'] = 'Donanım sınırı'; -$wb['soft_txt'] = 'Yazılım sınırı'; +$wb['hard_txt'] = 'Donanım Sınırı'; +$wb['soft_txt'] = 'Yazılım Sınırı'; $wb['no_sites_txt'] = 'Henüz bir web sitesi yok.'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng b/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng index 1e0b5361d7baaca8a3501c3b3506d424a0c29581..59e629889fa28f1f8347e50144a398af90496f0f 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng @@ -1,8 +1,8 @@ <?php -$wb['shop_txt'] = 'Order'; -$wb['name_txt'] = 'Name'; -$wb['price_txt'] = 'Price'; -$wb['setup_fee_txt'] = 'Setup Fee'; -$wb['no_products_txt'] = 'No products found.'; -$wb['order_txt'] = 'Order'; +$wb['shop_txt'] = 'SipariÅŸ'; +$wb['name_txt'] = 'Ad'; +$wb['price_txt'] = 'Fiyat'; +$wb['setup_fee_txt'] = 'Kurulum Ücreti'; +$wb['no_products_txt'] = 'Herhangi bir ürün bulunamadı.'; +$wb['order_txt'] = 'SipariÅŸ'; ?> diff --git a/interface/web/dns/dns_aaaa_edit.php b/interface/web/dns/dns_aaaa_edit.php index 006e71cf4cfa0b31724b1f6b354e0f896a7e0ee5..780fbcc80efca2386b2e1a9ca76776b4f592c284 100644 --- a/interface/web/dns/dns_aaaa_edit.php +++ b/interface/web/dns/dns_aaaa_edit.php @@ -45,6 +45,14 @@ require_once './dns_edit_base.php'; // Loading classes class page_action extends dns_page_action { + protected function checkDuplicate() { + global $app; + //* Check for duplicates where IP and hostname are the same + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'AAAA' AND name = ? AND zone = ? and data = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->dataRecord["data"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id); + if($tmp['number'] > 0) return true; + return false; + } + } $page = new page_action; diff --git a/interface/web/dns/dns_caa_edit.php b/interface/web/dns/dns_caa_edit.php index c3d8618414a1148672c78dddb63eec23c3ee7f4c..0151600e4808ee0def9144cae680c5834eff4ff3 100644 --- a/interface/web/dns/dns_caa_edit.php +++ b/interface/web/dns/dns_caa_edit.php @@ -165,7 +165,8 @@ class page_action extends tform_actions { // Set name if($this->dataRecord['additional'] != '') { - $temp = explode(',', $this->dataRecord['additional'])[0]; // if we have more hostnames the interface-plugin will be used + $temp = explode(',', $this->dataRecord['additional']); + $temp = $temp[0]; // if we have more hostnames the interface-plugin will be used $temp = trim($temp,'.'); if(trim($temp != '')) $this->dataRecord['name'] = $temp.'.'.$this->dataRecord['name']; unset($temp); diff --git a/interface/web/dns/dns_cname_edit.php b/interface/web/dns/dns_cname_edit.php index 403650c1c444481d54bb26edef94f60251a74bb2..4013b72ea804ace405b42f31f42df350517fd07f 100644 --- a/interface/web/dns/dns_cname_edit.php +++ b/interface/web/dns/dns_cname_edit.php @@ -48,7 +48,7 @@ class page_action extends dns_page_action { protected function checkDuplicate() { global $app; //* Check for duplicates where IP and hostname are the same - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id); + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and id != ?) OR (type = 'AAAA' AND name = ? AND zone = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id); if($tmp['number'] > 0) return true; return false; } diff --git a/interface/web/dns/dns_dkim_edit.php b/interface/web/dns/dns_dkim_edit.php index 35bac0d0c6254b642fc8a198b28209cb64109f49..520d3822816d738a94067c40e32a813a7747d435 100644 --- a/interface/web/dns/dns_dkim_edit.php +++ b/interface/web/dns/dns_dkim_edit.php @@ -126,9 +126,10 @@ class page_action extends tform_actions { $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); // check for duplicate entry + // Should NOT include data in this check? it must be unique for zone/name (selector)/type, regardless of data $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data = ? AND name = ?", $this->dataRecord["zone"], $this->dataRecord["type"], $this->dataRecord["data"], $this->dataRecord['name']); if ($check!='') $app->tform->errorMessage .= $app->tform->wordbook["record_exists_txt"]; - if (empty($this->dataRecord['data'])) $app->tform->errorMessage /= $app->tform->wordbook["dkim_disabled_txt"]; + if (empty($this->dataRecord['data'])) $app->tform->errorMessage .= $app->tform->wordbook["dkim_disabled_txt"]; // validate selector and public-key if (empty($this->dataRecord['selector'])) $app->tform->errorMessage .= '<br/>'.$app->tform->wordbook["dkim_selector_empty_txt"].'<br/>'; diff --git a/interface/web/dns/dns_dname_edit.php b/interface/web/dns/dns_dname_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..b4cd8ffaeafeb56aec1f2ca2b7350f3a6e11a53d --- /dev/null +++ b/interface/web/dns/dns_dname_edit.php @@ -0,0 +1,60 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/dns_dname.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; +require_once './dns_edit_base.php'; + +// Loading classes +class page_action extends dns_page_action { + + protected function checkDuplicate() { + global $app; + //* Check for duplicates where IP and hostname are the same + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id); + if($tmp['number'] > 0) return true; + return false; + } +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/dns_edit_base.php b/interface/web/dns/dns_edit_base.php index 9cea8b6ae20b7dc56ef26f592b40b200c983d7e4..4f61b71ce5e4c3079e50a75093bdb5bb9a4a402c 100644 --- a/interface/web/dns/dns_edit_base.php +++ b/interface/web/dns/dns_edit_base.php @@ -44,6 +44,29 @@ class dns_page_action extends tform_actions { return false; } + protected function zoneFileEscape( $str ) { + // escape backslash and double quotes + $ret = str_replace( '\\', '\\\\', $str ); + $ret = str_replace( '"', '\\"', $ret ); + return $ret; + } + + protected function zoneFileUnescape( $str ) { + // escape sequence can be rfc 1035 '\DDD' (backslash, 3 digits) or '\X' (backslash, non-digit char) + return preg_replace_callback( '/\\\\(\d\d\d|\D)/', + function( $Matches ) { + if (preg_match( '/\d{3}/', $Matches[1] )) { + return chr( $Matches[1] ); + } elseif (preg_match( '/\D/', $Matches[1])) { + return $Matches[1]; + } else { + return $Matches[0]; + } + }, + $str + ); + } + function onShowNew() { global $app, $conf; diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php index 540a731ba24d53f805d35838b801ef2f83ad16d1..b0c19bfff0f9d8228fb557667c99dd08da112ac2 100644 --- a/interface/web/dns/dns_import.php +++ b/interface/web/dns/dns_import.php @@ -34,8 +34,9 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('dns'); -$msg = ''; -$error = ''; +$msg = []; +$warn = []; +$error = []; // Loading the template $app->uses('tform,tpl,validate_dns'); @@ -208,6 +209,40 @@ $lng_file = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language include $lng_file; $app->tpl->setVar($wb); +/** Returns shortest name for an owner with giving $origin in effect */ +function origin_name( $owner, $origin ) { + if ($owner == "@") { return ''; } + if ($owner == "*") { return $owner; } + if ($owner == "") { return $origin; } + if ($origin == "") { return $owner; } + if (substr($owner, -1) == ".") { + if (substr($origin, -1) == ".") { + return substr_replace( $owner, '', 0 - (strlen($origin) + 1) ); + } else { + return $owner; + } + } + if ($origin == ".") { + return "${owner}."; + } + if (substr($origin, -1) != ".") { + // should be an erorr, + // only "." terminated $origin can be handled determinately + return "${owner}.${origin}"; + } + return $owner; + +} + +/** Returns full name for an owner with given $origin in effect */ +function fqdn_name( $owner, $origin ) { + if (substr($owner, -1) == ".") { + return $owner; + } + $name = origin_name( $owner, $origin ); + return $name . (strlen($name) > 0 ? "." : "") . $origin; +} + // Import the zone-file //if(1=="1") if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'])){ @@ -227,26 +262,34 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' // Remove empty lines, comments, whitespace, tabs, etc. $new_lines = array(); foreach($lines as $line){ - $line = trim($line); + $line = rtrim($line); + $line = preg_replace('/^\s+/', ' ', $line); if ($line != '' && substr($line, 0, 1) != ';'){ - if(strpos($line, ";") !== FALSE) { - if(!preg_match("/\"[^\"]+;[^\"]*\"/", $line)) { - $line = substr($line, 0, strpos($line, ";")); + if(preg_match("/\sNAPTR\s/i", $line)) { + // NAPTR contains regex strings, there's not much we can safely clean up. + // remove a comment if found after the ending period (and comment doesn't contain period) + $line = preg_replace( '/^(.+\.)(\s*;[^\.]*)$/', '\1', $line ); + } else { + if(strpos($line, ";") !== FALSE) { + if(!preg_match("/\"[^\"]+;[^\"]*\"/", $line)) { + $line = substr($line, 0, strpos($line, ";")); + } } - } - if(strpos($line, "(") !== FALSE ) { - if (!preg_match("/v=DKIM/",$line)) { - $line = substr($line, 0, strpos($line, "(")); + if(strpos($line, "(") !== FALSE ) { + if (!preg_match("/v=DKIM/",$line)) { + $line = substr($line, 0, strpos($line, "(")); + } } - } - if(strpos($line, ")") !== FALSE ) { - if (!preg_match("/v=DKIM/",$line)) { - $line = substr($line, 0, strpos($line, ")")); + if(strpos($line, ")") !== FALSE ) { + if (!preg_match("/v=DKIM/",$line)) { + $line = substr($line, 0, strpos($line, ")")); + } } } - $line = trim($line); + $line = rtrim($line); if ($line != ''){ + // this of course breaks TXT when it includes whitespace $sPattern = '/\s+/m'; $sReplace = ' '; $new_lines[] = preg_replace($sPattern, $sReplace, $line); @@ -257,29 +300,42 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' $lines = $new_lines; unset($new_lines); - //$lines = file("apriqot.se.txt"); - $name = str_replace("txt", "", $_FILES['file']['name']); - $name = str_replace("zone", "", $name); - if ($domain !== NULL){ - $name = $domain; - } - - if (substr($name, -1) != "."){ - $name .= "."; + // SOA name will be the specified domain + $name = origin_name( $domain, '.' ); + } else { + // SOA name will be read from SOA record + $name = '.'; } $i = 0; - $origin_exists = FALSE; + $ttl = 3600; + $soa_ttl = '86400'; $soa_array_key = -1; $soa = array(); $soa['name'] = $name; + $origin = $name; + $owner = $name; $r = 0; $dns_rr = array(); + $add_default_ns = TRUE; + $found_soa = FALSE; foreach($lines as $line){ $parts = explode(' ', $line); + // leading whitespace means same owner as previous record + if ($parts[0] == '') { + // SOA is (only) read from multiple lines + if($i > ($soa_array_key) && $i <= ($soa_array_key + 5)) { + array_shift($parts); + } else { + $parts[0] = $owner; + } + } elseif (strpos( $parts[0], '$' ) !== 0) { + $owner = fqdn_name( $parts[0], $origin ); + } + // make elements lowercase $new_parts = array(); foreach($parts as $part){ @@ -297,46 +353,75 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' $parts = $new_parts; unset($new_parts); - // if ORIGIN exists, overwrite $soa['name'] + // Set current $ORIGIN (note: value in file can be a name relative to current origin) if($parts[0] == '$origin'){ - $soa['name'] = $parts[1]; - $origin_exists = TRUE; + $origin = fqdn_name( $parts[1], $origin ); } // TTL if($parts[0] == '$ttl'){ $time_format = strtolower(substr($parts[1], -1)); switch ($time_format) { case 's': - $soa['ttl'] = $app->functions->intval(substr($parts[1], 0, -1)); + $ttl = $app->functions->intval(substr($parts[1], 0, -1)); break; case 'm': - $soa['ttl'] = $app->functions->intval(substr($parts[1], 0, -1)) * 60; + $ttl = $app->functions->intval(substr($parts[1], 0, -1)) * 60; break; case 'h': - $soa['ttl'] = $app->functions->intval(substr($parts[1], 0, -1)) * 3600; + $ttl = $app->functions->intval(substr($parts[1], 0, -1)) * 3600; break; case 'd': - $soa['ttl'] = $app->functions->intval(substr($parts[1], 0, -1)) * 86400; + $ttl = $app->functions->intval(substr($parts[1], 0, -1)) * 86400; break; case 'w': - $soa['ttl'] = $app->functions->intval(substr($parts[1], 0, -1)) * 604800; + $ttl = $app->functions->intval(substr($parts[1], 0, -1)) * 604800; break; default: - $soa['ttl'] = $app->functions->intval($parts[1]); + $ttl = $app->functions->intval($parts[1]); } + $soa_ttl = $ttl; unset($time_format); } // SOA if(in_array("soa", $parts)){ - $soa['mbox'] = array_pop($parts); - //$soa['ns'] = array_pop($parts); - $soa['ns'] = $servers[0]['server_name']; - // if domain is part of SOA, overwrite $soa['name'] - if($parts[0] != '@' && $parts[0] != 'in' && $parts[0] != 'soa' && $origin_exists === FALSE){ - $soa['name'] = $parts[0]; + // Check for multiple SOA records in file + if($found_soa && $soa_array_key != -1){ + // we could just skip any SOA which doesn't match the domain name, + // which would allow concating zone files (sub1.d.tld, sub2.d.tld, d.tld) together for import + $error[] = $wb['zone_file_multiple_soa']; + $valid_zone_file = FALSE; + } else { + $soa['mbox'] = array_pop($parts); + + //$soa['ns'] = array_pop($parts); + $soa['ns'] = $servers[0]['server_name']; + + // $parts[0] will always be owner name + $soa_domain = fqdn_name( $parts[0], $origin ); + + if ($domain !== NULL){ + // domain was given, check that domain and SOA domain share some root + if ( ( strpos( $soa_domain, origin_name( $domain, '.' ) ) !== FALSE ) + || ( strpos( origin_name( $domain, '.' ), $soa_domain ) !== FALSE ) ) { + $valid_zone_file = TRUE; + } + } else { + // domain not given, use domain from SOA + if($soa_domain != ".") { + $soa['name'] = $soa_domain; + $valid_zone_file = TRUE; + } + } + + if(is_numeric($parts[1])){ + $soa['ttl'] = $app->functions->intval($parts[1]); + } else { + $soa['ttl'] = $soa_ttl; + } + + $found_soa = TRUE; + $soa_array_key = $i; } - $soa_array_key = $i; - $valid_zone_file = TRUE; } // SERIAL if($i == ($soa_array_key + 1)) $soa['serial'] = $app->functions->intval($parts[0]); @@ -438,197 +523,120 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' } // RESOURCE RECORDS if($i > ($soa_array_key + 5)){ - if(substr($parts[0], -1) == '.' || $parts[0] == '@' || ($parts[0] != 'a' && $parts[0] != 'aaaa' && $parts[0] != 'ns' && $parts[0] != 'cname' && $parts[0] != 'hinfo' && $parts[0] != 'mx' && $parts[0] != 'naptr' && $parts[0] != 'ptr' && $parts[0] != 'rp' && $parts[0] != 'srv' && $parts[0] != 'txt')){ - if(is_numeric($parts[1])){ - if($parts[2] == 'in'){ - $resource_type = $parts[3]; - $pkey = 3; - } else { - $resource_type = $parts[2]; - $pkey = 2; - } - } else { - if($parts[1] == 'in'){ - $resource_type = $parts[2]; - $pkey = 2; - } else { - $resource_type = $parts[1]; - $pkey = 1; - } - } - $dns_rr[$r]['type'] = $resource_type; - if($parts[0] == '@' || $parts[0] == '.'){ - $dns_rr[$r]['name'] = $soa['name']; - } else { - $dns_rr[$r]['name'] = $parts[0]; - } - if(is_numeric($parts[1])){ - $dns_rr[$r]['ttl'] = $app->functions->intval($parts[1]); - } else { - $dns_rr[$r]['ttl'] = $soa['ttl']; - } - switch ($resource_type) { - case 'mx': - case 'srv': - $dns_rr[$r]['aux'] = $app->functions->intval($parts[$pkey+1]); - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+2)); - break; - case 'txt': - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - if(substr($dns_rr[$r]['data'], 0, 1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 1); - if(substr($dns_rr[$r]['data'], -1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 0, -1); - break; - default: - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - } + + $dns_rr[$r]['name'] = fqdn_name( $owner, $soa['name'] ); + array_shift($parts); // shift record owner from $parts[0] + + if(is_numeric($parts[0])) { + $dns_rr[$r]['ttl'] = $app->functions->intval($parts[0]); + array_shift($parts); // shift ttl from $parts[0] } else { - // a 3600 IN A 1.2.3.4 - if(is_numeric($parts[1]) && $parts[2] == 'in' && ($parts[3] == 'a' || $parts[3] == 'aaaa' || $parts[3] == 'ns'|| $parts[3] == 'cname' || $parts[3] == 'hinfo' || $parts[3] == 'mx' || $parts[3] == 'naptr' || $parts[3] == 'ptr' || $parts[3] == 'rp' || $parts[3] == 'srv' || $parts[3] == 'txt')){ - $resource_type = $parts[3]; - $pkey = 3; - $dns_rr[$r]['type'] = $resource_type; - $dns_rr[$r]['name'] = $parts[0]; - $dns_rr[$r]['ttl'] = $app->functions->intval($parts[1]); - switch ($resource_type) { - case 'mx': - case 'srv': - $dns_rr[$r]['aux'] = $app->functions->intval($parts[$pkey+1]); - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+2)); - break; - case 'txt': - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - if(substr($dns_rr[$r]['data'], 0, 1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 1); - if(substr($dns_rr[$r]['data'], -1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 0, -1); - break; - default: - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - } - } - // a IN A 1.2.3.4 - elseif($parts[1] == 'in' && ($parts[2] == 'a' || $parts[2] == 'aaaa' || $parts[2] == 'ns'|| $parts[2] == 'cname' || $parts[2] == 'hinfo' || $parts[2] == 'mx' || $parts[2] == 'naptr' || $parts[2] == 'ptr' || $parts[2] == 'rp' || $parts[2] == 'srv' || $parts[2] == 'txt')){ - $resource_type = $parts[2]; - $pkey = 2; - $dns_rr[$r]['type'] = $resource_type; - $dns_rr[$r]['name'] = $parts[0]; - $dns_rr[$r]['ttl'] = $soa['ttl']; - switch ($resource_type) { - case 'mx': - case 'srv': - $dns_rr[$r]['aux'] = $app->functions->intval($parts[$pkey+1]); - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+2)); - break; - case 'txt': - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - if(substr($dns_rr[$r]['data'], 0, 1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 1); - if(substr($dns_rr[$r]['data'], -1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 0, -1); - break; - default: - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - } - } - // a 3600 A 1.2.3.4 - elseif(is_numeric($parts[1]) && ($parts[2] == 'a' || $parts[2] == 'aaaa' || $parts[2] == 'ns'|| $parts[2] == 'cname' || $parts[2] == 'hinfo' || $parts[2] == 'mx' || $parts[2] == 'naptr' || $parts[2] == 'ptr' || $parts[2] == 'rp' || $parts[2] == 'srv' || $parts[2] == 'txt')){ - $resource_type = $parts[2]; - $pkey = 2; - $dns_rr[$r]['type'] = $resource_type; - $dns_rr[$r]['name'] = $parts[0]; - $dns_rr[$r]['ttl'] = $app->functions->intval($parts[1]); - switch ($resource_type) { - case 'mx': - case 'srv': - $dns_rr[$r]['aux'] = $app->functions->intval($parts[$pkey+1]); - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+2)); - break; - case 'txt': - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - if(substr($dns_rr[$r]['data'], 0, 1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 1); - if(substr($dns_rr[$r]['data'], -1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 0, -1); - break; - default: - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - } - } - // A 1.2.3.4 - // MX 10 mail - // TXT "v=spf1 a mx ptr -all" - else { - $resource_type = $parts[0]; - $pkey = 0; - $dns_rr[$r]['type'] = $resource_type; - $dns_rr[$r]['name'] = $soa['name']; - $dns_rr[$r]['ttl'] = $soa['ttl']; - switch ($resource_type) { - case 'mx': - case 'srv': - $dns_rr[$r]['aux'] = $app->functions->intval($parts[$pkey+1]); - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+2)); - break; - case 'txt': - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - if(substr($dns_rr[$r]['data'], 0, 1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 1); - if(substr($dns_rr[$r]['data'], -1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'], 0, -1); - break; - default: - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['data'] = implode(' ', array_slice($parts, $pkey+1)); - } - } + $dns_rr[$r]['ttl'] = $ttl; } - $dns_rr[$r]['type'] = strtoupper($dns_rr[$r]['type']); - if($dns_rr[$r]['type'] == 'NS' && $dns_rr[$r]['name'] == $soa['name']){ + + if($parts[0] == 'in'){ + array_shift($parts); // shift class from $parts[0] + } elseif (in_array( $parts[0], [ 'ch', 'hs', ] )) { + $warn[] = $wb['ignore_record_not_class_in'] . " ($owner " . strtoupper($parts[0]) . ")"; unset($dns_rr[$r]); + continue; } - - $valid = true; + + // A 1.2.3.4 + // MX 10 mail + // TXT "v=spf1 a mx ptr -all" + $resource_type = array_shift($parts); + switch ($resource_type) { + case 'mx': + case 'srv': + case 'naptr': + $dns_rr[$r]['aux'] = $app->functions->intval(array_shift($parts)); + $dns_rr[$r]['data'] = implode(' ', $parts); + break; + case 'txt': + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ', $parts); + $dns_rr[$r]['data'] = preg_replace( [ '/^\"/', '/\"$/' ], '', $dns_rr[$r]['data']); + break; + default: + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ', $parts); + } + + $dns_rr[$r]['type'] = strtoupper($resource_type); + + if($dns_rr[$r]['type'] == 'NS' && fqdn_name( $dns_rr[$r]['name'], $soa['name'] ) == $soa['name']){ + $add_default_ns = FALSE; + } + $dns_rr[$r]['ttl'] = $app->functions->intval($dns_rr[$r]['ttl']); $dns_rr[$r]['aux'] = $app->functions->intval($dns_rr[$r]['aux']); - $dns_rr[$r]['data'] = strip_tags($dns_rr[$r]['data']); - if(!preg_match('/^[a-zA-Z0-9\.\-\*]{0,64}$/',$dns_rr[$r]['name'])) $valid == false; - if(!in_array(strtoupper($dns_rr[$r]['type']),array('A','AAAA','ALIAS','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY'))) $valid == false; - if($valid == false) unset($dns_rr[$r]); + + // this really breaks NAPTR .. conceivably TXT, too. + // just make sure data is encoded when saved and escaped when displayed/used + if(!in_array($dns_rr[$r]['type'],array('NAPTR','TXT',))) { + $dns_rr[$r]['data'] = strip_tags($dns_rr[$r]['data']); + } + + // regex based on https://stackoverflow.com/questions/3026957/how-to-validate-a-domain-name-using-regex-php + // probably should find something better that covers valid syntax, moreso than just valid hostnames + if(!preg_match('/^(|@|\*|(?!\-)(?:(\*|(?:[a-zA-Z\d_][a-zA-Z\d\-_]{0,61})?[a-zA-Z\d_])\.){1,126}(?!\d+)[a-zA-Z\d_]{1,63}\.?)$/',$dns_rr[$r]['name'])) { + $error[] = $wb['ignore_record_invalid_owner'] . " (" . htmlspecialchars($dns_rr[$r]['name']) . ")"; + unset( $dns_rr[$r] ); + continue; + } + + if(!in_array($dns_rr[$r]['type'],array('A','AAAA','ALIAS','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY'))) { + $error[] = $wb['ignore_record_unknown_type'] . " (" . htmlspecialchars($dns_rr[$r]['type']) . ")"; + unset( $dns_rr[$r] ); + continue; + } $r++; } $i++; } - foreach ($servers as $server){ - $dns_rr[$r]['name'] = $soa['name']; - $dns_rr[$r]['type'] = 'NS'; - $dns_rr[$r]['data'] = $server['server_name']; - $dns_rr[$r]['aux'] = 0; - $dns_rr[$r]['ttl'] = $soa['ttl']; - $r++; + if ( $add_default_ns ) { + foreach ($servers as $server){ + $dns_rr[$r]['name'] = $soa['name']; + $dns_rr[$r]['type'] = 'NS'; + $dns_rr[$r]['data'] = $server['server_name']; + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['ttl'] = $soa['ttl']; + $r++; + } } //print('<pre>'); //print_r($dns_rr); //print('</pre>'); + if (!$found_soa) { + $valid_zone_file = false; + $error[] = $wb['zone_file_missing_soa']; + } + if (intval($soa['serial']) == 0 + || (intval($soa['refresh']) == 0 && intval($soa['retry']) == 0 && intval($soa['expire']) == 0 && intval($soa['minimum']) == 0 ) + ) { + $valid_zone_file = false; + $error[] = $wb['zone_file_soa_parser']; +$error[] = print_r( $soa, true ); + } + if ($settings['use_domain_module'] == 'y' && ! $app->tools_sites->checkDomainModuleDomain($soa['name']) ) { + $valid_zone_file = false; + $error[] = $wb['zone_not_allowed']; + } // Insert the soa record $sys_userid = $_SESSION['s']['user']['userid']; - $origin = $soa['name']; - $ns = $soa['ns']; - $mbox = $soa['mbox']; - $refresh = $soa['refresh']; - $retry = $soa['retry']; - $expire = $soa['expire']; - $minimum = $soa['minimum']; - $ttl = isset($soa['ttl']) ? $soa['ttl'] : '86400'; $xfer = ''; $serial = $app->functions->intval($soa['serial']+1); //print_r($soa); //die(); - if($valid_zone_file){ + $records = $app->db->queryAllRecords("SELECT id FROM dns_soa WHERE origin = ?", $soa['name']); + if (count($records) > 0) { + $error[] = $wb['zone_already_exists']; + } elseif ($valid_zone_file) { $insert_data = array( "sys_userid" => $sys_userid, "sys_groupid" => $sys_groupid, @@ -636,15 +644,15 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' "sys_perm_group" => 'riud', "sys_perm_other" => '', "server_id" => $server_id, - "origin" => $origin, - "ns" => $ns, - "mbox" => $mbox, + "origin" => $soa['name'], + "ns" => $soa['ns'], + "mbox" => $soa['mbox'], "serial" => $serial, - "refresh" => $refresh, - "retry" => $retry, - "expire" => $expire, - "minimum" => $minimum, - "ttl" => $ttl, + "refresh" => $soa['refresh'], + "retry" => $soa['retry'], + "expire" => $soa['expire'], + "minimum" => $soa['minimum'], + "ttl" => $soa['ttl'], "active" => 'Y', "xfer" => $xfer ); @@ -655,6 +663,11 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' { foreach($dns_rr as $rr) { + // ensure record name is within $soa['name'] zone + if(fqdn_name( $rr['name'], $soa['name'] ) != $soa['name'] + && (strpos( fqdn_name( $rr['name'], $soa['name'] ), ".".$soa['name'] ) === FALSE ) ){ + continue; + } $insert_data = array( "sys_userid" => $sys_userid, "sys_groupid" => $sys_groupid, @@ -663,7 +676,7 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' "sys_perm_other" => '', "server_id" => $server_id, "zone" => $dns_soa_id, - "name" => $rr['name'], + "name" => origin_name( $rr['name'], $soa['name'] ), "type" => $rr['type'], "data" => $rr['data'], "aux" => $rr['aux'], @@ -672,21 +685,39 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' ); $dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id'); } + + $msg[] = $wb['zone_file_successfully_imported_txt']; + } elseif (is_array($dns_rr)) { + $error[] = $wb['zone_file_import_fail']; + } else { + $msg[] = $wb['zone_file_successfully_imported_txt']; } - $msg .= $wb['zone_file_successfully_imported_txt']; } else { - $error .= $wb['error_no_valid_zone_file_txt']; + $error[] = $wb['error_no_valid_zone_file_txt']; } //header('Location: /dns/dns_soa_edit.php?id='.$dns_soa_id); } else { if(isset($_FILES['file']['name'])) { - $error = $wb['no_file_uploaded_error']; + $error[] = $wb['no_file_uploaded_error']; } } +$_error=''; +if (count($error) > 0) { + // this markup should really be moved to ispconfig.js + $_error = '<div class="alert alert-danger clear">' . implode( '<br />', $error) . '</div>'; +} +if (count($warn) > 0) { + // and add a 'warn' variable to templates and ispconfig.js + $_error = '<div class="alert alert-warning clear">' . implode( '<br />', $warn) . '</div>'; +} +$app->tpl->setVar('error', $_error); -$app->tpl->setVar('msg', $msg); -$app->tpl->setVar('error', $error); +$_msg=''; +if (count($msg) > 0) { + $_msg = '<div class="alert alert-success clear">' . implode( '<br />', $msg) . '</div>'; +} +$app->tpl->setVar('msg', $_msg); $app->tpl_defaults(); $app->tpl->pparse(); diff --git a/interface/web/dns/dns_naptr_edit.php b/interface/web/dns/dns_naptr_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..99001ac8c528abf17691359afc76c2dd2f9a70c5 --- /dev/null +++ b/interface/web/dns/dns_naptr_edit.php @@ -0,0 +1,100 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/dns_naptr.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; +require_once './dns_edit_base.php'; + +// Loading classes +class page_action extends dns_page_action { + + function onSubmit() { + // Combine and escape/format fields into the data to be saved + $this->dataRecord['data'] = $this->dataRecord['pref'] .' '. + '"'. $this->zoneFileEscape( $this->dataRecord['flags'] ) .'" '. + '"'. $this->zoneFileEscape( $this->dataRecord['service'] ) .'" '. + '"'. $this->zoneFileEscape( $this->dataRecord['regexp'] ) .'" '. + $this->dataRecord['replacement'] . (substr( $this->dataRecord['replacement'], -1 ) == '.' ? '' : '.'); + + $this->dataRecord['aux'] = $this->dataRecord['order']; + + parent::onSubmit(); + } + + + function onShowEnd() { + global $app, $conf; + + // Split the parts of NAPTR record, unescape (backslashes), and unquote to edit. + // + // Examples: + // ;; order pref flags service regexp replacement + // IN NAPTR 100 10 "" "" "!^cid:.+@([^\.]+\.)(.*)$!\2!i" . + // + // ;; order pref flags service regexp replacement + // IN NAPTR 100 100 "s" "thttp+L2R" "" thttp.example.com. + // IN NAPTR 100 100 "s" "ftp+L2R" "" ftp.example.com. + // + // 'order' in stored in 'aux' column, + // all of 'pref "flags" "service" "regexp" replacement.' is here in 'data' + // + $matched = preg_match('/^\s*(\d+)\s+"([a-zA-Z0-9]*)"\s+"([^"]*)"\s+"(.*)"\s+([^\s]*\.)\s*$/', $this->dataRecord['data'], $matches); + + if ($matched === FALSE || is_array($matches) && count($matches) == 0) { + if ( isset($app->tform->errorMessage) ) { + $app->tform->errorMessage .= '<br/>' . $app->tform->wordbook["record_parse_error"]; + } + } else { + $app->tpl->setVar('pref', $matches[1], true); + $app->tpl->setVar('flags', $this->zoneFileUnescape($matches[2]), true); + $app->tpl->setVar('service', $this->zoneFileUnescape($matches[3]), true); + $app->tpl->setVar('regexp', $this->zoneFileUnescape($matches[4]), true); + $app->tpl->setVar('replacement', $matches[5], true); + } + + parent::onShowEnd(); + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/dns_slave_edit.php b/interface/web/dns/dns_slave_edit.php index 117b101b875de812e10160b1bfe37031164cecb8..020a044593154d85bfc011a9e52f106e4db8b04c 100644 --- a/interface/web/dns/dns_slave_edit.php +++ b/interface/web/dns/dns_slave_edit.php @@ -124,7 +124,7 @@ class page_action extends tform_actions { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains("dns_slave", $this->dataRecord["origin"]); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ foreach( $domains as $domain) { diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php index 9b36daee1500fb07ecf1c8b5f43668be3a063c96..ec5ba67c79de4e675647ab21ea1ba1b823118ce2 100644 --- a/interface/web/dns/dns_soa_edit.php +++ b/interface/web/dns/dns_soa_edit.php @@ -192,7 +192,7 @@ class page_action extends tform_actions { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains("dns_soa", $this->dataRecord["origin"]); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ foreach( $domains as $domain) { diff --git a/interface/web/dns/dns_spf_edit.php b/interface/web/dns/dns_spf_edit.php index 94096662a1e8e0af7e0e228d322d0c955076b8f2..20626ba159add3f79aeda33fc70502642b2c614f 100644 --- a/interface/web/dns/dns_spf_edit.php +++ b/interface/web/dns/dns_spf_edit.php @@ -72,13 +72,16 @@ class page_action extends tform_actions { } function onShowEnd() { - global $app, $conf; + global $app; + + $id = $app->functions->intval($_GET['id']); - $zone = $app->functions->intval($_GET['zone']); + // if there is no existing SPF record, assume we want a new active record + $app->tpl->setVar('active', 'CHECKED'); //* check for an existing spf-record - $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=spf1%' AND zone = ? AND " . $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $zone); + $sql = "SELECT data, active FROM dns_rr WHERE id = ? AND " . $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql, $id); if ( isset($rec) && !empty($rec) ) { $this->id = 1; $old_data = strtolower($rec['data']); @@ -132,7 +135,6 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; - // Get the parent soa record of the domain $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND " . $app->tform->getAuthSQL('r'), $app->functions->intval($_POST["zone"])); @@ -153,8 +155,34 @@ class page_action extends tform_actions { } } } // end if user is not admin + + // Check that the record does not yet exist + $existing_records = $app->db->queryAllRecords("SELECT id FROM dns_rr WHERE zone = ? AND name = ? AND type = 'TXT' AND data LIKE 'v=spf1%'", $_POST['zone'], $_POST['name']); + if (!empty($existing_records)) { + if (count($existing_records) > 1) { + $multiple_existing_records_error_txt = $app->tform->wordbook['spf_record_exists_multiple_txt']; + $multiple_existing_records_error_txt = str_replace('{hostname}', $_POST['name'], $multiple_existing_records_error_txt); + + $app->error($multiple_existing_records_error_txt); + } + + // If there is just one existing record, three things can be going on: + // - if we are adding a new record, show a warning that it already exists and offer to edit it + // - if we are editing an existing record and changing its 'name' field to one that is already existing, also show the warning + // - otherwise we are just editing the existing the record, so there is no need for a warning + $existing_record = array_pop($existing_records); + if (empty($this->dataRecord['id']) || ($this->dataRecord['id'] !== $existing_record['id'])) { + $existing_record_error_txt = $app->tform->wordbook['spf_record_exists_txt']; + $existing_record_error_txt = str_replace('{hostname}', $_POST['name'], $existing_record_error_txt); + $existing_record_error_txt = str_replace('{existing_record_id}', $existing_record['id'], $existing_record_error_txt); + + $app->error($existing_record_error_txt); + } + } + + // Create spf-record + $spf_record = array(); - //create spf-record if (!empty($this->dataRecord['spf_mx'])) { $spf_record[] = 'mx'; } @@ -217,7 +245,6 @@ class page_action extends tform_actions { else $this->dataRecord['data'] = 'v=spf1 ' . $this->dataRecord['spf_mechanism'] . 'all'; unset($temp); - $this->dataRecord['name'] = $soa['origin']; if (isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'Y'; // Set the server ID of the rr record to the same server ID as the parent record. @@ -228,10 +255,6 @@ class page_action extends tform_actions { $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - // always update an existing entry - $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data LIKE 'v=spf1%' AND name = ?", $this->dataRecord["zone"], $this->dataRecord["type"], $this->dataRecord['name']); - $this->id = $check['id']; - if (!isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'N'; parent::onSubmit(); diff --git a/interface/web/dns/dns_sshfp_edit.php b/interface/web/dns/dns_sshfp_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..adce9af9a1a1fa4d97f0d7e83707c20fcd04c4b5 --- /dev/null +++ b/interface/web/dns/dns_sshfp_edit.php @@ -0,0 +1,53 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/dns_sshfp.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; +require_once './dns_edit_base.php'; + +// Loading classes +class page_action extends dns_page_action { + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/dns_txt_edit.php b/interface/web/dns/dns_txt_edit.php index 8f61d2bfe725e218df4a2c3d28b06f040e6ca570..7caa27d040c38955bd93d4fedc09b46df9091edd 100644 --- a/interface/web/dns/dns_txt_edit.php +++ b/interface/web/dns/dns_txt_edit.php @@ -44,7 +44,22 @@ require_once './dns_edit_base.php'; // Loading classes class page_action extends dns_page_action { + function onLoad() { + parent::onLoad(); + + // The SPF wizard has a button to edit a record as TXT. We need this to prevent a redirect loop. + if (!empty($_GET['edit_raw'])) { + return; + } + // Redirect to SPF wizard if we detect a SPF record + if ('GET' === $_SERVER['REQUEST_METHOD'] && !empty($this->dataRecord['data'])) { + if ('v=spf1' === mb_substr($this->dataRecord['data'], 0, 6)) { + header(sprintf('Location: dns_spf_edit.php?id=%d', $this->dataRecord['id'])); + exit; + } + } + } } $page = new page_action; diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php index 17d767550c5555320bf8e5fe19481032c6d26864..91b2307dc5126dc3650a1f3a38a754ea135151e9 100644 --- a/interface/web/dns/dns_wizard.php +++ b/interface/web/dns/dns_wizard.php @@ -197,7 +197,7 @@ if ($domains_settings['use_domain_module'] == 'y') { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains("dns_soa", 'domain'); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ foreach( $domains as $domain) { @@ -220,10 +220,10 @@ if ($domains_settings['use_domain_module'] == 'y') { } if($_POST['create'] == 1) { - + //* CSRF Check $app->auth->csrf_token_check(); - + $error = ''; if ($post_server_id) @@ -277,17 +277,17 @@ if($_POST['create'] == 1) { if(isset($_POST['domain']) && $_POST['domain'] == '') $error .= $app->lng('error_domain_empty').'<br />'; - elseif(isset($_POST['domain']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,30}$/', $_POST['domain'])) $error .= $app->lng('error_domain_regex').'<br />'; + elseif(isset($_POST['domain']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,63}$/', $_POST['domain'])) $error .= $app->lng('error_domain_regex').'<br />'; if(isset($_POST['ip']) && $_POST['ip'] == '') $error .= $app->lng('error_ip_empty').'<br />'; if(isset($_POST['ipv6']) && $_POST['ipv6'] == '') $error .= $app->lng('error_ipv6_empty').'<br />'; if(isset($_POST['ns1']) && $_POST['ns1'] == '') $error .= $app->lng('error_ns1_empty').'<br />'; - elseif(isset($_POST['ns1']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns1'])) $error .= $app->lng('error_ns1_regex').'<br />'; + elseif(isset($_POST['ns1']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,63}$/', $_POST['ns1'])) $error .= $app->lng('error_ns1_regex').'<br />'; if(isset($_POST['ns2']) && $_POST['ns2'] == '') $error .= $app->lng('error_ns2_empty').'<br />'; - elseif(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns2'])) $error .= $app->lng('error_ns2_regex').'<br />'; + elseif(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,63}$/', $_POST['ns2'])) $error .= $app->lng('error_ns2_regex').'<br />'; if(isset($_POST['email']) && $_POST['email'] == '') $error .= $app->lng('error_email_empty').'<br />'; elseif(isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) $error .= $app->lng('error_email_regex').'<br />'; @@ -324,7 +324,7 @@ if($_POST['create'] == 1) { if($_POST['ns2'] != '') $tpl_content = str_replace('{NS2}', $_POST['ns2'], $tpl_content); if($_POST['email'] != '') $tpl_content = str_replace('{EMAIL}', $_POST['email'], $tpl_content); $enable_dnssec = (($_POST['dnssec'] == 'Y') ? 'Y' : 'N'); - if(isset($_POST['dkim']) && preg_match('/^[\w\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,30}[\.]{0,1}$/', $_POST['domain'])) { + if(isset($_POST['dkim']) && preg_match('/^[\w\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,63}[\.]{0,1}$/', $_POST['domain'])) { $sql = $app->db->queryOneRecord("SELECT dkim_public, dkim_selector FROM mail_domain WHERE domain = ? AND dkim = 'y' AND ".$app->tform->getAuthSQL('r'), $_POST['domain']); $public_key = $sql['dkim_public']; if ($public_key!='') { diff --git a/interface/web/dns/form/dns_a.tform.php b/interface/web/dns/form/dns_a.tform.php index d9ed197c515aa71593670828511f56a7d7f1eef5..aa00e9cb50f3ffdd3c48472dd5c44ac1959d8664 100644 --- a/interface/web/dns/form/dns_a.tform.php +++ b/interface/web/dns/form/dns_a.tform.php @@ -159,7 +159,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_aaaa.tform.php b/interface/web/dns/form/dns_aaaa.tform.php index 018657b838edf181add028e4025bbaec98c7308f..05f52ca67bdaa43d72d1404c22f63e85153b3e89 100644 --- a/interface/web/dns/form/dns_aaaa.tform.php +++ b/interface/web/dns/form/dns_aaaa.tform.php @@ -152,7 +152,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_alias.tform.php b/interface/web/dns/form/dns_alias.tform.php index 55833b7ec73f4136980d335b55db4a7f65ec9dca..0e82ee6da26a7a8580b2c98f9c0ec76d51312178 100644 --- a/interface/web/dns/form/dns_alias.tform.php +++ b/interface/web/dns/form/dns_alias.tform.php @@ -170,7 +170,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_cname.tform.php b/interface/web/dns/form/dns_cname.tform.php index d04c1d01aff18bf82fffe94ec213e74123684de5..290e83f54bda6b1f5d3cafde83dc02c34109c7ae 100644 --- a/interface/web/dns/form/dns_cname.tform.php +++ b/interface/web/dns/form/dns_cname.tform.php @@ -168,7 +168,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_dkim.tform.php b/interface/web/dns/form/dns_dkim.tform.php index 550255da4639827709946ecb2416c99cd9cf519e..d47a622b0d1d0370fcb2ed6bd52a1e1a738b8a13 100644 --- a/interface/web/dns/form/dns_dkim.tform.php +++ b/interface/web/dns/form/dns_dkim.tform.php @@ -148,7 +148,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_dmarc.tform.php b/interface/web/dns/form/dns_dmarc.tform.php index a1ecaa40c80ccffe2050d6a45a20fd46e3b0e446..625fddc98c604d289938bfc85fca6a00c2ea7829 100644 --- a/interface/web/dns/form/dns_dmarc.tform.php +++ b/interface/web/dns/form/dns_dmarc.tform.php @@ -154,7 +154,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // End Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_dname.tform.php b/interface/web/dns/form/dns_dname.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..c78f2dcae03cc7f511a7dbdf54b407234e372f6a --- /dev/null +++ b/interface/web/dns/form/dns_dname.tform.php @@ -0,0 +1,178 @@ +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ +global $app; + +$form["title"] = "DNS DNAME"; +$form["description"] = ""; +$form["name"] = "dns_dname"; +$form["action"] = "dns_dname_edit.php"; +$form["db_table"] = "dns_rr"; +$form["db_table_idx"] = "id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "dns"; +$form["list_default"] = "dns_a_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['dns'] = array ( + 'title' => "DNS DNAME", + 'width' => 100, + 'template' => "templates/dns_dname_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => @$app->functions->intval($_REQUEST["zone"]), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\*\_]{0,255}$/', + 'errmsg'=> 'name_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'DNAME', + 'value' => '', + 'width' => '5', + 'maxlength' => '5' + ), + 'data' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'data_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{1,255}$/', + 'errmsg'=> 'data_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + /* + 'aux' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + */ + 'ttl' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), + 'default' => '3600', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + 'value' => array(0 => 'N', 1 => 'Y') + ), + 'stamp' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'serial' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + //################################# + // END Datatable fields + //################################# + ) +); + + + +?> diff --git a/interface/web/dns/form/dns_ds.tform.php b/interface/web/dns/form/dns_ds.tform.php index fe8528f9c8951ff33ee0560f95b562941bcad8c3..04ee9a1f0bf0e0134835f13e11f78a7212590eb7 100644 --- a/interface/web/dns/form/dns_ds.tform.php +++ b/interface/web/dns/form/dns_ds.tform.php @@ -152,7 +152,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_hinfo.tform.php b/interface/web/dns/form/dns_hinfo.tform.php index 76c8c79dc0f66cac2787aaeaaf977c134aadf35f..972a07dff847883589258e531b17f727c642c19b 100644 --- a/interface/web/dns/form/dns_hinfo.tform.php +++ b/interface/web/dns/form/dns_hinfo.tform.php @@ -160,7 +160,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_loc.tform.php b/interface/web/dns/form/dns_loc.tform.php index 5749a866b23510f7e210336bcb60c59fe2ed241d..37df8b24c94ecd13372b168b63b3f43a22663fea 100644 --- a/interface/web/dns/form/dns_loc.tform.php +++ b/interface/web/dns/form/dns_loc.tform.php @@ -157,7 +157,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_mx.tform.php b/interface/web/dns/form/dns_mx.tform.php index 9aace37ae7858a9b2197e320c70a00182578e45a..3681c1a67a38bac10dd2ae9edba5d4ff40f4bba0 100644 --- a/interface/web/dns/form/dns_mx.tform.php +++ b/interface/web/dns/form/dns_mx.tform.php @@ -169,7 +169,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_naptr.tform.php b/interface/web/dns/form/dns_naptr.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..24531dba2c4e8cf3165bb1cb36484acbca2b5f54 --- /dev/null +++ b/interface/web/dns/form/dns_naptr.tform.php @@ -0,0 +1,174 @@ +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ +global $app; + +$form["title"] = "DNS NAPTR"; +$form["description"] = ""; +$form["name"] = "dns_naptr"; +$form["action"] = "dns_naptr_edit.php"; +$form["db_table"] = "dns_rr"; +$form["db_table_idx"] = "id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "dns"; +$form["list_default"] = "dns_a_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['dns'] = array ( + 'title' => "DNS NAPTR", + 'width' => 100, + 'template' => "templates/dns_naptr_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => @$app->functions->intval($_REQUEST["zone"]), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^((\*|[a-zA-Z0-9\-_]{1,255})(\.[a-zA-Z0-9\-_]{1,255})*\.?)?$/', + 'errmsg'=> 'name_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '1024' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'NAPTR', + 'value' => '', + 'width' => '5', + 'maxlength' => '5' + ), + 'data' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( + 0 => array ( + 'type' => 'NOTEMPTY', + 'errmsg'=> 'data_error_empty'), + 1 => array ( + 'type' => 'REGEX', + // matching: 'pref "flags" "service" "regexp" replacement.' + 'regex' => '/^\s*(\d+)\s+"([a-zA-Z0-9]*)"\s+"([^"]*)"\s+"(.*)"\s+([^\s]*\.)\s*$/', + 'errmsg'=> 'naptr_error_regex'), + ), + 'default' => '100 "" "" "" .', + 'value' => '', + 'width' => '30', + 'maxlength' => '1024' + ), + 'aux' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '100', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'ttl' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), + 'default' => '3600', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + 'value' => array(0 => 'N', 1 => 'Y') + ), + 'stamp' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'serial' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + //################################# + // END Datatable fields + //################################# + ) +); + + + +?> diff --git a/interface/web/dns/form/dns_ns.tform.php b/interface/web/dns/form/dns_ns.tform.php index e20a7892bfce61b2ed904f7fcfe782c9ca7c41f9..fdfb92b54fe13aeacbf786e63068ec6e9e680e7a 100644 --- a/interface/web/dns/form/dns_ns.tform.php +++ b/interface/web/dns/form/dns_ns.tform.php @@ -168,7 +168,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_ptr.tform.php b/interface/web/dns/form/dns_ptr.tform.php index 4cc0462522e0fc4e42aff1f28afbe2f830b694c4..cf505777644797d334c1107181fd4435e1cc63b0 100644 --- a/interface/web/dns/form/dns_ptr.tform.php +++ b/interface/web/dns/form/dns_ptr.tform.php @@ -168,7 +168,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_rp.tform.php b/interface/web/dns/form/dns_rp.tform.php index 5f4610a45bb397a247078ad08404c3e7319233c9..fc85ad98e815befffe2d8a02fa3953d78aa70e2a 100644 --- a/interface/web/dns/form/dns_rp.tform.php +++ b/interface/web/dns/form/dns_rp.tform.php @@ -161,7 +161,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_slave.tform.php b/interface/web/dns/form/dns_slave.tform.php index 2f287dbfd7a291a7788a00be23c62514290d0818..55e085861a128c37e24c87a3dc94a75a476e70a2 100644 --- a/interface/web/dns/form/dns_slave.tform.php +++ b/interface/web/dns/form/dns_slave.tform.php @@ -96,7 +96,7 @@ $form["tabs"]['dns_slave'] = array ( 'errmsg'=> 'origin_error_unique'), */ 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,30}[\.]{0,1}$/', + 'regex' => '/^[a-zA-Z0-9\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,63}[\.]{0,1}$/', 'errmsg'=> 'origin_error_regex'), ), 'default' => '', @@ -144,7 +144,7 @@ $form["tabs"]['dns_slave'] = array ( 'value' => array(0 => 'N', 1 => 'Y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_soa.tform.php b/interface/web/dns/form/dns_soa.tform.php index 6fab657baac1f601aab737bcd446d7c0e6e43329..cf0d143916c5fe2679777d1756ec96089bac9105 100644 --- a/interface/web/dns/form/dns_soa.tform.php +++ b/interface/web/dns/form/dns_soa.tform.php @@ -95,7 +95,7 @@ $form["tabs"]['dns_soa'] = array ( 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'origin_error_unique'), 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,30}[\.]{0,1}$/', + 'regex' => '/^[a-zA-Z0-9\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,63}[\.]{0,1}$/', 'errmsg'=> 'origin_error_regex'), ), 'default' => '', @@ -289,7 +289,7 @@ $form["tabs"]['dns_soa'] = array ( 'maxlength' => '10000' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -304,7 +304,7 @@ $form["tabs"]['dns_records'] = array ( //################################# //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ), 'plugins' => array ( diff --git a/interface/web/dns/form/dns_spf.tform.php b/interface/web/dns/form/dns_spf.tform.php index ea2cf8310c8310477cb98365d9a29ed8c3dc259a..53081b7ccabdf11b10d674abcb3cde1afe5260e4 100644 --- a/interface/web/dns/form/dns_spf.tform.php +++ b/interface/web/dns/form/dns_spf.tform.php @@ -86,7 +86,7 @@ $form["tabs"]['dns'] = array ( 'type' => 'TOLOWER') ), 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_]{0,255}$/', + 'regex' => '/^(\*\.|[a-zA-Z0-9\.\-\_]){0,255}$/', 'errmsg'=> 'name_error_regex'), ), 'default' => '', @@ -154,7 +154,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // End Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_srv.tform.php b/interface/web/dns/form/dns_srv.tform.php index ee0674fd1931318ab95e1809e20075eab3e10150..5d1c1066957057303f0e3981e27c6f0dee4728a7 100644 --- a/interface/web/dns/form/dns_srv.tform.php +++ b/interface/web/dns/form/dns_srv.tform.php @@ -159,7 +159,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_sshfp.tform.php b/interface/web/dns/form/dns_sshfp.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..6a71c6da782812e7876e05fc864764f37a41834f --- /dev/null +++ b/interface/web/dns/form/dns_sshfp.tform.php @@ -0,0 +1,165 @@ +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ +global $app; + +$form["title"] = "DNS SSHFP Record"; +$form["description"] = ""; +$form["name"] = "dns_txt"; +$form["action"] = "dns_sshfp_edit.php"; +$form["db_table"] = "dns_rr"; +$form["db_table_idx"] = "id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "dns"; +$form["list_default"] = "dns_a_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['dns'] = array ( + 'title' => "DNS SSHFP", + 'width' => 100, + 'template' => "templates/dns_sshfp_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => @$app->functions->intval($_REQUEST["zone"]), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(\*\.|[a-zA-Z0-9\.\-\_]){0,255}$/', + 'errmsg'=> 'name_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'SSHFP', + 'value' => '', + 'width' => '5', + 'maxlength' => '5' + ), + 'data' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( + 0 => array ( + 'type' => 'NOTEMPTY', + 'errmsg'=> 'data_error_empty' + ), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ttl' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), + 'default' => '3600', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + 'value' => array(0 => 'N', 1 => 'Y') + ), + 'stamp' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'serial' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + //################################# + // END Datatable fields + //################################# + ) +); + +if($_SESSION["s"]["user"]["typ"] == 'admin') { + unset($form["tabs"]['dns']['fields']['data']['validators']); + $form["tabs"]['dns']['fields']['data']['validators'][0]['type'] = 'NOTEMPTY'; + $form["tabs"]['dns']['fields']['data']['validators'][0]['errmsg'] = 'data_error_empty'; + $form["tabs"]['dns']['fields']['data']['maxlength'] = 512; +} +?> diff --git a/interface/web/dns/form/dns_template.tform.php b/interface/web/dns/form/dns_template.tform.php index 2c53f32ec11195b6178022497f861ad4d33fd7ae..5655c3e4cd77933adf1e5ef2160ee08ad4125cc6 100644 --- a/interface/web/dns/form/dns_template.tform.php +++ b/interface/web/dns/form/dns_template.tform.php @@ -106,7 +106,7 @@ $form["tabs"]['template'] = array ( 'value' => array(0 => 'N', 1 => 'Y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_tlsa.tform.php b/interface/web/dns/form/dns_tlsa.tform.php index ef6f2a05b16a4028d2334ecd08a380a92778d45a..b86252cc31019113574455a372067e4e71d6a458 100644 --- a/interface/web/dns/form/dns_tlsa.tform.php +++ b/interface/web/dns/form/dns_tlsa.tform.php @@ -148,7 +148,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/form/dns_txt.tform.php b/interface/web/dns/form/dns_txt.tform.php index 3aee920dd9e82f2b1ce433a271a167ecfe29fa58..564e26aa186ad14bd17d39bc41c04b164e5878d5 100644 --- a/interface/web/dns/form/dns_txt.tform.php +++ b/interface/web/dns/form/dns_txt.tform.php @@ -165,7 +165,7 @@ $form["tabs"]['dns'] = array ( 'maxlength' => '10' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/dns/lib/lang/ar_dns_a.lng b/interface/web/dns/lib/lang/ar_dns_a.lng index 7543672a9482becb158ccc74f22d896e6415ceed..577bb47d5b7211129dedb2eea6e0072fd3843187 100644 --- a/interface/web/dns/lib/lang/ar_dns_a.lng +++ b/interface/web/dns/lib/lang/ar_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_aaaa.lng b/interface/web/dns/lib/lang/ar_dns_aaaa.lng index 0b7e38ac651ad47bbf8848947f3e1f06810e83f5..da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39 100644 --- a/interface/web/dns/lib/lang/ar_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/ar_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_caa.lng b/interface/web/dns/lib/lang/ar_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..973a97ceb6870404d7c8107002e1738b373362a0 100644 --- a/interface/web/dns/lib/lang/ar_dns_caa.lng +++ b/interface/web/dns/lib/lang/ar_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ar_dns_cname.lng b/interface/web/dns/lib/lang/ar_dns_cname.lng index 5f8363aaa81a24d6e8bdcefa595e693fb223fa2a..382397abf7194ea1dcc92ad7fa1162856e65e197 100644 --- a/interface/web/dns/lib/lang/ar_dns_cname.lng +++ b/interface/web/dns/lib/lang/ar_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Target hostname empty'; $wb['data_error_regex'] = 'Target hostname format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_dname.lng b/interface/web/dns/lib/lang/ar_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..483e1d14b5f25a99ab0170d14bb77d9f49e259a6 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Target Hostname'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Target hostname empty'; +$wb['data_error_regex'] = 'Target hostname format invalid'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_import.lng b/interface/web/dns/lib/lang/ar_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/ar_dns_import.lng +++ b/interface/web/dns/lib/lang/ar_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_naptr.lng b/interface/web/dns/lib/lang/ar_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_soa.lng b/interface/web/dns/lib/lang/ar_dns_soa.lng index 4e93c5b41c13dd95e20cef40dca43881c7f14cb5..c9721cebc0e2de6bb770816a544e0b3b8dd3863d 100644 --- a/interface/web/dns/lib/lang/ar_dns_soa.lng +++ b/interface/web/dns/lib/lang/ar_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list)'; $wb['active_txt'] = 'Active'; diff --git a/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_spf.lng b/interface/web/dns/lib/lang/ar_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/ar_dns_spf.lng +++ b/interface/web/dns/lib/lang/ar_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_sshfp.lng b/interface/web/dns/lib/lang/ar_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_a.lng b/interface/web/dns/lib/lang/bg_dns_a.lng index e397d9774efceae21c7cb2219e0a66efedc704c8..6b4950722bcc2d8e75f835e5a5aef62ecfeb6331 100644 --- a/interface/web/dns/lib/lang/bg_dns_a.lng +++ b/interface/web/dns/lib/lang/bg_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Полето за хоÑÑ‚ име е празно.'; $wb['name_error_regex'] = 'Избраното име на хоÑÑ‚ е в грешен формат.'; $wb['data_error_empty'] = 'Полето за IP-адреÑа е празно'; $wb['ip_error_wrong'] = 'Формата на IP-адреÑа е грешен'; -$wb['data_error_duplicate'] = 'Дублиран A-ЗапиÑ'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_aaaa.lng b/interface/web/dns/lib/lang/bg_dns_aaaa.lng index 37ad45726f0aecfc33d70248b4d55d6cd9457d61..27062fce229812a6e24dbd7d557f2f1de8ba6128 100644 --- a/interface/web/dns/lib/lang/bg_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/bg_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Вие нÑмате право да добавÑте за $wb['name_error_empty'] = 'Полето Ñ Ð¸Ð¼ÐµÐ¹Ð»Ð° е празно.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_caa.lng b/interface/web/dns/lib/lang/bg_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..973a97ceb6870404d7c8107002e1738b373362a0 100644 --- a/interface/web/dns/lib/lang/bg_dns_caa.lng +++ b/interface/web/dns/lib/lang/bg_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/bg_dns_cname.lng b/interface/web/dns/lib/lang/bg_dns_cname.lng index d7de1f0c01172ebe31e221bf78b3bf922a305ad9..4705cd73d8ac1327e3a5f160d035ea88e40935bb 100644 --- a/interface/web/dns/lib/lang/bg_dns_cname.lng +++ b/interface/web/dns/lib/lang/bg_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Полето Ñ Ð¸Ð¼ÐµÐ¹Ð»Ð° е празно.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Target hostname empty'; $wb['data_error_regex'] = 'Target hostname format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_dname.lng b/interface/web/dns/lib/lang/bg_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..5fc67ceaeb4a9228278bc7ca3b9f4f52ec465bdc --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Target Hostname'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'МакÑималниÑÑ‚ брой запиÑи за DNS за твоÑÑ‚ акаунт е доÑтигнат'; +$wb['no_zone_perm'] = 'Вие намате права да добавÑте Ð·Ð°Ð¿Ð¸Ñ Ð² тази DNS зона.'; +$wb['name_error_empty'] = 'Полето Ñ Ð¸Ð¼ÐµÐ¹Ð»Ð° е празно.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Target hostname empty'; +$wb['data_error_regex'] = 'Target hostname format invalid'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_import.lng b/interface/web/dns/lib/lang/bg_dns_import.lng index 848a4f933bc8d24a156996f4b20ddc96acd24b95..7ff3498c44d0847282b2755823bc1270e61964f9 100644 --- a/interface/web/dns/lib/lang/bg_dns_import.lng +++ b/interface/web/dns/lib/lang/bg_dns_import.lng @@ -13,4 +13,13 @@ $wb['no_file_uploaded_error'] = 'Ðе е качен файла Ñ Ð·Ð¾Ð½Ð°Ñ‚Ð°'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_naptr.lng b/interface/web/dns/lib/lang/bg_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_spf.lng b/interface/web/dns/lib/lang/bg_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/bg_dns_spf.lng +++ b/interface/web/dns/lib/lang/bg_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_sshfp.lng b/interface/web/dns/lib/lang/bg_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/br.lng b/interface/web/dns/lib/lang/br.lng index b45d1575af67fd22a874e0fb3074a343485c90c4..9228373fdf0b75dc3bcb9e1959b59893a9724390 100644 --- a/interface/web/dns/lib/lang/br.lng +++ b/interface/web/dns/lib/lang/br.lng @@ -1,4 +1,5 @@ <?php + $wb['DNS'] = 'DNS'; $wb['Zones'] = 'Zonas'; $wb['DNS A'] = 'A'; @@ -9,14 +10,15 @@ $wb['DNS mx'] = 'MX'; $wb['DNS ns'] = 'NS'; $wb['DNS ptr'] = 'PTR'; $wb['DNS RP'] = 'RP'; -$wb['DNS Zone'] = 'Zona'; +$wb['DNS Zone'] = 'ZONA'; $wb['Records'] = 'Registros'; $wb['DNS SRV'] = 'SRV'; $wb['DNS TXT Record'] = 'Registro TXT'; $wb['DNS TXT'] = 'TXT'; -$wb['DNS Wizard'] = 'Assistente dns'; -$wb['Add DNS Zone'] = 'Adicionar nova zona'; -$wb['Import Zone File'] = 'Importar arquivo de zona'; +$wb['DNS Wizard'] = 'Assistente DNS'; +$wb['Add DNS Zone'] = 'Adicionar zona dns'; $wb['Templates'] = 'Gabaritos'; +$wb['Secondary DNS'] = 'DNS secundário'; $wb['Secondary Zones'] = 'Zonas secundárias'; +$wb['Import Zone File'] = 'Importar arquivo de zona'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_a.lng b/interface/web/dns/lib/lang/br_dns_a.lng index 93704528e2e927806992e5e3999eda8747a0bd1c..deb66ec97a1ebcb9b0bb6466670d659a35169493 100644 --- a/interface/web/dns/lib/lang/br_dns_a.lng +++ b/interface/web/dns/lib/lang/br_dns_a.lng @@ -1,17 +1,17 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; $wb['data_txt'] = 'Endereço IP'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; $wb['data_error_empty'] = 'Endereço IP está em branco.'; -$wb['ip_error_wrong'] = 'Endereço IP é inválido.'; -$wb['data_error_duplicate'] = 'Registro A duplicado.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['ip_error_wrong'] = 'Endereço IP inválido.'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_a_list.lng b/interface/web/dns/lib/lang/br_dns_a_list.lng index 0abaf5493d33373e9a5a84b2b915b656c92f8e79..6387c14cbee7d238e8219731bc74d3f2756e9eb9 100644 --- a/interface/web/dns/lib/lang/br_dns_a_list.lng +++ b/interface/web/dns/lib/lang/br_dns_a_list.lng @@ -1,14 +1,14 @@ <?php -$wb['list_head_txt'] = 'Registro (A)'; +$wb['list_head_txt'] = 'Registro A'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; $wb['name_txt'] = 'Nome'; -$wb['data_txt'] = 'Data'; +$wb['data_txt'] = 'Dados'; $wb['aux_txt'] = 'Prioridade'; -$wb['type_txt'] = 'Tipo'; $wb['ttl_txt'] = 'TTL'; -$wb['add_new_record_txt'] = 'Adicionar um novo registro (A)'; +$wb['type_txt'] = 'Tipo'; +$wb['add_new_record_txt'] = 'Adicionar novo registro A'; $wb['page_txt'] = 'Página'; $wb['page_of_txt'] = 'de'; $wb['delete_confirmation'] = 'Tem certeza que deseja remover este registro?'; diff --git a/interface/web/dns/lib/lang/br_dns_aaaa.lng b/interface/web/dns/lib/lang/br_dns_aaaa.lng index 5f0b4632759691e11ebaf44987c04ac504096891..b4274c7b51abe56bf7740c396af7ba3bf3dcead5 100644 --- a/interface/web/dns/lib/lang/br_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/br_dns_aaaa.lng @@ -1,16 +1,17 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; $wb['data_txt'] = 'Endereço IPv6'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'O nome está em branco.'; -$wb['name_error_regex'] = 'O nome é inválido.'; -$wb['data_error_empty'] = 'Endereço IP está em branco.'; -$wb['ip_error_wrong'] = 'Endereço IP é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'Endereço IPv6 está em branco.'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; +$wb['ip_error_wrong'] = 'O endereço IPv6 possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_alias.lng b/interface/web/dns/lib/lang/br_dns_alias.lng index b303a662ba08a49664ca1b4c29f4ad35abdc447d..46821ee1ae5aeb548a3bc926b0d86d5d82245348 100644 --- a/interface/web/dns/lib/lang/br_dns_alias.lng +++ b/interface/web/dns/lib/lang/br_dns_alias.lng @@ -1,16 +1,16 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Servidor de destino'; +$wb['data_txt'] = 'Alvo do host'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'O nome está em branco.'; -$wb['name_error_regex'] = 'O nome é inválido.'; -$wb['data_error_empty'] = 'O servidor de destino está em branco.'; -$wb['data_error_regex'] = 'O servidor de destino é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'O alvo do host está em branco.'; +$wb['data_error_regex'] = 'O formato do alvo do host é inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_caa.lng b/interface/web/dns/lib/lang/br_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..16bf267862e92e1422405e6c95cc221d6855864d 100644 --- a/interface/web/dns/lib/lang/br_dns_caa.lng +++ b/interface/web/dns/lib/lang/br_dns_caa.lng @@ -1,19 +1,19 @@ <?php -$wb['ca_list_txt'] = 'Certifiction Authority'; -$wb['ca_domain_txt'] = 'Domain'; -$wb['ca_hostname_txt'] = 'Additional Hostnamen'; -$wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all hostnames)'; -$wb['ca_options_txt'] = 'Additional Options'; -$wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; -$wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_list_txt'] = 'Autoridade Certificadora - CA'; +$wb['ca_domain_txt'] = 'DomÃnio'; +$wb['ca_hostname_txt'] = 'Nome de hosts adicionais'; +$wb['ca_hostname_note_txt'] = '(separado por vÃrgulas - em branco para todos os hosts)'; +$wb['ca_options_txt'] = 'Opções adicionais'; +$wb['ca_options_note_txt'] = 'solicitado pela CA (lista separado por vÃrgulas)'; +$wb['ca_wildcard_txt'] = 'Usar curingas SSL'; +$wb['ca_critical_txt'] = 'Verificação estrita'; $wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['select_txt'] = 'Select Certifiction Authority'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['ca_error_txt'] = 'No Certifiction Authority selected'; -$wb['caa_exists_error'] = 'CAA Record already exists'; -$wb['ca_option_error'] = 'Invalid format for additional options; OPTION=VALUE'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['active_txt'] = 'Ativo'; +$wb['select_txt'] = 'Selecionar autoridade certificadora'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['ca_error_txt'] = 'Nenhuma autoridade certificadora selecionada.'; +$wb['caa_exists_error'] = 'Registro CAA já existe.'; +$wb['ca_option_error'] = 'Formato inválido para opções adicionais; OPÇÃO=VALOR'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_cname.lng b/interface/web/dns/lib/lang/br_dns_cname.lng index cbba03cdaf92825927c668c10db0abf4b06748ca..4a8f98cb02a02737d423369c4a4ebfc0b4e44fd8 100644 --- a/interface/web/dns/lib/lang/br_dns_cname.lng +++ b/interface/web/dns/lib/lang/br_dns_cname.lng @@ -1,17 +1,17 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Nome de destino'; +$wb['data_txt'] = 'Alvo do host'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Nome de destino está em branco.'; -$wb['data_error_regex'] = 'Nome de destino é inválido.'; -$wb['data_error_duplicate'] = 'Registros A ou CNAME duplicados.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'O alvo do host está em branco.'; +$wb['data_error_regex'] = 'O alvo do host possui formato inválido.'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_dkim.lng b/interface/web/dns/lib/lang/br_dns_dkim.lng index 1ec851a216b80324f451df216e096d157d032fa3..a24976194d6ea426bcf597342dc3cccca7fdea29 100644 --- a/interface/web/dns/lib/lang/br_dns_dkim.lng +++ b/interface/web/dns/lib/lang/br_dns_dkim.lng @@ -1,13 +1,13 @@ <?php -$wb['public_key_txt'] = 'Chave pública'; +$wb['public_key_txt'] = 'Chave Pública'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['record_exists_txt'] = 'Registro dns já existe.'; -$wb['dkim_disabled_txt'] = 'DKIM desabilitado para este domÃnio.'; +$wb['record_exists_txt'] = 'Este registro dns já existe.'; +$wb['dkim_disabled_txt'] = 'Chave DKIM está desabilitada para este domÃnio de e-mail.'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; $wb['selector_txt'] = 'Seletor DKIM'; -$wb['data_error_empty'] = 'Public-Key missing'; -$wb['dkim_selector_empty_txt'] = 'DKIM-Selector is empty'; +$wb['data_error_empty'] = 'Chave pública ausente.'; +$wb['dkim_selector_empty_txt'] = 'Seletor DKIM está em branco.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng index 5b7201075fbd364533109bf712812525ea1142c5..bacd3af25fc6b3869f6acadf167713b1296a00cc 100644 --- a/interface/web/dns/lib/lang/br_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng @@ -1,50 +1,50 @@ <?php $wb['data_txt'] = 'Registro DMARC'; $wb['domain_txt'] = 'DomÃnio'; -$wb['dmarc_policy_txt'] = 'PolÃtica de recepção de e-mails'; -$wb['dmarc_policy_note_txt'] = 'Como os \"ISPs\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; -$wb['dmarc_policy_none_txt'] = 'não fazer nada'; +$wb['dmarc_policy_txt'] = 'PolÃtica para recepção de e-mails'; +$wb['dmarc_policy_note_txt'] = 'Como os ISPs devem manipular as mensagens que falharam para SPF ou DKIM (DMARC).'; +$wb['dmarc_policy_none_txt'] = 'nenhuma'; $wb['dmarc_policy_quarantine_txt'] = 'quarentena'; $wb['dmarc_policy_reject_txt'] = 'rejeitar'; -$wb['dmarc_rua_txt'] = 'Agregrar os dados por endereço'; -$wb['dmarc_rua_note_txt'] = 'Endereços de e-mail para receber relatórios do sistema sobre mensagens com falha e controles DMARC do domÃnio (separados por espaço em branco)'; -$wb['dmarc_ruf_txt'] = 'Relatório forense de dados por endereço'; -$wb['dmarc_ruf_note_txt'] = 'Endereços de e-mail para receber amostras de mensagens com falha e controles DMARC do domÃnio (separados por espaço em branco)'; +$wb['dmarc_rua_txt'] = 'Relatório de dados de endereços sumarizado'; +$wb['dmarc_rua_note_txt'] = 'Endereços de e-mail para receber relatórios dos ISPs sobre mensagens de falhas DMARC para este domÃnio (separado por espaço).'; +$wb['dmarc_ruf_txt'] = 'Endereço para relatório de dados forense'; +$wb['dmarc_ruf_note_txt'] = 'Endereços de e-mail para receber mensagens simples sobre falhas DMARC para este domÃnio (separado por espaço).'; $wb['dmarc_fo_txt'] = 'Opções de relatório forense'; -$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \"pass\".'; -$wb['dmarc_fo1_txt'] = 'Gerar relatório se algum mecanismo falhar.'; -$wb['dmarc_fod_txt'] = 'Gerar relatório se assinatura DKIM falhar na verificação.'; -$wb['dmarc_fos_txt'] = 'Gerar relatório se o SPF falhar.'; -$wb['dmarc_adkim_txt'] = 'Parametrização do identificador DKIM'; -$wb['dmarc_adkim_note_txt'] = 'Modo \"strict\" exige combinação exata entre o DKIM do domÃnio e e-mails'; +$wb['dmarc_fo0_txt'] = 'Gerar relatório se todos os mecanismos de autenticação falharem em produzir um resultado \'pass\' do DMARC.'; +$wb['dmarc_fo1_txt'] = 'Gerar relatório se qualquer mecanismo falhar.'; +$wb['dmarc_fod_txt'] = 'Gerar relatório se a assinatura DKIM falhar na verificação.'; +$wb['dmarc_fos_txt'] = 'Gerar relatório se a consulta SPF falhar.'; +$wb['dmarc_adkim_txt'] = 'Alinhamento do identificador DKIM'; +$wb['dmarc_adkim_note_txt'] = '\'strict\' requer combinação exata entre DKIM do domÃnio e oremetente do e-mail'; $wb['dmarc_adkim_r_txt'] = 'relaxed'; $wb['dmarc_adkim_s_txt'] = 'strict'; -$wb['dmarc_aspf_txt'] = 'Parametrização do identificador SPF'; -$wb['dmarc_aspf_note_txt'] = 'Modo \"strict\" exige combinação exata entre o SPF do domÃnio e e-mails'; +$wb['dmarc_aspf_txt'] = 'Alinhamento do identificador SPF'; +$wb['dmarc_aspf_note_txt'] = '\'strict\' requer combinação exata o SPF do domÃnio e oremetente do e-mail'; $wb['dmarc_aspf_r_txt'] = 'relaxed'; $wb['dmarc_aspf_s_txt'] = 'strict'; -$wb['dmarc_rf_txt'] = 'Formatação do relatório'; -$wb['dmarc_rf_afrf_txt'] = 'Falha de autenticação para formatação do relatório'; -$wb['dmarc_rf_iodef_txt'] = 'Formato da descrição de troca objeto de incidentes'; -$wb['dmarc_pct_txt'] = 'Aplicar polÃticas para este percentual'; -$wb['dmarc_pct_note_txt'] = '% (100 padrão). Percentual de mensagens do domÃnio que serão verificadas.'; -$wb['dmarc_ri_txt'] = 'Intervalo de relatórios'; -$wb['dmarc_ri_note_txt'] = 'Segundos (padrão=86400). Valor em segundos que os relatórios de agregação serão gerados (86400 representa 1 dia).'; -$wb['dmarc_sp_txt'] = 'PolÃticas de subdomÃnio (padrão é o mesmo do domÃnio).'; +$wb['dmarc_rf_txt'] = 'Formato do Relatório'; +$wb['dmarc_rf_afrf_txt'] = 'Formato do relatório de falhas de autenticação'; +$wb['dmarc_rf_iodef_txt'] = 'Formato da descrição de incidentes de objetos de troca'; +$wb['dmarc_pct_txt'] = 'Aplicar polÃtica para este percentual'; +$wb['dmarc_pct_note_txt'] = '% (100 padrão). Percentual de mensagens para este domÃnio a serem verificadas.'; +$wb['dmarc_ri_txt'] = 'Intervalo de geração do relatório'; +$wb['dmarc_ri_note_txt'] = 'Segundos (padrão=86400). Intervalo, em segundos, para gerar relatórios sumarizados (86400 equivale a 1 dia).'; +$wb['dmarc_sp_txt'] = 'PolÃtica para subdomÃnio (padrão é o mesmo do domÃnio).'; $wb['dmarc_sp_same_txt'] = 'mesmo do domÃnio'; -$wb['dmarc_sp_none_txt'] = 'nenhum'; +$wb['dmarc_sp_none_txt'] = 'nenhuma'; $wb['dmarc_sp_quarantine_txt'] = 'quarentena'; $wb['dmarc_sp_reject_txt'] = 'rejeitar'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['dmarc_policy_error_txt'] = 'Somente a polÃtica \"nenhum\" é permitida para e-mails sem assinatura DKIM.'; +$wb['dmarc_policy_error_txt'] = 'A polÃtica \'nenhuma\' é permitida apenas para e-mails sem assinatura DKIM.'; $wb['dmarc_no_dkim_txt'] = 'Nenhum registro DKIM ativo.'; $wb['dmarc_no_spf_txt'] = 'Nenhum registro SPF ativo.'; -$wb['dmarc_more_spf_txt'] = 'Mais de um registro SPF ativo.'; -$wb['dmarc_invalid_email_txt'] = 'e-mail é inválido.'; -$wb['dmarc_empty_txt'] = 'Registro DMARC em branco - especifique ao menos um'; -$wb['record_exists_txt'] = 'Registro dns já existe.'; -$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['dmarc_more_spf_txt'] = 'Existe mais de um registro SPF ativo'; +$wb['dmarc_invalid_email_txt'] = 'Endereço de e-mail inválido'; +$wb['dmarc_empty_txt'] = 'Registro DMARC em branco - especifique ao menos uma opção'; +$wb['record_exists_txt'] = 'Registro dns já existe'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['ttl_range_error'] = 'TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_dname.lng b/interface/web/dns/lib/lang/br_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..c2ba45f86e55288f2bbb55935178e76f5969b16e --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Servidor'; +$wb['zone_txt'] = 'Zona'; +$wb['name_txt'] = 'Nome do host'; +$wb['type_txt'] = 'Tipo'; +$wb['data_txt'] = 'Alvo do host'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Ativo'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'O alvo do host está em branco.'; +$wb['data_error_regex'] = 'O alvo do host possui formato inválido.'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_ds.lng b/interface/web/dns/lib/lang/br_dns_ds.lng index 38b2183ead3e3f6dfdf5cc1d6924a1d84c6d70eb..843338a943860d125ab3d4b265b4ecaada39e8b9 100644 --- a/interface/web/dns/lib/lang/br_dns_ds.lng +++ b/interface/web/dns/lib/lang/br_dns_ds.lng @@ -1,17 +1,18 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; $wb['data_txt'] = 'Dados'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Dados está em branco.'; -$wb['data_error_regex'] = 'Dados é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; -$wb['invalid_type_ds'] = 'Registro DS é inválido.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'O campo texto (Text) em branco'; +$wb['data_error_regex'] = 'O campo texto (Text) possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; +$wb['invalid_type_ds'] = 'O registro DS possui formato inválido.'; + ?> diff --git a/interface/web/dns/lib/lang/br_dns_hinfo.lng b/interface/web/dns/lib/lang/br_dns_hinfo.lng index bf7b7f33d403ac2bea608762fb1a1f9199bbce63..e7bdfa2f4c8debb543cb64a18260caa45a5ba18f 100644 --- a/interface/web/dns/lib/lang/br_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/br_dns_hinfo.lng @@ -1,16 +1,16 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Servidor'; +$wb['data_txt'] = 'Informação do host'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'O nome está em branco.'; -$wb['name_error_regex'] = 'O nome é inválido.'; -$wb['data_error_empty'] = 'Endereço IP está em branco.'; -$wb['data_error_regex'] = 'Endereço IP é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'Informação do host está em branco.'; +$wb['data_error_regex'] = 'Informação do host possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_import.lng b/interface/web/dns/lib/lang/br_dns_import.lng index e26b20a3f32db09759236488cc568bdab5cd5a2e..8bcc0ddff4241c062e01afe7c70eb8a75f3e20f3 100644 --- a/interface/web/dns/lib/lang/br_dns_import.lng +++ b/interface/web/dns/lib/lang/br_dns_import.lng @@ -1,16 +1,25 @@ <?php +$wb['zone_file_import_txt'] = 'Importar arquivo de zona'; $wb['server_id_txt'] = 'Servidor'; $wb['client_txt'] = 'Cliente'; -$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_save_txt'] = 'Importar arquivo de zona'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['domain_txt'] = 'DomÃnio'; -$wb['zone_file_successfully_imported_txt'] = 'O arquivo de zona foi importado com sucesso!'; -$wb['error_no_valid_zone_file_txt'] = 'Este arquivo não parece ser um arquivo de zona válido!'; -$wb['zonefile_to_import_txt'] = 'Arquivo de zona'; -$wb['domain_field_desc_txt'] = 'Pode ficar em branco caso o domÃnio é o mesmo nome do arquivo ou faz parte do conteúdo do mesmo.'; -$wb['title'] = 'Importar arquivos de zonas'; -$wb['no_file_uploaded_error'] = 'Nenhum arquivo de zona importado.'; -$wb['zone_file_import_txt'] = 'Importar arquivo de zona'; -$wb['error_no_server_id'] = 'Nenhum servidor informado.'; -$wb['error_not_allowed_server_id'] = 'O servidor selecionado não tem permissão para esta conta.'; +$wb['zone_file_successfully_imported_txt'] = 'O arquivo de zona dns foi importado com sucesso!'; +$wb['error_no_valid_zone_file_txt'] = 'Aparentemente este não é um arquivo de zona dns válido!'; +$wb['zonefile_to_import_txt'] = 'Arquivo de Zona'; +$wb['domain_field_desc_txt'] = 'Pode ficar em branco caso o domÃnio seja o mesmo nome do arquivo ou faz parte do conteúdo do mesmo.'; +$wb['title'] = 'Importar arquivo de zona'; +$wb['no_file_uploaded_error'] = 'Nenhum arquivo de zona dns foi carregado.'; +$wb['error_no_server_id'] = 'Nenhum servidor foi informado.'; +$wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido nesta conta.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_loc.lng b/interface/web/dns/lib/lang/br_dns_loc.lng index 838fdcf12b7c1582e56e1f4d240b3b4a8d74ecb7..f84c2af034680dfa53d7cbad289c9b9f94d373e1 100644 --- a/interface/web/dns/lib/lang/br_dns_loc.lng +++ b/interface/web/dns/lib/lang/br_dns_loc.lng @@ -1,16 +1,16 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Dados'; +$wb['data_txt'] = 'Texto'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Upload (pastebin) para MUC'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Dados está em branco.'; -$wb['data_error_regex'] = 'Dados é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'Texto está em branco.'; +$wb['data_error_regex'] = 'Texto possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_mx.lng b/interface/web/dns/lib/lang/br_dns_mx.lng index 30116f16b238fba0686c67dd2b036ec63b03839a..45b721c1a81e1ee076ef864e9180593dfccab5f5 100644 --- a/interface/web/dns/lib/lang/br_dns_mx.lng +++ b/interface/web/dns/lib/lang/br_dns_mx.lng @@ -1,18 +1,18 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Nome do servidor de e-mails'; +$wb['data_txt'] = 'Nome do servidor de e-mail'; $wb['aux_txt'] = 'Prioridade'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Nome do servidor de e-mails está em branco.'; -$wb['data_error_regex'] = 'Nome do servidor de e-mails é inválido.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'O nome do servidor de e-mails está em branco.'; +$wb['data_error_regex'] = 'O nome do servidor de e-mails possui formato inválido.'; $wb['duplicate_mx_record_txt'] = 'Registro MX duplicado.'; -$wb['ttl_range_error'] = 'O ttl minÃmo são 60 segundos.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_naptr.lng b/interface/web/dns/lib/lang/br_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_ns.lng b/interface/web/dns/lib/lang/br_dns_ns.lng index 5b3b03a809852c3e02d03ed1eccf8fc807a44a03..d83d0f7b8a03b27235c39d23ff515179978308db 100644 --- a/interface/web/dns/lib/lang/br_dns_ns.lng +++ b/interface/web/dns/lib/lang/br_dns_ns.lng @@ -3,14 +3,14 @@ $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; $wb['name_txt'] = 'Zona'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Servidor de nomes'; +$wb['data_txt'] = 'Nome do servidor'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Zona está em branco.'; -$wb['name_error_regex'] = 'Zona inválida.'; -$wb['data_error_empty'] = 'Nome está em branco.'; -$wb['data_error_regex'] = 'Nome é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'A zona está em branco.'; +$wb['name_error_regex'] = 'A zona possui formato inválido.'; +$wb['data_error_empty'] = 'Nome do servidor está em branco.'; +$wb['data_error_regex'] = 'Nome do servidor possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_ptr.lng b/interface/web/dns/lib/lang/br_dns_ptr.lng index cfb7eddd7fbc83a4e48e63f913228318568e94bf..b6214a62e86fb20acbd17ee63b6ea4c106e6c8ee 100644 --- a/interface/web/dns/lib/lang/br_dns_ptr.lng +++ b/interface/web/dns/lib/lang/br_dns_ptr.lng @@ -3,14 +3,14 @@ $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; $wb['name_txt'] = 'Nome'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Nome reverso'; +$wb['data_txt'] = 'Nome canônico para o nome do host'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; $wb['name_error_empty'] = 'O nome está em branco.'; -$wb['name_error_regex'] = 'O nome é inválido.'; -$wb['data_error_empty'] = 'Endereço IP está em branco.'; -$wb['data_error_regex'] = 'Endereço IP é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['name_error_regex'] = 'O nome possui formato inválido.'; +$wb['data_error_empty'] = 'O nome canônico está em branco.'; +$wb['data_error_regex'] = 'O nome canônico possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_rp.lng b/interface/web/dns/lib/lang/br_dns_rp.lng index d8f1cad2a5a8a782aaa7795f210c5d44051dd1e4..4f782fb4a025c76155dd304461e3229ed4f1b252 100644 --- a/interface/web/dns/lib/lang/br_dns_rp.lng +++ b/interface/web/dns/lib/lang/br_dns_rp.lng @@ -1,16 +1,16 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Responsável'; +$wb['data_txt'] = 'Responsável técnico'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Responsável está em branco.'; -$wb['data_error_regex'] = 'Responsável é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'Responsável técnico está em branco.'; +$wb['data_error_regex'] = 'Responsável técnico possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_slave.lng b/interface/web/dns/lib/lang/br_dns_slave.lng index 336164442c98fdacca2e39a3d9a82e5c0688c4bc..a71e64c4f282db2a3c8f4f48fe590890e070669f 100644 --- a/interface/web/dns/lib/lang/br_dns_slave.lng +++ b/interface/web/dns/lib/lang/br_dns_slave.lng @@ -1,17 +1,17 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['origin_txt'] = 'Zona dns'; -$wb['ns_txt'] = 'NS'; +$wb['origin_txt'] = 'Zona DNS'; +$wb['secondary_zone_txt'] = 'Zona DNS secundária'; +$wb['ns_txt'] = 'NS (Endereço IP)'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_slave_zone_txt'] = 'O limite de zonas dns secundárias para esta conta foi alcançado.'; $wb['client_txt'] = 'Cliente'; -$wb['xfer_txt'] = 'Permitir transferência da zona para estes IPs (IPs separados por vÃrgulas)'; +$wb['xfer_txt'] = 'Permitir transferência de zonas para <br />Endereço(s) IP(s) (lista de endereços, separados por vÃrgula)'; $wb['server_id_error_empty'] = 'Nenhum servidor selecionado.'; $wb['origin_error_empty'] = 'Zona está em branco.'; -$wb['origin_error_unique'] = 'Já existe um registro igual para esta zona.'; -$wb['origin_error_regex'] = 'Zona inválida.'; -$wb['ns_error_regex'] = 'Registro NS é inválido.'; +$wb['origin_error_unique'] = 'Já existe este registro dns nesta zona.'; +$wb['origin_error_regex'] = 'Zona possui um formato inválido.'; +$wb['ns_error_regex'] = 'O NS possui formato inválido.'; $wb['eg_domain_tld'] = 'ex.: dominio.com.br.'; -$wb['ipv4_form_txt'] = 'Separar múltiplos endereços IP por vÃrgulas'; -$wb['secondary_zone_txt'] = 'Zona dns secundária'; +$wb['ipv4_form_txt'] = 'Separar múltiplos IPs com vÃrgulas.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng index b691471041aa41cbffabf93e298f8da3b68b03b5..9b4c7e07ef08c670b157d97a7dee06afebc937dd 100644 --- a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Zonas dns secundárias'; +$wb['list_head_txt'] = 'Zonas DNS Secundárias'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; -$wb['add_new_record_txt'] = 'Adicionar nova zona'; +$wb['add_new_record_txt'] = 'Adicionar nova zona dns secundária'; $wb['eg_domain_tld'] = 'ex.: dominio.com.br.'; $wb['sys_groupid_txt'] = 'Cliente'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_list.lng b/interface/web/dns/lib/lang/br_dns_slave_list.lng index 5ff54311a823192dab153b52c3bd433be6a0c13d..adf14dfdc7f472792f8d19a9d53f96a67b76697f 100644 --- a/interface/web/dns/lib/lang/br_dns_slave_list.lng +++ b/interface/web/dns/lib/lang/br_dns_slave_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Zonas dns secundárias'; +$wb['list_head_txt'] = 'Zonas secundárias'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; -$wb['add_new_record_txt'] = 'Adicionar nova zona'; +$wb['add_new_record_txt'] = 'Adicionar nova zona dns secundária'; $wb['eg_domain_tld'] = 'ex.: dominio.com.br.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_soa.lng b/interface/web/dns/lib/lang/br_dns_soa.lng index fcad62b44da7ff3311cbe3ed629388d5efaea822..f5385c4706b98e51611e803341ac3ea1a4f35ac4 100644 --- a/interface/web/dns/lib/lang/br_dns_soa.lng +++ b/interface/web/dns/lib/lang/br_dns_soa.lng @@ -2,43 +2,43 @@ $wb['server_id_txt'] = 'Servidor'; $wb['origin_txt'] = 'Zona (SOA)'; $wb['ns_txt'] = 'NS'; -$wb['mbox_txt'] = 'e-mail'; +$wb['mbox_txt'] = 'e-Mail'; $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Atualizar'; $wb['retry_txt'] = 'Repetir'; $wb['expire_txt'] = 'Expirar'; -$wb['minimum_txt'] = 'MinÃmo'; +$wb['minimum_txt'] = 'MÃnimo'; $wb['ttl_txt'] = 'TTL'; -$wb['xfer_txt'] = 'Permitir transferências de zona para estes IPs (IPs separados por vÃrgula).'; +$wb['xfer_txt'] = 'Permitir transferências de zonas para <br />Endereço(s) IP(s) (lista de endereços, separados por vÃrgula)'; $wb['active_txt'] = 'Ativo'; +$wb['dnssec_info_txt'] = 'O campo DS DNSSEC para o registro'; +$wb['dnssec_wanted_txt'] = 'Zona assinada (DNSSEC)'; +$wb['dnssec_wanted_info'] = 'Ao desativar o DNSSEC as chaves não serão excluÃdas se o DNSSEC tiver sido ativado anteriormente e as chaves já tiverem sido geradas, mas a zona não será mais entregue no formato assinado posteriormente. Se você usa o PowerDNS, as chaves serão excluÃdas!'; $wb['limit_dns_zone_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; $wb['client_txt'] = 'Cliente'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['server_id_error_empty'] = 'Servidor não selecionado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['server_id_error_empty'] = 'Nenhum servidor selecionado'; $wb['origin_error_empty'] = 'Zona está em branco.'; -$wb['origin_error_unique'] = 'Este registro já existe nesta zona.'; -$wb['origin_error_regex'] = 'Zona inválida.'; -$wb['ns_error_regex'] = 'NS é inválido.'; -$wb['mbox_error_empty'] = 'Endereço de e-mail está em branco.'; -$wb['mbox_error_regex'] = 'Endereço de e-mail é inválido.'; +$wb['origin_error_unique'] = 'Já existe este registro dns nesta zona.'; +$wb['origin_error_regex'] = 'A zona dns possui formato inválido.'; +$wb['ns_error_regex'] = 'O registro NS possui formato inválido.'; +$wb['mbox_error_empty'] = 'O e-mail está em branco.'; +$wb['mbox_error_regex'] = 'O e-mail possui formato inválido.'; $wb['also_notify_txt'] = 'Também notificar'; -$wb['also_notify_error_regex'] = 'Por favor, insira um endereço IP.'; +$wb['also_notify_error_regex'] = 'Também notificar: Por favor, use um endereço IP.'; +$wb['xfer_error_regex'] = 'Xfer: Por favor use um ou mais endereço(s) IP, separado por vÃrgula ou use a palavra reservada: any'; $wb['update_acl_txt'] = 'Atualizar ACL'; $wb['seconds_txt'] = 'Segundos'; $wb['eg_domain_tld'] = 'ex.: dominio.com.br'; $wb['eg_ns1_domain_tld'] = 'ex.: ns1.dominio.com.br'; -$wb['eg_webmaster_domain_tld'] = 'ex.: postmaster@dominio.com.br'; -$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'O domÃnio não pode ser modificado. Por favor, entre em contato com o administrador do sistema se você deseja modificar este domÃnio.'; -$wb['refresh_range_error'] = 'Tempo mÃnimo de atualizações (refresh) são 60 segundos.'; -$wb['retry_range_error'] = 'Tempo mÃnimo de repetições (retry) são 60 segundos.'; -$wb['expire_range_error'] = 'Tempo mÃnimo para expirar (expire) são 60 segundos.'; -$wb['minimum_range_error'] = 'Tempo mÃnimo (minimum) são 60 segundos.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; -$wb['xfer_error_regex'] = 'Também notificar: Por favor, insira um endereço IP.'; -$wb['dnssec_info_txt'] = 'Registro para DNSSEC (DS-Data)'; -$wb['dnssec_wanted_txt'] = 'Zona assinada (DNSSEC)'; -$wb['dnssec_wanted_info'] = 'Quando desabilitar o DNSSEC as chaves não são eliminadas mas a zona não será disponibilizada assinada. Se você usar o PowerDNS, as chaves serão excluÃdas!'; -$wb['error_not_allowed_server_id'] = 'O servidor selecionado não tem permissão para esta conta.'; -$wb['soa_cannot_be_changed_txt'] = 'A zona SOA não pode ser modificada. Entre em contato com o administrador para alterar esta zona.'; +$wb['eg_webmaster_domain_tld'] = 'ex.: hostmaster@dominio.com.br'; +$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'O domÃnio não pode ser alterado. Por favor contate o administrador se deseja alterar o domÃnio.'; +$wb['refresh_range_error'] = 'Intervalo mÃnimo entre as atualizações são 60 segundos.'; +$wb['retry_range_error'] = 'Intervalo mÃnimo entre as repetições são 60 segundos.'; +$wb['expire_range_error'] = 'Intervalo mÃnimo para expirar são 60 segundos.'; +$wb['minimum_range_error'] = 'Intervalo mÃnimo são 60 segundos.'; +$wb['ttl_range_error'] = 'Intervalo mÃnimo do TTL são 60 segundos.'; +$wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.'; +$wb['soa_cannot_be_changed_txt'] = 'A zona (SOA) não pode ser alterada. Por favor, contate o administrador se deseja alterar esta zona.'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng index dd3169a8307cc73fccc755cee3b46d8c926f29f7..26e8062d530859904438dca6cc1b3b51515760cd 100644 --- a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng @@ -1,11 +1,12 @@ <?php -$wb['list_head_txt'] = 'Zonas dns'; +$wb['list_head_txt'] = 'Zonas DNS'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; -$wb['mbox_txt'] = 'e-mail'; -$wb['add_new_record_wizard_txt'] = 'Adicionar nova zona dns através do assistente'; -$wb['add_new_record_txt'] = 'Adicionar nova zona dns manualmente'; +$wb['mbox_txt'] = 'e-Mail'; +$wb['add_new_record_wizard_txt'] = 'Adicionar zona dns através do assistente'; +$wb['add_new_record_txt'] = 'Adicionar zona dns manualmente'; +$wb['zone_file_import_txt'] = 'Importar arquivo de zona'; $wb['sys_groupid_txt'] = 'Cliente'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_soa_list.lng b/interface/web/dns/lib/lang/br_dns_soa_list.lng index ddb24697e3d641a046f5544673fc24c77749d81f..d9fb674b87d05a61b034ad914c1c498e543ea5d6 100644 --- a/interface/web/dns/lib/lang/br_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/br_dns_soa_list.lng @@ -1,11 +1,11 @@ <?php -$wb['list_head_txt'] = 'Zonas dns'; +$wb['list_head_txt'] = 'Zonas DNS'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; -$wb['mbox_txt'] = 'e-mail'; -$wb['add_new_record_txt'] = 'Adicionar nova zona dns'; +$wb['mbox_txt'] = 'e-Mail'; $wb['add_new_record_wizard_txt'] = 'Adicionar nova zona dns através do assistente'; -$wb['import_zone_file_txt'] = 'Importar arquivo de zona'; +$wb['add_new_record_txt'] = 'Adicionar nova zona dns manualmente'; +$wb['zone_file_import_txt'] = 'Importar arquivo de zona'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_spf.lng b/interface/web/dns/lib/lang/br_dns_spf.lng index 0c56cd32ed8a03e7472d75895bbc0007a31500de..13722f66961395bbccd6348cd3e066403e0a0f01 100644 --- a/interface/web/dns/lib/lang/br_dns_spf.lng +++ b/interface/web/dns/lib/lang/br_dns_spf.lng @@ -1,25 +1,30 @@ <?php $wb['data_txt'] = 'Registro SPF'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'Mecanismo SPF'; -$wb['spf_mechanism_pass_txt'] = 'Pass - permite e-mail de outros remetentes'; -$wb['spf_mechanism_fail_txt'] = 'Fail - rejeita e-mails de outros remetentes'; +$wb['spf_mechanism_pass_txt'] = 'Pass - permitir e-mails de outros remetentes'; +$wb['spf_mechanism_fail_txt'] = 'Fail - rejeitar e-mails de outros remetentes'; $wb['spf_mechanism_softfail_txt'] = 'SoftFail - permite e-mails de outros remetentes mas marca os mesmos'; $wb['spf_mechanism_neutral_txt'] = 'Neutral - não faz nada'; $wb['spf_mx_txt'] = 'Permite servidores listados como MX enviar e-mail deste domÃnio'; $wb['spf_a_txt'] = 'Permite o endereço IP atual do domÃnio enviar e-mails deste domÃnio'; $wb['spf_ip_txt'] = 'Endereço IP adicional no formato CIDR pode entregar ou retransmitir e-mails para este domÃnio'; -$wb['spf_ip_note_txt'] = '(endereços IPs separados por espaços em branco)'; -$wb['spf_invalid_ip_txt'] = 'Endereço IP é inválido.'; +$wb['spf_ip_note_txt'] = '(endereços IPs separados por espaços)'; +$wb['spf_invalid_ip_txt'] = 'Endereço IP inválido.'; $wb['spf_hostname_txt'] = 'Qualquer outro servidor pode entregar ou retransmitir e-mails para este domÃnio'; -$wb['spf_hostname_note_txt'] = '(servidors separados por espaço em branco)'; -$wb['spf_invalid_hostname_txt'] = 'Hospedeiro inválido'; +$wb['spf_hostname_note_txt'] = '(servidores separados por espaço)'; +$wb['spf_invalid_hostname_txt'] = 'O nome do host é inválido.'; $wb['spf_domain_txt'] = 'Qualquer domÃnio pode entregar ou retransmitir e-mails para este domÃnio'; -$wb['spf_domain_note_txt'] = '(domÃnios separados por espaço em branco)'; -$wb['spf_invalid_domain_txt'] = 'DomÃnio é inválido.'; +$wb['spf_domain_note_txt'] = '(domÃnios separados por espaço)'; +$wb['spf_invalid_domain_txt'] = 'O domÃnio é inválido.'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['record_exists_txt'] = 'Registro DS já existe.'; +$wb['record_exists_txt'] = 'Registro dns já existe.'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_srv.lng b/interface/web/dns/lib/lang/br_dns_srv.lng index fefec736eeb527b369066a3ce853ecc5e5680168..97d26048960fad7a18e7fc28f273d444ccc86c49 100644 --- a/interface/web/dns/lib/lang/br_dns_srv.lng +++ b/interface/web/dns/lib/lang/br_dns_srv.lng @@ -1,20 +1,20 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; $wb['target_txt'] = 'Alvo'; $wb['weight_txt'] = 'Peso'; $wb['port_txt'] = 'Porta'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Servidor está em branco.'; -$wb['data_error_regex'] = 'Servidor é inválido.'; -$wb['srv_error_regex'] = 'Registro do servidor é inválido. São necessários 3 textos separados por espaços.'; $wb['aux_txt'] = 'Prioridade'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'Registro SVR está em branco.'; +$wb['data_error_regex'] = 'Registro SVR possui formato inválido.'; +$wb['srv_error_regex'] = 'O formato do registro SVR é inválido. O registro SVR deve conter 3 cadeias de texto separados por espaços.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_sshfp.lng b/interface/web/dns/lib/lang/br_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..f84c2af034680dfa53d7cbad289c9b9f94d373e1 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Servidor'; +$wb['zone_txt'] = 'Zona'; +$wb['name_txt'] = 'Nome do host'; +$wb['type_txt'] = 'Tipo'; +$wb['data_txt'] = 'Texto'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Ativo'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'Texto está em branco.'; +$wb['data_error_regex'] = 'Texto possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_template.lng b/interface/web/dns/lib/lang/br_dns_template.lng index 8b099ceb14af7bb6bcdca0189cc7a415a1c33dec..81a8f190edee515f752d87a1307b99a7ee6e0633 100644 --- a/interface/web/dns/lib/lang/br_dns_template.lng +++ b/interface/web/dns/lib/lang/br_dns_template.lng @@ -1,7 +1,7 @@ <?php $wb['name_txt'] = 'Nome'; -$wb['fields_txt'] = 'Campos'; +$wb['fields_txt'] = 'O campos'; $wb['template_txt'] = 'Gabarito'; $wb['visible_txt'] = 'VisÃvel'; -$wb['placeholder_txt'] = 'Placeholder'; +$wb['placeholder_txt'] = 'Ãrea Reservada'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_template_list.lng b/interface/web/dns/lib/lang/br_dns_template_list.lng index f6455314d6266bbeb0c78e1e1cf19fe9c6a6e9ff..8ec480d727f18fe2a1f0e584376080d0123f054b 100644 --- a/interface/web/dns/lib/lang/br_dns_template_list.lng +++ b/interface/web/dns/lib/lang/br_dns_template_list.lng @@ -1,6 +1,6 @@ <?php -$wb['list_head_txt'] = 'Assistente de gabaritos dns'; +$wb['list_head_txt'] = 'Gabarito do Assistente DNS'; $wb['visible_txt'] = 'VisÃvel'; $wb['name_txt'] = 'Nome'; -$wb['add_new_record_txt'] = 'Adicionar novo gabarito'; +$wb['add_new_record_txt'] = 'Adicionar novo registro'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_tlsa.lng b/interface/web/dns/lib/lang/br_dns_tlsa.lng index c78c6fd1904e9192bebecc0ccfa8e326698d71b7..4037ebe595902514de0652fc7f2100c0a58eb2f8 100644 --- a/interface/web/dns/lib/lang/br_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/br_dns_tlsa.lng @@ -1,16 +1,16 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Descritor de serviço'; +$wb['name_txt'] = 'Descritor do serviço'; $wb['type_txt'] = 'Tipo'; $wb['data_txt'] = 'Dados TLSA'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Descritor de serviço está em branco.'; -$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \"_<port>._(tcp|udp).<hostname>\".'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados). Correto: _<port>._(tcp|udp).<hostname>'; $wb['data_error_empty'] = 'Dados TLSA está em branco.'; -$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \"n n n HASH\".'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; +$wb['data_error_regex'] = 'Formato dos dados TLSA inválido. Correto: n n n HASH'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_txt.lng b/interface/web/dns/lib/lang/br_dns_txt.lng index 356bbfa5f24a7be15ad2e01890b6250f5bd8780c..641cb9f2e199290a32bbb9ab1bfda2c905e25940 100644 --- a/interface/web/dns/lib/lang/br_dns_txt.lng +++ b/interface/web/dns/lib/lang/br_dns_txt.lng @@ -1,19 +1,19 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; -$wb['name_txt'] = 'Nome'; +$wb['name_txt'] = 'Nome do host'; $wb['type_txt'] = 'Tipo'; $wb['data_txt'] = 'Texto'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Nome está em branco.'; -$wb['name_error_regex'] = 'Nome é inválido.'; -$wb['data_error_empty'] = 'Endereço IP está em branco.'; -$wb['data_error_regex'] = 'Endereço IP é inválido.'; -$wb['ttl_range_error'] = 'O ttl mÃnimo são 60 segundos.'; -$wb['invalid_type_dkim'] = 'DKIM não permitido. Use o botão DKIM.'; -$wb['invalid_type_dmarc'] = 'DMARC não permitido. Use o botão DMARC.'; -$wb['invalid_type_spf'] = 'SPF não permitido. Use o botão SPF.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'O nome do host está em branco.'; +$wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).'; +$wb['data_error_empty'] = 'O texto está em branco.'; +$wb['data_error_regex'] = 'O texto é inválido.'; +$wb['ttl_range_error'] = 'O TTL mÃnimo são 60 segundos.'; +$wb['invalid_type_dkim'] = 'Sem permissão para DKIM. Use o botão DKIM.'; +$wb['invalid_type_dmarc'] = 'Sem permissão para DMARC. Use o botão DMARC.'; +$wb['invalid_type_spf'] = 'Sem permissão para SPF. Use o botão SPF.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_wizard.lng b/interface/web/dns/lib/lang/br_dns_wizard.lng index 5e20f0559304983e2c7fbaf9352bf8351faf8f8d..d132d4646b341a958d7f2d1c5bdf2d96452a4bcf 100644 --- a/interface/web/dns/lib/lang/br_dns_wizard.lng +++ b/interface/web/dns/lib/lang/br_dns_wizard.lng @@ -1,45 +1,45 @@ <?php +$wb['list_head_txt'] = 'Assistente de zona dns'; +$wb['list_desc_txt'] = 'Adicionar zona dns através do assistente'; +$wb['dns_zone_txt'] = 'Zona DNS'; $wb['template_id_txt'] = 'Gabarito'; $wb['server_id_txt'] = 'Servidor'; $wb['client_txt'] = 'Cliente'; -$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_save_txt'] = 'Adicionar zona dns'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['domain_txt'] = 'DomÃnio'; -$wb['email_txt'] = 'e-mail'; +$wb['email_txt'] = 'e-Mail'; +$wb['dkim_txt'] = 'DKIM'; +$wb['dnssec_txt'] = 'Assinar zona (DNSSEC)'; $wb['ns1_txt'] = 'NS 1'; $wb['ns2_txt'] = 'NS 2'; $wb['ip_txt'] = 'Endereço IP'; $wb['ipv6_txt'] = 'Endereço IPv6'; -$wb['error_origin_empty'] = 'Origem está em branco.'; +$wb['error_origin_empty'] = 'Origin está em branco.'; $wb['error_ns_empty'] = 'NS está em branco.'; -$wb['error_mbox_empty'] = 'Endereço de e-mail está em branco.'; -$wb['error_refresh_empty'] = 'Atualizar está em branco.'; -$wb['error_retry_empty'] = 'Atualizar está em branco.'; -$wb['error_expire_empty'] = 'Expirar está em branco.'; -$wb['error_minimum_empty'] = 'MinÃmo está em branco.'; -$wb['error_ttl_empty'] = 'TTL está em branco.'; +$wb['error_mbox_empty'] = 'conta de e-mail (mbox) está em branco.'; +$wb['error_refresh_empty'] = 'Atualizar (refresh) está em branco.'; +$wb['error_retry_empty'] = 'Repetir (retry) está em branco.'; +$wb['error_expire_empty'] = 'Expirar (expire) está em branco.'; +$wb['error_minimum_empty'] = 'MÃnimo (minimum) está em branco.'; +$wb['error_ttl_empty'] = 'Tempo (TTL) está em branco.'; $wb['error_domain_empty'] = 'DomÃnio está em branco.'; -$wb['error_ip_empty'] = 'IP está em branco.'; -$wb['error_ipv6_empty'] = 'IPv6 está em branco.'; +$wb['error_ip_empty'] = 'Endereço IP está em branco.'; +$wb['error_ipv6_empty'] = 'Endereço IPv6 está em branco.'; $wb['error_ns1_empty'] = 'NS1 está em branco.'; $wb['error_ns2_empty'] = 'NS2 está em branco.'; $wb['error_email_empty'] = 'Endereço de e-mail está em branco.'; -$wb['error_domain_regex'] = 'DomÃnio contém caracteres inválidos.'; -$wb['error_ns1_regex'] = 'NS1 contém caracteres inválidos.'; -$wb['error_ns2_regex'] = 'NS2 contém caracteres inválidos.'; -$wb['error_email_regex'] = 'Endereço de e-mail é inválido.'; -$wb['dns_zone_txt'] = 'Zona dns'; +$wb['error_domain_regex'] = 'O domÃnio possui caracteres inválidos.'; +$wb['error_ns1_regex'] = 'NS1 possui caracteres inválidos.'; +$wb['error_ns2_regex'] = 'NS2 possui caracteres inválidos.'; +$wb['error_email_regex'] = 'O endereço de e-mail não possui um endereço válido.'; $wb['globalsearch_resultslimit_of_txt'] = 'de'; $wb['globalsearch_resultslimit_results_txt'] = 'resultados'; -$wb['globalsearch_noresults_text_txt'] = 'Sem resultados'; -$wb['globalsearch_noresults_limit_txt'] = '0 resultados'; +$wb['globalsearch_noresults_text_txt'] = 'Sem resultados.'; +$wb['globalsearch_noresults_limit_txt'] = '0 resultado(s)'; $wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar'; $wb['globalsearch_suggestions_text_txt'] = 'Sugestões'; -$wb['list_head_txt'] = 'Assistente de zona dns'; -$wb['list_desc_txt'] = 'Adicionar zona dns através do assistente'; -$wb['dkim_txt'] = 'DKIM ativo'; $wb['error_no_server_id'] = 'Nenhum servidor selecionado.'; $wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.'; -$wb['dnssec_txt'] = 'Zona assinada (DNSSEC)'; $wb['limit_dns_zone_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_a.lng b/interface/web/dns/lib/lang/ca_dns_a.lng index 6b3b31ae4c62b3eb0b7c633ffb12ac832f5ac4f4..f486bb6d49bc3f0c4cfe047cce5d561c498ccf6f 100644 --- a/interface/web/dns/lib/lang/ca_dns_a.lng +++ b/interface/web/dns/lib/lang/ca_dns_a.lng @@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistreme $wb['name_error_empty'] = 'Le nom d\'hôte est vide.'; $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.'; $wb['data_error_empty'] = 'L\'adresse IP est vide.'; -$wb['data_error_duplicate'] = 'Enregistrement A ou CNAME en double'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_aaaa.lng b/interface/web/dns/lib/lang/ca_dns_aaaa.lng index e29a5cbf0dc4661c2fe56e925db06b59abe2432d..0aed36e11962f86e2f6a90ac59dac2085793b07b 100644 --- a/interface/web/dns/lib/lang/ca_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/ca_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistreme $wb['name_error_empty'] = 'Le nom d\'hôte est vide.'; $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.'; $wb['data_error_empty'] = 'L\'adresse IP est vide.'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_caa.lng b/interface/web/dns/lib/lang/ca_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..973a97ceb6870404d7c8107002e1738b373362a0 100644 --- a/interface/web/dns/lib/lang/ca_dns_caa.lng +++ b/interface/web/dns/lib/lang/ca_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ca_dns_cname.lng b/interface/web/dns/lib/lang/ca_dns_cname.lng index 3d191f703b1745a00a44bb62a329f71cae8ed92e..480f1ddd4da17fcf03ea94d820070e64d985b7df 100644 --- a/interface/web/dns/lib/lang/ca_dns_cname.lng +++ b/interface/web/dns/lib/lang/ca_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Le nom d\'hôte est vide.'; $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.'; $wb['data_error_empty'] = 'Le nom d\'hôte cible est vide.'; $wb['data_error_regex'] = 'Le format du nom d\'hôte cible invalide.'; -$wb['data_error_duplicate'] = 'Enregistrement A ou CNAME en double'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_dname.lng b/interface/web/dns/lib/lang/ca_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..d9d8296fdb1c2ed715a70b5f229d4276fe9d604a --- /dev/null +++ b/interface/web/dns/lib/lang/ca_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Serveur'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Nom d\'hôte'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Nom d\'hôte cible'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Actif'; +$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.'; +$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.'; +$wb['name_error_empty'] = 'Le nom d\'hôte est vide.'; +$wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.'; +$wb['data_error_empty'] = 'Le nom d\'hôte cible est vide.'; +$wb['data_error_regex'] = 'Le format du nom d\'hôte cible invalide.'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ca_dns_import.lng b/interface/web/dns/lib/lang/ca_dns_import.lng index feb0ba7919ff585a0c9e8f43a0e95a838da92e13..78c2edbf808ba61813fb9fa6fd65cf7d7f721a0e 100644 --- a/interface/web/dns/lib/lang/ca_dns_import.lng +++ b/interface/web/dns/lib/lang/ca_dns_import.lng @@ -13,4 +13,13 @@ $wb['no_file_uploaded_error'] = 'Aucun fichier de Zone téléchargé'; $wb['zone_file_import_txt'] = 'Importer un fichier de Zone'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_naptr.lng b/interface/web/dns/lib/lang/ca_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/ca_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/ca_dns_soa.lng b/interface/web/dns/lib/lang/ca_dns_soa.lng index aaf07a0b999573c52d6858557277785b108b5a57..0b6759f07372f84c449c17942f8c4ca849225a53 100644 --- a/interface/web/dns/lib/lang/ca_dns_soa.lng +++ b/interface/web/dns/lib/lang/ca_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Autoriser les transfers de zones vers <br />ces IP (liste séparée par des virgules)'; $wb['active_txt'] = 'Actif'; diff --git a/interface/web/dns/lib/lang/ca_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ca_dns_soa_admin_list.lng index ff6fe695ae330cdab0477cd21b610c393c724a6b..0f477a473ac715f7402aa0ebfd3bb12780616ec7 100644 --- a/interface/web/dns/lib/lang/ca_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ca_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Courriel'; $wb['add_new_record_wizard_txt'] = 'Assistant de création de zone'; $wb['add_new_record_txt'] = 'Création manuel de zone'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_spf.lng b/interface/web/dns/lib/lang/ca_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/ca_dns_spf.lng +++ b/interface/web/dns/lib/lang/ca_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_sshfp.lng b/interface/web/dns/lib/lang/ca_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/ca_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_a.lng b/interface/web/dns/lib/lang/cz_dns_a.lng index 871f9146d42fb5d2a1fa0a0e1c81f44910414bc0..1aa476275c9384c47e0a5a86ab4d325ddecc5c9c 100644 --- a/interface/web/dns/lib/lang/cz_dns_a.lng +++ b/interface/web/dns/lib/lang/cz_dns_a.lng @@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'IP adresa je prázdná'; -$wb['data_error_duplicate'] = 'Duplikace A záznamu'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; $wb['ip_error_wrong'] = 'IP - formát adresy neplatný'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_aaaa.lng b/interface/web/dns/lib/lang/cz_dns_aaaa.lng index e28e9a8b735c040eb8002a0e4fc7838eb6074329..371d3f591b2560fd58a4285a5f322112e9046235 100644 --- a/interface/web/dns/lib/lang/cz_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/cz_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'IP adresa je prázdná'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; $wb['ip_error_wrong'] = 'IP - formát adresy neplatný'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_caa.lng b/interface/web/dns/lib/lang/cz_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..f4ba690c5a210bf522ad9bad83af731448272fa1 100644 --- a/interface/web/dns/lib/lang/cz_dns_caa.lng +++ b/interface/web/dns/lib/lang/cz_dns_caa.lng @@ -1,19 +1,19 @@ <?php -$wb['ca_list_txt'] = 'Certifiction Authority'; -$wb['ca_domain_txt'] = 'Domain'; -$wb['ca_hostname_txt'] = 'Additional Hostnamen'; -$wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all hostnames)'; -$wb['ca_options_txt'] = 'Additional Options'; -$wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; -$wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_list_txt'] = 'CertifikaÄnà autorita'; +$wb['ca_domain_txt'] = 'Doména'; +$wb['ca_hostname_txt'] = 'Omezit na názvy hostitelů'; +$wb['ca_hostname_note_txt'] = '(OddÄ›lený seznam s Äárkami - prázdný pro vÅ¡echna jména hostitelů)'; +$wb['ca_options_txt'] = 'Dalšà možnosti názvu hostitele'; +$wb['ca_options_note_txt'] = 'requested by the CA (OddÄ›lený seznam s Äárkami)'; +$wb['ca_wildcard_txt'] = 'Použità Wildcard (*) SSL'; +$wb['ca_critical_txt'] = 'PÅ™Ãsná kontrola'; $wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['select_txt'] = 'Select Certifiction Authority'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['ca_error_txt'] = 'No Certifiction Authority selected'; -$wb['caa_exists_error'] = 'CAA Record already exists'; -$wb['ca_option_error'] = 'Invalid format for additional options; OPTION=VALUE'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['select_txt'] = 'Vyberte certifikaÄnà autoritu'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['ca_error_txt'] = 'Nebyla vybrána žádná certifikaÄnà autorita'; +$wb['caa_exists_error'] = 'CAA záznam již existuje'; +$wb['ca_option_error'] = 'Neplatný formát pro dalšà možnosti; OPTION=VALUE'; +$wb['ttl_range_error'] = 'Min. TTL Äas je 60 sekund.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_cname.lng b/interface/web/dns/lib/lang/cz_dns_cname.lng index 8fed28a5a7d2e685e0874c545e082bfde6d7ce6f..7003f707c4c48209b64bdec8f24a4a4f024b925d 100644 --- a/interface/web/dns/lib/lang/cz_dns_cname.lng +++ b/interface/web/dns/lib/lang/cz_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'CÃlový název hostitele je prázdný'; $wb['data_error_regex'] = 'CÃlový název hostitele má chybný formát'; -$wb['data_error_duplicate'] = 'Duplikace A záznamu nebo CNAME-záznamu'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng index c5952552a62dec226fdb07d0ebbf321dd2c04703..c4c3bb4f241f768ec4f75ed0054542832cffa39a 100644 --- a/interface/web/dns/lib/lang/cz_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng @@ -44,7 +44,7 @@ $wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; $wb['dmarc_invalid_email_txt'] = 'Neplatný e-mail'; $wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; $wb['record_exists_txt'] = 'DNS záznam již existuje'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_dname.lng b/interface/web/dns/lib/lang/cz_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..1419acf02fcd61429e7597573189b9d7861c1164 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zóna'; +$wb['name_txt'] = 'Název hostitele'; +$wb['type_txt'] = 'Typ'; +$wb['data_txt'] = 'CÃlový název hostitele'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['limit_dns_record_txt'] = 'Byl dosažen maximálnà poÄet DNS záznamů pro Váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny.'; +$wb['name_error_empty'] = 'Název hostitele je prázdný.'; +$wb['name_error_regex'] = 'Název hostitele má chybný formát.'; +$wb['data_error_empty'] = 'CÃlový název hostitele je prázdný'; +$wb['data_error_regex'] = 'CÃlový název hostitele má chybný formát'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_ds.lng b/interface/web/dns/lib/lang/cz_dns_ds.lng index 3d25095d3be2ffcb604e0f1b5c1ff940bf631104..f7dd779ef817a2d3d5a4dae72446ae7b0e9f880c 100644 --- a/interface/web/dns/lib/lang/cz_dns_ds.lng +++ b/interface/web/dns/lib/lang/cz_dns_ds.lng @@ -6,8 +6,8 @@ $wb['type_txt'] = 'Typ'; $wb['data_txt'] = 'Data'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'AktivnÃ'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'Text empty'; diff --git a/interface/web/dns/lib/lang/cz_dns_import.lng b/interface/web/dns/lib/lang/cz_dns_import.lng index 3b41baa1be8493dca50745ea9754fe4c93262b1f..ed254338a5c39aeb6c4f849c63f0947acdd15a77 100644 --- a/interface/web/dns/lib/lang/cz_dns_import.lng +++ b/interface/web/dns/lib/lang/cz_dns_import.lng @@ -12,5 +12,14 @@ $wb['title'] = 'Importovat soubory zón'; $wb['no_file_uploaded_error'] = 'Nelze odeslat DNS zonový soubor'; $wb['zone_file_import_txt'] = 'Importovat DNS zonový soubor'; $wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_not_allowed_server_id'] = 'Vybraný server nenà pro tento úÄet povolen.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_loc.lng b/interface/web/dns/lib/lang/cz_dns_loc.lng index 90ddd3533bb1294d5c844f9cebacb293710c9c74..4ed9018152ceeb842f33116f29034f9fc75f22f4 100644 --- a/interface/web/dns/lib/lang/cz_dns_loc.lng +++ b/interface/web/dns/lib/lang/cz_dns_loc.lng @@ -6,8 +6,8 @@ $wb['type_txt'] = 'Typ'; $wb['data_txt'] = 'Data'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'AktivnÃ'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'Text empty'; diff --git a/interface/web/dns/lib/lang/cz_dns_naptr.lng b/interface/web/dns/lib/lang/cz_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_soa.lng b/interface/web/dns/lib/lang/cz_dns_soa.lng index 7dfbb0e91b1afa9ac428eb044e9dd4e05dcf8fec..cb35f0ef3bbe946036dd51179d8f5c0ef92ce730 100644 --- a/interface/web/dns/lib/lang/cz_dns_soa.lng +++ b/interface/web/dns/lib/lang/cz_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Povolot pÅ™enos zóny do <br />tÄ›chto IP adres (položky oddÄ›lené Äárkami)'; $wb['active_txt'] = 'AktivnÃ'; @@ -38,7 +38,7 @@ $wb['xfer_error_regex'] = 'Také oznámÃ: ProsÃm, použijte IP adresu.'; $wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry'; $wb['dnssec_wanted_txt'] = 'Podepsat zónu (DNSSEC)'; $wb['dnssec_wanted_info'] = 'Když deaktivujete DNSSEC klÃÄe nebudou odstranÄ›ny, ale DNS záznamy (zóna) již nebudou propagovány v podepsaném formátu. Pokud použÃváte PowerDNS, budou klÃÄe WILL vymazány!'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_not_allowed_server_id'] = 'Vybraný server nenà pro tento úÄet povolen.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng index 0ec5de4f6d92b81cd0c3046d9e3a0c3b482f35ab..a4f27d2472b1f295af43b468c1d12940fde4554c 100644 --- a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'E-mail'; $wb['add_new_record_wizard_txt'] = 'VytvoÅ™it DNS zónu pomocà průvodce'; $wb['add_new_record_txt'] = 'VytvoÅ™it DNS zónu manuálnÄ›'; +$wb['import_zone_file_txt'] = 'Importovat DNS zonový soubor'; $wb['sys_groupid_txt'] = 'Klient'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_spf.lng b/interface/web/dns/lib/lang/cz_dns_spf.lng index 755e01f11ebd086181051f9b3e41cc4a071c83a0..637d0ca7677fe53ced0314be012f3e4ed55d70c2 100644 --- a/interface/web/dns/lib/lang/cz_dns_spf.lng +++ b/interface/web/dns/lib/lang/cz_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF Záznam'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanismus'; $wb['spf_mechanism_pass_txt'] = 'PÅ™ijmout - pÅ™ijÃmat e-mail od ostatnÃch odesÃlatelů'; $wb['spf_mechanism_fail_txt'] = 'OdmÃtat - odmÃtnout e-mail od ostatnÃch odesÃlatelů'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Neplatné doménové jméno'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'AktivnÃ'; $wb['record_exists_txt'] = 'DNS záznam již existuje'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_sshfp.lng b/interface/web/dns/lib/lang/cz_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..4ed9018152ceeb842f33116f29034f9fc75f22f4 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Název hostitele'; +$wb['type_txt'] = 'Typ'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; +$wb['name_error_empty'] = 'Název hostitele je prázdný.'; +$wb['name_error_regex'] = 'Název hostitele má chybný formát.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_tlsa.lng b/interface/web/dns/lib/lang/cz_dns_tlsa.lng index b92da1d45b9a76b5dab24eaa815c664a59129a37..3891ad37c7a8cb1965453a6eab585eedd9734327 100644 --- a/interface/web/dns/lib/lang/cz_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/cz_dns_tlsa.lng @@ -6,8 +6,8 @@ $wb['type_txt'] = 'Typ'; $wb['data_txt'] = 'TLSA-Data'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'AktivnÃ'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. poÄet DNS záznamů pro váš úÄet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnÄ›nà pÅ™idat záznam do této zóny DNS.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'The hostname has the wrong format. Correct: _<port>._(tcp|udp).<hostname>'; $wb['data_error_empty'] = 'TLSA-Data empty'; diff --git a/interface/web/dns/lib/lang/cz_dns_wizard.lng b/interface/web/dns/lib/lang/cz_dns_wizard.lng index 548b90d702ceb461a0819e37551f8763b0892169..a4a1ddf53946f4e90396df441afba9e08a0cacbf 100644 --- a/interface/web/dns/lib/lang/cz_dns_wizard.lng +++ b/interface/web/dns/lib/lang/cz_dns_wizard.lng @@ -39,7 +39,7 @@ $wb['list_head_txt'] = 'Průvodce vytvoÅ™enÃm DNS zóny'; $wb['list_desc_txt'] = 'VytvoÅ™enà DNS zóny pomocà průvodce'; $wb['dkim_txt'] = 'DKIM povolen'; $wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_not_allowed_server_id'] = 'Vybraný server nenà pro tento úÄet povolen.'; $wb['dnssec_txt'] = 'Podepsat zónu (DNSSEC)'; $wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_a.lng b/interface/web/dns/lib/lang/de_dns_a.lng index 564a9318de54dbdd1031818a9e46482e9e7e0e3c..c60afbbc1fa2ab89bc1ae74c87f3cccf985d1a95 100644 --- a/interface/web/dns/lib/lang/de_dns_a.lng +++ b/interface/web/dns/lib/lang/de_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Der Hostname ist leer.'; $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.'; $wb['data_error_empty'] = 'IPv4 Adresse ist leer'; $wb['ip_error_wrong'] = 'IPv4 Adressen Format ist ungültig'; -$wb['data_error_duplicate'] = 'Doppelter A oder CNAME Eintrag'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_aaaa.lng b/interface/web/dns/lib/lang/de_dns_aaaa.lng index 4fe054d36799e9cbd24d15f709c17ee18e956abb..0251a9dc2666583bc62c1afe006814590ce122d0 100644 --- a/interface/web/dns/lib/lang/de_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/de_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Sie haben nicht die Berechtigung, einen Eintrag zu dieser $wb['name_error_empty'] = 'Der Hostname ist leer.'; $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.'; $wb['data_error_empty'] = 'IPv6 Adresse ist leer'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IPv6 Adressen Format ist ungültig'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_caa.lng b/interface/web/dns/lib/lang/de_dns_caa.lng index 88dbf6e47aa2b8490718b46defad6b761169fa1e..a7110236841a59c70a22f0600f2e614b9257cf9f 100644 --- a/interface/web/dns/lib/lang/de_dns_caa.lng +++ b/interface/web/dns/lib/lang/de_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(mit Komma getrennte Liste - leer für alle Namen $wb['ca_options_txt'] = 'zusätzliche Angaben'; $wb['ca_options_note_txt'] = 'von der Zertifizierungsstelle vorgegeben (mit Komma getrennte Liste)'; $wb['ca_wildcard_txt'] = 'Wildcard verwenden'; -$wb['ca_critical_txt'] = 'Strikte Überprüfung durch die Zertifizierungsstelle'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strikte Überprüfung durch die Zertifizierungsstelle'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktiv'; $wb['select_txt'] = 'Zertifizierungstelle auswählen'; diff --git a/interface/web/dns/lib/lang/de_dns_cname.lng b/interface/web/dns/lib/lang/de_dns_cname.lng index 6f9b0eecb40ee39eb405598f49eef6261c7a0ca1..6aed8fb825f193955df11998902fc490c18e482b 100644 --- a/interface/web/dns/lib/lang/de_dns_cname.lng +++ b/interface/web/dns/lib/lang/de_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Der Hostname ist leer.'; $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.'; $wb['data_error_empty'] = 'Ziel Hostname ist leer'; $wb['data_error_regex'] = 'Ziel Hostname Format ist ungültig'; -$wb['data_error_duplicate'] = 'Doppelter A oder CNAME Eintrag'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_dname.lng b/interface/web/dns/lib/lang/de_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..492613e75b40acda200c38e799a57b7927e5712e --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'Typ'; +$wb['data_txt'] = 'Ziel Hostname'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktiv'; +$wb['limit_dns_record_txt'] = 'Die maximale Anzahl an DNS Einträgen für Ihr Konto wurde erreicht.'; +$wb['no_zone_perm'] = 'Sie haben nicht die Berechtigung, einen Eintrag zu dieser DNS Zone hinzuzufügen.'; +$wb['name_error_empty'] = 'Der Hostname ist leer.'; +$wb['name_error_regex'] = 'Der Hostname hat das falsche Format.'; +$wb['data_error_empty'] = 'Ziel Hostname ist leer'; +$wb['data_error_regex'] = 'Ziel Hostname Format ist ungültig'; +$wb['data_error_duplicate'] = 'Doppelter CNAME oder DNAME Eintrag'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_import.lng b/interface/web/dns/lib/lang/de_dns_import.lng index f33d304a0dafd1902fc13a14b99f7bb32fe2019c..31db13932e2476cb0b5b94f397000d58e4e1ca53 100644 --- a/interface/web/dns/lib/lang/de_dns_import.lng +++ b/interface/web/dns/lib/lang/de_dns_import.lng @@ -13,4 +13,13 @@ $wb['title'] = 'Zonen Datei importieren'; $wb['no_file_uploaded_error'] = 'Keine Datei hochgeladen'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_naptr.lng b/interface/web/dns/lib/lang/de_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_soa.lng b/interface/web/dns/lib/lang/de_dns_soa.lng index 35d0e54ccdfd1ceeadd13a7ca2f9db0041330639..76d139391ddb580830e537c7050f09171d3bc943 100644 --- a/interface/web/dns/lib/lang/de_dns_soa.lng +++ b/interface/web/dns/lib/lang/de_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Seriennummer'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Zonentransfer zu diesen IP Adressen erlauben (mit Komma getrennte Liste)'; $wb['active_txt'] = 'Aktiv'; diff --git a/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng index 363369c65b366c099c76806faa9794b9610c4c54..294cd3b128d064b5f07d5e0f7d832f96520f2a37 100644 --- a/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'E-Mail'; $wb['add_new_record_txt'] = 'Neue DNS Zone (SOA) hinzufügen'; $wb['add_new_record_wizard_txt'] = 'Neue DNS Zone per Assistent hinzufügen'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Kunde'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_spf.lng b/interface/web/dns/lib/lang/de_dns_spf.lng index aec5595ad323afbb2212c79a529fb3cac4544828..9bf5e676ece594235a5840a895a764734bf72c49 100644 --- a/interface/web/dns/lib/lang/de_dns_spf.lng +++ b/interface/web/dns/lib/lang/de_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanismus'; $wb['spf_mechanism_pass_txt'] = 'Pass - Mails von anderen Sendern zulassen'; $wb['spf_mechanism_fail_txt'] = 'Fail - Mails von anderen Sendern abweisen'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Ungültiger Domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktiv'; $wb['record_exists_txt'] = 'DNS-Eintrag existiert bereits'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['ttl_range_error'] = 'Min. TTL time ist 60 Sekunden.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['limit_dns_record_txt'] = 'Die maximale Anzahl an DNS Einträgen für Ihr Konto wurde erreicht.'; $wb['no_zone_perm'] = 'Sie haben nicht die Berechtigung, einen Eintrag zu dieser DNS Zone hinzuzufügen.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_sshfp.lng b/interface/web/dns/lib/lang/de_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..eb2f83263af2bb4ad4f0d25d4b21ad86fffeaf75 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'Typ'; +$wb['data_txt'] = 'Daten'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktiv'; +$wb['limit_dns_record_txt'] = 'Die maximale Anzahl an DNS Einträgen für Ihr Konto wurde erreicht.'; +$wb['no_zone_perm'] = 'Sie haben nicht die Berechtigung, einen Eintrag zu dieser DNS Zone hinzuzufügen.'; +$wb['name_error_empty'] = 'Der Hostname ist leer.'; +$wb['name_error_regex'] = 'Der Hostname hat das falsche Format.'; +$wb['data_error_empty'] = 'Text ist leer'; +$wb['data_error_regex'] = 'Textformat ungültig'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/dk_dns_a.lng b/interface/web/dns/lib/lang/dk_dns_a.lng index b10dae13ac57b4c7dece3b7692f7d082522b1b1f..6ce7aa50728a6afdd33a471d59bc8fdb4244b81a 100644 --- a/interface/web/dns/lib/lang/dk_dns_a.lng +++ b/interface/web/dns/lib/lang/dk_dns_a.lng @@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne $wb['name_error_empty'] = 'Værtsnavnet er tomt.'; $wb['name_error_regex'] = 'Værtsnavnet har et forkert format.'; $wb['data_error_empty'] = 'IP-Adressen er tom'; -$wb['data_error_duplicate'] = 'Dupliker A-Record eller CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_aaaa.lng b/interface/web/dns/lib/lang/dk_dns_aaaa.lng index 664d63b41c4b6f401b17e1b0a9422b71bc418588..c8d4dac13a02e6ed9ab30071507ce5b8abb9cc57 100644 --- a/interface/web/dns/lib/lang/dk_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/dk_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne $wb['name_error_empty'] = 'Værtsnavnet er tomt.'; $wb['name_error_regex'] = 'Værtsnavnet har et forkert format.'; $wb['data_error_empty'] = 'IP-Adressen er tom'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_caa.lng b/interface/web/dns/lib/lang/dk_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..973a97ceb6870404d7c8107002e1738b373362a0 100644 --- a/interface/web/dns/lib/lang/dk_dns_caa.lng +++ b/interface/web/dns/lib/lang/dk_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/dk_dns_cname.lng b/interface/web/dns/lib/lang/dk_dns_cname.lng index 1957b5f82c034eee33a4231f36d51c9de2334426..1815eab77ac1640054ccad30e66b9da6f5c224c8 100644 --- a/interface/web/dns/lib/lang/dk_dns_cname.lng +++ b/interface/web/dns/lib/lang/dk_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Værtsnavnet er tomt.'; $wb['name_error_regex'] = 'Værtsnavnet har et forkert format.'; $wb['data_error_empty'] = 'MÃ¥l-værtsnavn er tom'; $wb['data_error_regex'] = 'MÃ¥l-værtsnavn format er ugyldigt'; -$wb['data_error_duplicate'] = 'Duplikere A-Record eller CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_dname.lng b/interface/web/dns/lib/lang/dk_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e651af8d35e706c920475a159292e6d5399f836 --- /dev/null +++ b/interface/web/dns/lib/lang/dk_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Værtsnavn'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'MÃ¥l Værtsnavn'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktiv'; +$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nÃ¥et.'; +$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.'; +$wb['name_error_empty'] = 'Værtsnavnet er tomt.'; +$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.'; +$wb['data_error_empty'] = 'MÃ¥l-værtsnavn er tom'; +$wb['data_error_regex'] = 'MÃ¥l-værtsnavn format er ugyldigt'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.'; +?> diff --git a/interface/web/dns/lib/lang/dk_dns_import.lng b/interface/web/dns/lib/lang/dk_dns_import.lng index 9edbe20009f599620964237b9cb97d32312745f9..93357e11940d8d1a833e93a80f553bf1a8364ad5 100644 --- a/interface/web/dns/lib/lang/dk_dns_import.lng +++ b/interface/web/dns/lib/lang/dk_dns_import.lng @@ -13,4 +13,13 @@ $wb['title'] = 'Importer Zone Filer'; $wb['no_file_uploaded_error'] = 'Ingen zone-fil overført'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_naptr.lng b/interface/web/dns/lib/lang/dk_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/dk_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/dk_dns_soa.lng b/interface/web/dns/lib/lang/dk_dns_soa.lng index 1c8c5cc53c415555b240266f33e8c17ac079d785..6a3d71d973588f748bbda7b7d566a23442ed8a8a 100644 --- a/interface/web/dns/lib/lang/dk_dns_soa.lng +++ b/interface/web/dns/lib/lang/dk_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Opfriske'; $wb['retry_txt'] = 'Prøv igen'; $wb['expire_txt'] = 'Udløber'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Tillad zone overførsler til <br />disse IP-adresser (kommasepareret liste)'; $wb['active_txt'] = 'Aktiv'; diff --git a/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng index 32728405bb779326b1af8b733953c7d570642627..f25d33ee67f00efddf778198080b30b5c89f244c 100644 --- a/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'E-mail'; $wb['add_new_record_wizard_txt'] = 'Tilføj ny DNS Zone med Guide'; $wb['add_new_record_txt'] = 'Tilføj ny DNS Zone manuelt'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Kunde'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_spf.lng b/interface/web/dns/lib/lang/dk_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/dk_dns_spf.lng +++ b/interface/web/dns/lib/lang/dk_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_sshfp.lng b/interface/web/dns/lib/lang/dk_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/dk_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_a.lng b/interface/web/dns/lib/lang/el_dns_a.lng index ca5f336d98b0f3e11448dd50a78aca721df2ec4c..96667ba7a2db608290023f16f28df8af60cf5e86 100644 --- a/interface/web/dns/lib/lang/el_dns_a.lng +++ b/interface/web/dns/lib/lang/el_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Το hostname δεν Îχει οÏιστεί.'; $wb['name_error_regex'] = 'Το hostname δεν Îχει σωστή μοÏφοποίηση.'; $wb['data_error_empty'] = 'Η διεÏθυνση IP είναι κενή'; $wb['ip_error_wrong'] = 'ΔιεÏθυνση IP με μη ÎγκυÏη μοÏφοποίηση'; -$wb['data_error_duplicate'] = 'Διπλή εγγÏαφή A-Record ή CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_aaaa.lng b/interface/web/dns/lib/lang/el_dns_aaaa.lng index 5ca896c732464dade830e64edabd23cb7abf795f..5c66fee51dd90b5d47a862e921b0c54329a06b07 100644 --- a/interface/web/dns/lib/lang/el_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/el_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Δεν Îχετε δικαίωμα να Ï€ÏοσθÎσε $wb['name_error_empty'] = 'Το hostname δεν Îχει οÏιστεί.'; $wb['name_error_regex'] = 'Το hostname δεν Îχει σωστή μοÏφοποίηση.'; $wb['data_error_empty'] = 'ΔιεÏθυνση IP κενή'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'ΔιεÏθυνση IP με μη ÎγκυÏη μοÏφοποίηση'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_caa.lng b/interface/web/dns/lib/lang/el_dns_caa.lng index 1fa7dcb7d579d3913038504ed9dff698bb747402..973a97ceb6870404d7c8107002e1738b373362a0 100644 --- a/interface/web/dns/lib/lang/el_dns_caa.lng +++ b/interface/web/dns/lib/lang/el_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/el_dns_cname.lng b/interface/web/dns/lib/lang/el_dns_cname.lng index 546d16fdaebf10602422a5821f9f979081417e5f..ba6404887a7030aa7bebbbdcf504c4ed52240879 100644 --- a/interface/web/dns/lib/lang/el_dns_cname.lng +++ b/interface/web/dns/lib/lang/el_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Το hostname δεν Îχει οÏιστεί.'; $wb['name_error_regex'] = 'Το hostname δεν Îχει σωστή μοÏφοποίηση.'; $wb['data_error_empty'] = 'Το hostname Î ÏοοÏισμός δεν Îχει οÏιστεί'; $wb['data_error_regex'] = 'Hostname Î ÏοοÏισμός με μη ÎγκυÏη μοÏφοποίηση'; -$wb['data_error_duplicate'] = 'ΔιπλοεγγÏαφή A-Record ή CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_dname.lng b/interface/web/dns/lib/lang/el_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..6623e1f8af354fe71a53390a1bb3e3ae7639fa23 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Ζώνη'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'Ï„Ïπος'; +$wb['data_txt'] = 'Hostname Î ÏοοÏισμός'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'ΕνεÏγή'; +$wb['limit_dns_record_txt'] = 'Έχετε φτάσει το μÎγιστο πλήθος των εγγÏαφών DNS για τον λογαÏιασμό σας.'; +$wb['no_zone_perm'] = 'Δεν Îχετε δικαίωμα να Ï€ÏοσθÎσετε εγγÏαφÎÏ‚ σε αυτή τη ζώνη DNS.'; +$wb['name_error_empty'] = 'Το hostname δεν Îχει οÏιστεί.'; +$wb['name_error_regex'] = 'Το hostname δεν Îχει σωστή μοÏφοποίηση.'; +$wb['data_error_empty'] = 'Το hostname Î ÏοοÏισμός δεν Îχει οÏιστεί'; +$wb['data_error_regex'] = 'Hostname Î ÏοοÏισμός με μη ÎγκυÏη μοÏφοποίηση'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_import.lng b/interface/web/dns/lib/lang/el_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/el_dns_import.lng +++ b/interface/web/dns/lib/lang/el_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_naptr.lng b/interface/web/dns/lib/lang/el_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_spf.lng b/interface/web/dns/lib/lang/el_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/el_dns_spf.lng +++ b/interface/web/dns/lib/lang/el_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_sshfp.lng b/interface/web/dns/lib/lang/el_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_a.lng b/interface/web/dns/lib/lang/en_dns_a.lng index dbba7fb6e8f11f41456a53342305ac907b196826..99ca6418b87ab350b2701de13e77b9af43b7ce4b 100644 --- a/interface/web/dns/lib/lang/en_dns_a.lng +++ b/interface/web/dns/lib/lang/en_dns_a.lng @@ -12,6 +12,6 @@ $wb["name_error_empty"] = 'The hostname is empty.'; $wb["name_error_regex"] = 'The hostname has the wrong format.'; $wb["data_error_empty"] = 'IP-Address empty'; $wb["ip_error_wrong"] = 'IP-Address format invalid'; -$wb["data_error_duplicate"] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -?> \ No newline at end of file +?> diff --git a/interface/web/dns/lib/lang/en_dns_aaaa.lng b/interface/web/dns/lib/lang/en_dns_aaaa.lng index 201a4d958479e7d7a08c20f76d2aa65ab2cc59db..3b642474c396064d2d5db58db24012413685c825 100644 --- a/interface/web/dns/lib/lang/en_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/en_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb["no_zone_perm"] = 'You do not have the permission to add a record to this DN $wb["name_error_empty"] = 'The hostname is empty.'; $wb["name_error_regex"] = 'The hostname has the wrong format.'; $wb["data_error_empty"] = 'IP-Address empty'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb["ip_error_wrong"] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -?> \ No newline at end of file +?> diff --git a/interface/web/dns/lib/lang/en_dns_cname.lng b/interface/web/dns/lib/lang/en_dns_cname.lng index ea67106e7af1c58dc38100fbbb29f5958dbcf791..d9b41a012e3f985990bf8c7907ba31666d094c99 100644 --- a/interface/web/dns/lib/lang/en_dns_cname.lng +++ b/interface/web/dns/lib/lang/en_dns_cname.lng @@ -12,6 +12,6 @@ $wb["name_error_empty"] = 'The hostname is empty.'; $wb["name_error_regex"] = 'The hostname has the wrong format.'; $wb["data_error_empty"] = 'Target hostname empty'; $wb["data_error_regex"] = 'Target hostname format invalid'; -$wb["data_error_duplicate"] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -?> \ No newline at end of file +?> diff --git a/interface/web/dns/lib/lang/en_dns_dname.lng b/interface/web/dns/lib/lang/en_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..95e81423e01c386c2da9b61bfa33adfd66abe429 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["type_txt"] = 'type'; +$wb["data_txt"] = 'Target Hostname'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'Target hostname empty'; +$wb["data_error_regex"] = 'Target hostname format invalid'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_import.lng b/interface/web/dns/lib/lang/en_dns_import.lng index c80722c3c18d2d4c44e2a218e35506c381d40b82..89227b15a5836717fa1957f77fc7990b474e22d9 100644 --- a/interface/web/dns/lib/lang/en_dns_import.lng +++ b/interface/web/dns/lib/lang/en_dns_import.lng @@ -5,12 +5,21 @@ $wb['client_txt'] = 'Client'; $wb["btn_save_txt"] = 'Import Zonefile'; $wb["btn_cancel_txt"] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; -$wb['no_file_uploaded_error'] = 'No zonefile uploaded'; +$wb['no_file_uploaded_error'] = 'No zonefile uploaded.'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; -?> \ No newline at end of file +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_naptr.lng b/interface/web/dns/lib/lang/en_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng index 03dd6834c9584916c86abeb5b8cab8b81a3585a0..1729a4d0cbe9b2e3a311462517c1dc811e11460c 100644 --- a/interface/web/dns/lib/lang/en_dns_soa.lng +++ b/interface/web/dns/lib/lang/en_dns_soa.lng @@ -7,7 +7,7 @@ $wb["serial_txt"] = 'Serial'; $wb["refresh_txt"] = 'Refresh'; $wb["retry_txt"] = 'Retry'; $wb["expire_txt"] = 'Expire'; -$wb["minimum_txt"] = 'Minimum'; +$wb["minimum_txt"] = 'Minimum (negative cache ttl)'; $wb["ttl_txt"] = 'TTL'; $wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; $wb["active_txt"] = 'Active'; diff --git a/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng index 44cec900b91c118424bf2ddd98b5d0d530d42776..f7f815079d6de2ce6b135c2593f8437ffca7b89b 100644 --- a/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb["ns_txt"] = 'NS'; $wb["mbox_txt"] = 'Email'; $wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; $wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb["sys_groupid_txt"] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/en_dns_spf.lng b/interface/web/dns/lib/lang/en_dns_spf.lng index 7ac24dd227b26b9a34faa0b6877a8a7c5a53b99a..2518d4f51f5ac41d4b56678c2e350d9e2ea4ad16 100644 --- a/interface/web/dns/lib/lang/en_dns_spf.lng +++ b/interface/web/dns/lib/lang/en_dns_spf.lng @@ -2,6 +2,7 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -21,8 +22,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb["ttl_txt"] = 'TTL'; $wb["active_txt"] = 'Active'; $wb["record_exists_txt"] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; $wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> - diff --git a/interface/web/dns/lib/lang/en_dns_sshfp.lng b/interface/web/dns/lib/lang/en_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..a2e3322bb6d175e6bb32a2cd91fdc7325fcd706a --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["type_txt"] = 'type'; +$wb["data_txt"] = 'Data'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'Text empty'; +$wb["data_error_regex"] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/es.lng b/interface/web/dns/lib/lang/es.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_a.lng b/interface/web/dns/lib/lang/es_dns_a.lng old mode 100755 new mode 100644 index f3ea858f1dbcef5b1dcd2fa385c39012b302c73a..6d3c01ebb4816657d08bd61ee4ad01dd934710f5 --- a/interface/web/dns/lib/lang/es_dns_a.lng +++ b/interface/web/dns/lib/lang/es_dns_a.lng @@ -1,6 +1,6 @@ <?php $wb['active_txt'] = 'Habilitado'; -$wb['data_error_duplicate'] = 'Registro A o registro CNAME duplicado.'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['data_error_empty'] = 'Dirección IP vacÃa'; $wb['data_txt'] = 'Dirección IP'; $wb['ip_error_wrong'] = 'Formato inválido de dirección IP'; diff --git a/interface/web/dns/lib/lang/es_dns_a_list.lng b/interface/web/dns/lib/lang/es_dns_a_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_aaaa.lng b/interface/web/dns/lib/lang/es_dns_aaaa.lng old mode 100755 new mode 100644 index 8851ef84ffcaaaf6fe9db91e3b44028d305434ce..85ff1ba5a74c87800ef139e2fe1d06ab1b37b150 --- a/interface/web/dns/lib/lang/es_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/es_dns_aaaa.lng @@ -1,6 +1,7 @@ <?php $wb['active_txt'] = 'Habilitado'; $wb['data_error_empty'] = 'Dirección IP vacÃa'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['data_txt'] = 'Dirección IPv6'; $wb['ip_error_wrong'] = 'La dirección IP tiene un formato incorrecto'; $wb['limit_dns_record_txt'] = 'Ha alcanzado el número máx. de registros DNS permitidos para su cuenta.'; diff --git a/interface/web/dns/lib/lang/es_dns_alias.lng b/interface/web/dns/lib/lang/es_dns_alias.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_caa.lng b/interface/web/dns/lib/lang/es_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/es_dns_caa.lng +++ b/interface/web/dns/lib/lang/es_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/es_dns_cname.lng b/interface/web/dns/lib/lang/es_dns_cname.lng old mode 100755 new mode 100644 index 73bfc671a9a4f51f125801dda03d8d344b4f44d2..ffc748f106c96346062fe9748823bc9fe2517ce4 --- a/interface/web/dns/lib/lang/es_dns_cname.lng +++ b/interface/web/dns/lib/lang/es_dns_cname.lng @@ -1,6 +1,6 @@ <?php $wb['active_txt'] = 'Habilitado'; -$wb['data_error_duplicate'] = 'Registro A o registro CNAME duplicado.'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['data_error_empty'] = 'El nombre del host de destino está vacÃo.'; $wb['data_error_regex'] = 'El nombre del host de destino tiene un formato incorrecto.'; $wb['data_txt'] = 'Nombre del host de destino'; diff --git a/interface/web/dns/lib/lang/es_dns_dkim.lng b/interface/web/dns/lib/lang/es_dns_dkim.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_dmarc.lng b/interface/web/dns/lib/lang/es_dns_dmarc.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_dname.lng b/interface/web/dns/lib/lang/es_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..c28f8eeb3ef546cfb4de6ce6fecd27da98191348 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['active_txt'] = 'Habilitado'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['data_error_empty'] = 'El nombre del host de destino está vacÃo.'; +$wb['data_error_regex'] = 'El nombre del host de destino tiene un formato incorrecto.'; +$wb['data_txt'] = 'Nombre del host de destino'; +$wb['limit_dns_record_txt'] = 'Ha alcanzado el número máx. de registros DNS permitidos para su cuenta.'; +$wb['name_error_empty'] = 'El nombre del host está vacÃo.'; +$wb['name_error_regex'] = 'El nombre del host tiene un formato incorrecto.'; +$wb['name_txt'] = 'Nombre del host'; +$wb['no_zone_perm'] = 'Usted no tiene permisos para agregar un registro a esta zona DNS.'; +$wb['server_id_txt'] = 'Servidor'; +$wb['ttl_range_error'] = 'El tiempo mÃn. de TTL es 60 segundos.'; +$wb['ttl_txt'] = 'TTL'; +$wb['type_txt'] = 'tipo'; +$wb['zone_txt'] = 'Zona'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_ds.lng b/interface/web/dns/lib/lang/es_dns_ds.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_hinfo.lng b/interface/web/dns/lib/lang/es_dns_hinfo.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_import.lng b/interface/web/dns/lib/lang/es_dns_import.lng old mode 100755 new mode 100644 index 80b5eb463b661209f7f2f6a777278d7c4db8658b..db73b69e33602d1fbbea4ad1ee3ffbacf8c2b9af --- a/interface/web/dns/lib/lang/es_dns_import.lng +++ b/interface/web/dns/lib/lang/es_dns_import.lng @@ -13,4 +13,13 @@ $wb['title'] = 'Importar Archivo de Zona'; $wb['zone_file_import_txt'] = 'Importar archivo de zona'; $wb['zone_file_successfully_imported_txt'] = 'El archivo de zona se ha importado correctamente!'; $wb['zonefile_to_import_txt'] = 'Archivo de Zona'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/es_dns_loc.lng b/interface/web/dns/lib/lang/es_dns_loc.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_mx.lng b/interface/web/dns/lib/lang/es_dns_mx.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_naptr.lng b/interface/web/dns/lib/lang/es_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_ns.lng b/interface/web/dns/lib/lang/es_dns_ns.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_ptr.lng b/interface/web/dns/lib/lang/es_dns_ptr.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_rp.lng b/interface/web/dns/lib/lang/es_dns_rp.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_slave_list.lng b/interface/web/dns/lib/lang/es_dns_slave_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_soa.lng b/interface/web/dns/lib/lang/es_dns_soa.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng old mode 100755 new mode 100644 index aeb2618de3d4f6aaa880e9796d351241290eec88..087ebd80edb8b05a30fbb4acead5bc3ce51651b2 --- a/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng @@ -2,6 +2,7 @@ $wb['active_txt'] = 'Habilitado'; $wb['add_new_record_txt'] = 'Añadir nueva Zona DNS manualmente'; $wb['add_new_record_wizard_txt'] = 'Añadir nueva Zona DNS usando el asistente'; +$wb['import_zone_file_txt'] = 'Importar archivo de zona'; $wb['list_head_txt'] = 'Zonas DNS'; $wb['mbox_txt'] = 'Email'; $wb['ns_txt'] = 'NS'; diff --git a/interface/web/dns/lib/lang/es_dns_soa_list.lng b/interface/web/dns/lib/lang/es_dns_soa_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_spf.lng b/interface/web/dns/lib/lang/es_dns_spf.lng old mode 100755 new mode 100644 index e4094672bb524276712d89d6dfd2820b97be6bb7..62c60654f0315adcc9ad801d66f627c050696498 --- a/interface/web/dns/lib/lang/es_dns_spf.lng +++ b/interface/web/dns/lib/lang/es_dns_spf.lng @@ -1,9 +1,12 @@ <?php $wb['active_txt'] = 'Habilitado'; +$wb['name_txt'] = 'Hostname'; $wb['data_txt'] = 'Registro SPF'; $wb['limit_dns_record_txt'] = 'Ha alcanzado el número máx. de registros DNS permitidos para su cuenta.'; $wb['no_zone_perm'] = 'Usted no tiene permisos para agregar un registro a esta zona DNS.'; $wb['record_exists_txt'] = 'El registro DNS ya existe'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['spf_a_txt'] = 'Permitir a la dirección IP actual del dominio enviar correo electrónico para este dominio'; $wb['spf_domain_note_txt'] = '(dominios separados por espacios en blanco)'; $wb['spf_domain_txt'] = 'Cualquier dominio que pueda entregar o retransmitir correo para este dominio'; @@ -22,4 +25,6 @@ $wb['spf_mechanism_txt'] = 'Mecanismo SPF'; $wb['spf_mx_txt'] = 'Permite a los servidores configurados como MX enviar correos desde este dominio'; $wb['ttl_range_error'] = 'El tiempo mÃn. de TTL es 60 segundos.'; $wb['ttl_txt'] = 'TTL'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/es_dns_srv.lng b/interface/web/dns/lib/lang/es_dns_srv.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_sshfp.lng b/interface/web/dns/lib/lang/es_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..58292c007a14bbe01b614956c0863bb32ac0a33f --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['active_txt'] = 'Habilitado'; +$wb['data_error_empty'] = 'Datos vacÃos'; +$wb['data_error_regex'] = 'El formato de los datos no es correcto'; +$wb['data_txt'] = 'Datos'; +$wb['limit_dns_record_txt'] = 'Ha alcanzado el número máx. de registros DNS permitidos para su cuenta.'; +$wb['name_error_empty'] = 'El nombre del host está vacÃo.'; +$wb['name_error_regex'] = 'El nombre del host tiene un formato incorrecto.'; +$wb['name_txt'] = 'Nombre del host'; +$wb['no_zone_perm'] = 'Usted no tiene permisos para agregar un registro a esta zona DNS.'; +$wb['server_id_txt'] = 'Servidor'; +$wb['ttl_range_error'] = 'El tiempo mÃn. de TTL es 60 segundos.'; +$wb['ttl_txt'] = 'TTL'; +$wb['type_txt'] = 'tipo'; +$wb['zone_txt'] = 'Zona'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_template.lng b/interface/web/dns/lib/lang/es_dns_template.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_template_list.lng b/interface/web/dns/lib/lang/es_dns_template_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_tlsa.lng b/interface/web/dns/lib/lang/es_dns_tlsa.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_txt.lng b/interface/web/dns/lib/lang/es_dns_txt.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/es_dns_wizard.lng b/interface/web/dns/lib/lang/es_dns_wizard.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi.lng b/interface/web/dns/lib/lang/fi.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_a.lng b/interface/web/dns/lib/lang/fi_dns_a.lng old mode 100755 new mode 100644 index a7cf6efbbb404cddabedf35b1f9a57d4a6f4a959..701b5281afa45ca7e206ff30c910aef1a5bcf870 --- a/interface/web/dns/lib/lang/fi_dns_a.lng +++ b/interface/web/dns/lib/lang/fi_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Verkkotunnus on tyhjä.'; $wb['name_error_regex'] = 'Verkkotunnus on vääränlainen.'; $wb['data_error_empty'] = 'IP-osoite tyhjä'; $wb['ip_error_wrong'] = 'IP-osoite on vääränlainen'; -$wb['data_error_duplicate'] = 'A-tietue on jo olemassa'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_a_list.lng b/interface/web/dns/lib/lang/fi_dns_a_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_aaaa.lng b/interface/web/dns/lib/lang/fi_dns_aaaa.lng index 78c65575fd57a6a9e57cdbf8c29e6f23dc9213a8..8c0c607141fc76829948021789addea1f41c7d42 100644 --- a/interface/web/dns/lib/lang/fi_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/fi_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Käyttäjätunnuksella ei ole oikeuksia lisätä tietueit $wb['name_error_empty'] = 'Verkkotunnus on tyhjä.'; $wb['name_error_regex'] = 'Verkkotunnus on väärän muotoinen.'; $wb['data_error_empty'] = 'Tekstikenttä on tyhjä'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'Tekstikenttä on vääränlainen'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_alias.lng b/interface/web/dns/lib/lang/fi_dns_alias.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_caa.lng b/interface/web/dns/lib/lang/fi_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/fi_dns_caa.lng +++ b/interface/web/dns/lib/lang/fi_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/fi_dns_cname.lng b/interface/web/dns/lib/lang/fi_dns_cname.lng old mode 100755 new mode 100644 index 3241e1f7800ebf954a95be415255aafb1f6ff102..d7483389d436a4dd498e1639449db04184cadc74 --- a/interface/web/dns/lib/lang/fi_dns_cname.lng +++ b/interface/web/dns/lib/lang/fi_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Verkkotunnus on tyhjä.'; $wb['name_error_regex'] = 'Verkkotunnus on vääränlainen.'; $wb['data_error_empty'] = 'Kohteen verkkotunnus on tyhjä'; $wb['data_error_regex'] = 'Kohteen verkkotunnus on vääränlainen'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_dname.lng b/interface/web/dns/lib/lang/fi_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..58d5481afc36611fc8f6809dd2e65e54f37c2e90 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Palvelin'; +$wb['zone_txt'] = 'Alue (Zone)'; +$wb['name_txt'] = 'Verkkotunnus'; +$wb['type_txt'] = 'Tyyppi'; +$wb['data_txt'] = 'Kohteen verkkotunnus'; +$wb['ttl_txt'] = 'Elinaika (TTL)'; +$wb['active_txt'] = 'Käytössä'; +$wb['limit_dns_record_txt'] = 'Käyttäjätunnuksella on jo sallittu määrä DNS-tietueita.'; +$wb['no_zone_perm'] = 'Käyttäjätunnuksella ei ole oikeuksia lisätä tietueita tälle DNS-alueelle.'; +$wb['name_error_empty'] = 'Verkkotunnus on tyhjä.'; +$wb['name_error_regex'] = 'Verkkotunnus on vääränlainen.'; +$wb['data_error_empty'] = 'Kohteen verkkotunnus on tyhjä'; +$wb['data_error_regex'] = 'Kohteen verkkotunnus on vääränlainen'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_hinfo.lng b/interface/web/dns/lib/lang/fi_dns_hinfo.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_import.lng b/interface/web/dns/lib/lang/fi_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/fi_dns_import.lng +++ b/interface/web/dns/lib/lang/fi_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_mx.lng b/interface/web/dns/lib/lang/fi_dns_mx.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_naptr.lng b/interface/web/dns/lib/lang/fi_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_ns.lng b/interface/web/dns/lib/lang/fi_dns_ns.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_ptr.lng b/interface/web/dns/lib/lang/fi_dns_ptr.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_rp.lng b/interface/web/dns/lib/lang/fi_dns_rp.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_soa.lng b/interface/web/dns/lib/lang/fi_dns_soa.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_soa_list.lng b/interface/web/dns/lib/lang/fi_dns_soa_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_spf.lng b/interface/web/dns/lib/lang/fi_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/fi_dns_spf.lng +++ b/interface/web/dns/lib/lang/fi_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_srv.lng b/interface/web/dns/lib/lang/fi_dns_srv.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_sshfp.lng b/interface/web/dns/lib/lang/fi_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_template.lng b/interface/web/dns/lib/lang/fi_dns_template.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_template_list.lng b/interface/web/dns/lib/lang/fi_dns_template_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_txt.lng b/interface/web/dns/lib/lang/fi_dns_txt.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fi_dns_wizard.lng b/interface/web/dns/lib/lang/fi_dns_wizard.lng old mode 100755 new mode 100644 diff --git a/interface/web/dns/lib/lang/fr_dns_a.lng b/interface/web/dns/lib/lang/fr_dns_a.lng index 381fd623a6d5c134b18ccb9eca91c4566126dc34..9e9625ba1c21dd01f9baa43779b523daa2055bfb 100644 --- a/interface/web/dns/lib/lang/fr_dns_a.lng +++ b/interface/web/dns/lib/lang/fr_dns_a.lng @@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Vous n’avez pas la permission d’ajouter un enregistre $wb['name_error_empty'] = 'Le nom d’hôte est vide.'; $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.'; $wb['data_error_empty'] = 'L’adresse IP est vide.'; -$wb['data_error_duplicate'] = 'Enregistrement A ou CNAME en double'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_aaaa.lng b/interface/web/dns/lib/lang/fr_dns_aaaa.lng index 1cc3722de5030f5a744c59729b119214029709ba..9f925c32919a8776ba919624ba1623fcd222037a 100644 --- a/interface/web/dns/lib/lang/fr_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/fr_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Vous n’avez pas la permission d’ajouter un enregistre $wb['name_error_empty'] = 'Le nom d’hôte est vide.'; $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.'; $wb['data_error_empty'] = 'L’adresse IP est vide.'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_caa.lng b/interface/web/dns/lib/lang/fr_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/fr_dns_caa.lng +++ b/interface/web/dns/lib/lang/fr_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/fr_dns_cname.lng b/interface/web/dns/lib/lang/fr_dns_cname.lng index 15b4144086ea376976c50cf4e32c73731d53dfac..47779eeffeb6ea4b4b846edd8d40ee1df84f3a5f 100644 --- a/interface/web/dns/lib/lang/fr_dns_cname.lng +++ b/interface/web/dns/lib/lang/fr_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Le nom d’hôte est vide.'; $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.'; $wb['data_error_empty'] = 'Le nom d’hôte cible est vide.'; $wb['data_error_regex'] = 'Le format du nom d’hôte cible invalide.'; -$wb['data_error_duplicate'] = 'Enregistrement A ou CNAME en double'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_dname.lng b/interface/web/dns/lib/lang/fr_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..ad41861785d3d46c82ee234daa455678c614ef8f --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Serveur'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Nom d’hôte'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Nom d’hôte cible'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Actif'; +$wb['limit_dns_record_txt'] = 'Le nombre maximum d’enregistrements DNS pour votre compte a été atteint.'; +$wb['no_zone_perm'] = 'Vous n’avez pas la permission d’ajouter un enregistrement dans cette zone DNS.'; +$wb['name_error_empty'] = 'Le nom d’hôte est vide.'; +$wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.'; +$wb['data_error_empty'] = 'Le nom d’hôte cible est vide.'; +$wb['data_error_regex'] = 'Le format du nom d’hôte cible invalide.'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_import.lng b/interface/web/dns/lib/lang/fr_dns_import.lng index 73bc88f82460a20e463a0509f12b511f81aa40a4..c367f542bb17aabbf3c29f2799108c8e07d705a0 100644 --- a/interface/web/dns/lib/lang/fr_dns_import.lng +++ b/interface/web/dns/lib/lang/fr_dns_import.lng @@ -13,4 +13,13 @@ $wb['no_file_uploaded_error'] = 'Aucun fichier de Zone téléchargé'; $wb['zone_file_import_txt'] = 'Importer un fichier de Zone'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_naptr.lng b/interface/web/dns/lib/lang/fr_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_soa.lng b/interface/web/dns/lib/lang/fr_dns_soa.lng index fa5a5202f6b3ce87509c5d6a55f9d0f6c899514f..da63faadbdea9adab67fa598a1331997d941d246 100644 --- a/interface/web/dns/lib/lang/fr_dns_soa.lng +++ b/interface/web/dns/lib/lang/fr_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Autoriser les transfers de zones vers <br />ces IP (liste séparée par des virgules)'; $wb['active_txt'] = 'Actif'; diff --git a/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng index e4d52ffee58b6979f48337ca25346a9d04a6e6c8..0e5779a0a226f1a7caa637a4a2f2a11dd2050bd5 100644 --- a/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'E-mail'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_spf.lng b/interface/web/dns/lib/lang/fr_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/fr_dns_spf.lng +++ b/interface/web/dns/lib/lang/fr_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_sshfp.lng b/interface/web/dns/lib/lang/fr_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_a.lng b/interface/web/dns/lib/lang/hr_dns_a.lng index a6be0b89fc7b37a684dbf690f717fcd2546c2003..bcc49eb52b3bee4deaff3b020f8a4844e67ae927 100644 --- a/interface/web/dns/lib/lang/hr_dns_a.lng +++ b/interface/web/dns/lib/lang/hr_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje IP adresa je prazno'; $wb['ip_error_wrong'] = 'Neispravan format A zapisa'; -$wb['data_error_duplicate'] = 'Već postoji ovaj A ili CNAME zapis'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_aaaa.lng b/interface/web/dns/lib/lang/hr_dns_aaaa.lng index d8a3419309a7d907b6e69a593fcf1eb599642470..2be6042aa92f98f0fdb3d3287693190591fe4242 100644 --- a/interface/web/dns/lib/lang/hr_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/hr_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Nemate dozvolu za dodavanja zapisa ovoj domeni.'; $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje IPv6 adresa je prazno'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'Neispravan format IPv6 adrese'; $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_caa.lng b/interface/web/dns/lib/lang/hr_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/hr_dns_caa.lng +++ b/interface/web/dns/lib/lang/hr_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/hr_dns_cname.lng b/interface/web/dns/lib/lang/hr_dns_cname.lng index cb1f5ece00960f6381789053389b185c3aa2dd6d..ce334e750e07d4fea3b80f9a5ec5dbe56f12dc58 100644 --- a/interface/web/dns/lib/lang/hr_dns_cname.lng +++ b/interface/web/dns/lib/lang/hr_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje odrediÅ¡ni host je prazno'; $wb['data_error_regex'] = 'Neispravan format odrediÅ¡nog host zapisa'; -$wb['data_error_duplicate'] = 'Duplicirani A zapis ili CNAME zapis'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_dname.lng b/interface/web/dns/lib/lang/hr_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..e854c3efe1335dee4c9890f277b6e5ed84d43dfd --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zona'; +$wb['name_txt'] = 'Naziv hosta'; +$wb['type_txt'] = 'Vrsta'; +$wb['data_txt'] = 'OdrediÅ¡ni host'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktivno'; +$wb['limit_dns_record_txt'] = 'IskoriÅ¡ten je maksimalan broj DNS zapisa za vaÅ¡ raÄun.'; +$wb['no_zone_perm'] = 'Nemate dozvolu za dodavanja zapisa ovoj domeni.'; +$wb['name_error_empty'] = 'Naziv hosta nije upisan.'; +$wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; +$wb['data_error_empty'] = 'Polje odrediÅ¡ni host je prazno'; +$wb['data_error_regex'] = 'Neispravan format odrediÅ¡nog host zapisa'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_import.lng b/interface/web/dns/lib/lang/hr_dns_import.lng index 09c178e5bbbaa7e7d7580c1e454f2b2dc8b1fe79..59632ed64edad24d7f293db3c849e21f76fd9f18 100644 --- a/interface/web/dns/lib/lang/hr_dns_import.lng +++ b/interface/web/dns/lib/lang/hr_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Klijent'; $wb['btn_save_txt'] = 'Importiraj zonsku datoteku'; $wb['btn_cancel_txt'] = 'Odustani'; $wb['domain_txt'] = 'Domena'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zonska datoteka'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Importiraj zonske datoteka'; $wb['no_file_uploaded_error'] = 'Nije preneÅ¡ena zonska datoteka'; $wb['zone_file_import_txt'] = 'Importiraj zonsku datoteku'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_naptr.lng b/interface/web/dns/lib/lang/hr_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng index 1dc2853bcf6d2f3cc78a5048ad1efd298d3acaeb..f8753a3465ed1031a0fb0f8bf7ff626ef43a6941 100644 --- a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Dodaj novu DNS zonu sa Äarobnjakom'; $wb['add_new_record_txt'] = 'Dodaj novu DNS zonu ruÄno'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Klijent'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_spf.lng b/interface/web/dns/lib/lang/hr_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/hr_dns_spf.lng +++ b/interface/web/dns/lib/lang/hr_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_sshfp.lng b/interface/web/dns/lib/lang/hr_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_a.lng b/interface/web/dns/lib/lang/hu_dns_a.lng index 3e52e94b9f5acb7515ce3d22b0bee93a7491801e..f17ccaa11d2fa46cbbce0d56eb8fe388b6850089 100644 --- a/interface/web/dns/lib/lang/hu_dns_a.lng +++ b/interface/web/dns/lib/lang/hu_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_aaaa.lng b/interface/web/dns/lib/lang/hu_dns_aaaa.lng index f78f42d1869ac054c4cb54c52b6d4e5a514ce395..02643fed884368f44a252c7f0ee12cf5f28e740b 100644 --- a/interface/web/dns/lib/lang/hu_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/hu_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_caa.lng b/interface/web/dns/lib/lang/hu_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/hu_dns_caa.lng +++ b/interface/web/dns/lib/lang/hu_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/hu_dns_cname.lng b/interface/web/dns/lib/lang/hu_dns_cname.lng index 9f45f5279c5304c814266464a5e06b51a1e61388..38a64157742553b6ceb575bcd1816e82e8707218 100644 --- a/interface/web/dns/lib/lang/hu_dns_cname.lng +++ b/interface/web/dns/lib/lang/hu_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Target hostname empty'; $wb['data_error_regex'] = 'Target hostname format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_dname.lng b/interface/web/dns/lib/lang/hu_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..d8d5ba81894dfd88e8fbb2e93ccb91bfbabb6a22 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Szerver'; +$wb['zone_txt'] = 'Zóna'; +$wb['name_txt'] = 'Hosztnév'; +$wb['type_txt'] = 'tÃpus'; +$wb['data_txt'] = 'Target Hosztnév'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'AktÃv'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Target hostname empty'; +$wb['data_error_regex'] = 'Target hostname format invalid'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_import.lng b/interface/web/dns/lib/lang/hu_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/hu_dns_import.lng +++ b/interface/web/dns/lib/lang/hu_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_naptr.lng b/interface/web/dns/lib/lang/hu_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_soa.lng b/interface/web/dns/lib/lang/hu_dns_soa.lng index 80388e40560f24b36c3f56d36fac1fc241c1dcf1..401961408864d7817ba7e8c5f4b4ecbc3b02d7c8 100644 --- a/interface/web/dns/lib/lang/hu_dns_soa.lng +++ b/interface/web/dns/lib/lang/hu_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list)'; $wb['active_txt'] = 'AktÃv'; diff --git a/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_spf.lng b/interface/web/dns/lib/lang/hu_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/hu_dns_spf.lng +++ b/interface/web/dns/lib/lang/hu_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_sshfp.lng b/interface/web/dns/lib/lang/hu_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_a.lng b/interface/web/dns/lib/lang/id_dns_a.lng index e9533800906eb1859a20d525485e16db890a27ad..20d5e9f3557a3eee330181de61761d1de0b960f3 100644 --- a/interface/web/dns/lib/lang/id_dns_a.lng +++ b/interface/web/dns/lib/lang/id_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nama Host kosong.'; $wb['name_error_regex'] = 'Format Nama Host salah.'; $wb['data_error_empty'] = 'Alamat IP kosong'; $wb['ip_error_wrong'] = 'Format Alamat IP tidak valid'; -$wb['data_error_duplicate'] = 'Record-A Ganda'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_aaaa.lng b/interface/web/dns/lib/lang/id_dns_aaaa.lng index 68cab8327197c6488b3a7265b01a6a2396053434..f9b3395995060068513c469f6e78b5f965be3ce8 100644 --- a/interface/web/dns/lib/lang/id_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/id_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Anda tidak memiliki hak untuk menambah record ke zona DNS $wb['name_error_empty'] = 'Nama Host kosong.'; $wb['name_error_regex'] = 'Format Nama Host salah.'; $wb['data_error_empty'] = 'Alamat IP kosong'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'Format Alamat IP tidak valid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_caa.lng b/interface/web/dns/lib/lang/id_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/id_dns_caa.lng +++ b/interface/web/dns/lib/lang/id_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/id_dns_cname.lng b/interface/web/dns/lib/lang/id_dns_cname.lng index a12d665652181538d85dd8928152ced23b6b8dca..94134153949c048b21dd0b478545937e47d89574 100644 --- a/interface/web/dns/lib/lang/id_dns_cname.lng +++ b/interface/web/dns/lib/lang/id_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nama Host kosong.'; $wb['name_error_regex'] = 'Format Nama Host salah.'; $wb['data_error_empty'] = 'Nama Host Target kosong'; $wb['data_error_regex'] = 'Format Nama Host Target tidak valid'; -$wb['data_error_duplicate'] = 'Record-A atau Record-CNAME Ganda'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_dname.lng b/interface/web/dns/lib/lang/id_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..a941b31084928874ae4fce695eaeb5736031466b --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zona'; +$wb['name_txt'] = 'Nama Host'; +$wb['type_txt'] = 'Tipe'; +$wb['data_txt'] = 'Nama Host Target'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktif'; +$wb['limit_dns_record_txt'] = 'Jumlah maksimum record DNS untuk akun Anda telah tercapai.'; +$wb['no_zone_perm'] = 'Anda tidak memiliki hak untuk menambah record ke zona DNS ini.'; +$wb['name_error_empty'] = 'Nama Host kosong.'; +$wb['name_error_regex'] = 'Format Nama Host salah.'; +$wb['data_error_empty'] = 'Nama Host Target kosong'; +$wb['data_error_regex'] = 'Format Nama Host Target tidak valid'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_import.lng b/interface/web/dns/lib/lang/id_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/id_dns_import.lng +++ b/interface/web/dns/lib/lang/id_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_naptr.lng b/interface/web/dns/lib/lang/id_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_soa.lng b/interface/web/dns/lib/lang/id_dns_soa.lng index a8b9df0d591dff46b52da7f4c67082e1617f0c22..c42890b71c1ae0cd010a138d54c21fd6e0016403 100644 --- a/interface/web/dns/lib/lang/id_dns_soa.lng +++ b/interface/web/dns/lib/lang/id_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Izinkan transfer zona ke <br />IP ini (daftar dipisahkan dengan koma)'; $wb['active_txt'] = 'Aktif'; diff --git a/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_spf.lng b/interface/web/dns/lib/lang/id_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/id_dns_spf.lng +++ b/interface/web/dns/lib/lang/id_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_sshfp.lng b/interface/web/dns/lib/lang/id_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_a.lng b/interface/web/dns/lib/lang/it_dns_a.lng index 122560b487303a23c1b0cb5732278a14235332b5..eec6ad5b07b3eda79f386bf1fe5fca4ba8be76e3 100644 --- a/interface/web/dns/lib/lang/it_dns_a.lng +++ b/interface/web/dns/lib/lang/it_dns_a.lng @@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['name_error_empty'] = 'The hostname vuoto.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; -$wb['data_error_duplicate'] = 'Duplicate A-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_aaaa.lng b/interface/web/dns/lib/lang/it_dns_aaaa.lng index 2746bb887df7d2ada5cffb61cbc6bd2e65964ed9..fb1a2a58a677a3fab007cf87743de72c4f186b0e 100644 --- a/interface/web/dns/lib/lang/it_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/it_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Non hai il permesso di aggiungere record a questa zona DN $wb['name_error_empty'] = 'Nome Host vuoto.'; $wb['name_error_regex'] = 'Formato errato per Nome Host.'; $wb['data_error_empty'] = 'Indirizzo Ip vuoto'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ttl_range_error'] = 'TTL time minimo 60 secondi.'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_caa.lng b/interface/web/dns/lib/lang/it_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/it_dns_caa.lng +++ b/interface/web/dns/lib/lang/it_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/it_dns_cname.lng b/interface/web/dns/lib/lang/it_dns_cname.lng index 0732cbd72a2ca1833d38cf522de80a5e971de439..6d7d135a018e70ed94e673b8f984c77f9c22ba10 100644 --- a/interface/web/dns/lib/lang/it_dns_cname.lng +++ b/interface/web/dns/lib/lang/it_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nome Host vuoto.'; $wb['name_error_regex'] = 'Formato errato per Nome Host.'; $wb['data_error_empty'] = 'Target nome host vuoto'; $wb['data_error_regex'] = 'Target nome host formato errato'; -$wb['data_error_duplicate'] = 'A-Record o CNAME-Record duplicato'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'TTL time minimo 60 secondi.'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_dname.lng b/interface/web/dns/lib/lang/it_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..e9d1a057cc51829d678f4c5ca676d1007859a54e --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zona'; +$wb['name_txt'] = 'Nome Host'; +$wb['type_txt'] = 'tipo'; +$wb['data_txt'] = 'Target Nome Host'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Attivo'; +$wb['limit_dns_record_txt'] = 'Numero massimo di record DNS raggiunto per il tuo account.'; +$wb['no_zone_perm'] = 'Non hai il permesso di aggiungere record a questa zona DNS.'; +$wb['name_error_empty'] = 'Nome Host vuoto.'; +$wb['name_error_regex'] = 'Formato errato per Nome Host.'; +$wb['data_error_empty'] = 'Target nome host vuoto'; +$wb['data_error_regex'] = 'Target nome host formato errato'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'TTL time minimo 60 secondi.'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_import.lng b/interface/web/dns/lib/lang/it_dns_import.lng index 4ccee92b65a6541416ab26920d0cb507a88ddbfe..1d734ab4b04f92286fdef0c96e3a62e0efe49c39 100644 --- a/interface/web/dns/lib/lang/it_dns_import.lng +++ b/interface/web/dns/lib/lang/it_dns_import.lng @@ -13,4 +13,13 @@ $wb['no_file_uploaded_error'] = 'Nessun file di zona selezionato'; $wb['zone_file_import_txt'] = 'Importa file di zona'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_naptr.lng b/interface/web/dns/lib/lang/it_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_soa.lng b/interface/web/dns/lib/lang/it_dns_soa.lng index 48ba33d550309b4ad0cb6f1f93f63beeb576a5e8..7ca3cb1cb13f1f104d5aad6516d522735045182d 100644 --- a/interface/web/dns/lib/lang/it_dns_soa.lng +++ b/interface/web/dns/lib/lang/it_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Seriale'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Consenti trasferimento zone a <br />questi IP (elenco separato da virgola)'; $wb['active_txt'] = 'Attivo'; diff --git a/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng index 5f0c730599820905574d370d7d97a8c1454c47d3..a7cce01001635072dd68f5d074fd4b22d1f1381d 100644 --- a/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Aggiungi un nuovo DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Aggiungi un nuovo DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Cliente'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_spf.lng b/interface/web/dns/lib/lang/it_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/it_dns_spf.lng +++ b/interface/web/dns/lib/lang/it_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_sshfp.lng b/interface/web/dns/lib/lang/it_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_a.lng b/interface/web/dns/lib/lang/ja_dns_a.lng index 890183a927b5fb9623bd7a609fd11ba4db14efad..a64a87fc3f882eb6ef56646dcc99b2efa3da8ee6 100644 --- a/interface/web/dns/lib/lang/ja_dns_a.lng +++ b/interface/web/dns/lib/lang/ja_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'ホストåを入力ã—ã¦ãã ã•ã„。'; $wb['name_error_regex'] = 'ホストåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; $wb['data_error_empty'] = 'IPアドレスを入力ã—ã¦ãã ã•ã„。'; $wb['ip_error_wrong'] = 'IPアドレスã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; -$wb['data_error_duplicate'] = 'AレコードãŒé‡è¤‡ã—ã¦ã„ã¾ã™ã€‚'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_aaaa.lng b/interface/web/dns/lib/lang/ja_dns_aaaa.lng index 2c859b741688819bc985290574466e35cd78bad1..233cfd71edb65355e798062bd6fb68f2194f7d70 100644 --- a/interface/web/dns/lib/lang/ja_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/ja_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'ã“ã®DNSゾーンã«ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’è¿½åŠ ã™ã‚‹æ¨©é™ãŒ $wb['name_error_empty'] = 'ホストåを入力ã—ã¦ãã ã•ã„。'; $wb['name_error_regex'] = 'ホストåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; $wb['data_error_empty'] = 'IPアドレスを入力ã—ã¦ãã ã•ã„。'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IPアドレスã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_caa.lng b/interface/web/dns/lib/lang/ja_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/ja_dns_caa.lng +++ b/interface/web/dns/lib/lang/ja_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ja_dns_cname.lng b/interface/web/dns/lib/lang/ja_dns_cname.lng index 2e0fd3de7a7b50780ba718badcc2becff81e6cbe..af805c98239a25d864d4cec884f8eb1716ebc7c5 100644 --- a/interface/web/dns/lib/lang/ja_dns_cname.lng +++ b/interface/web/dns/lib/lang/ja_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'ホストåを入力ã—ã¦ãã ã•ã„。'; $wb['name_error_regex'] = 'ホストåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; $wb['data_error_empty'] = 'ターゲットã®ãƒ›ã‚¹ãƒˆåを入力ã—ã¦ãã ã•ã„。'; $wb['data_error_regex'] = 'ターゲットã®ãƒ›ã‚¹ãƒˆåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_dname.lng b/interface/web/dns/lib/lang/ja_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..141f9290e171d525c33611d4cedca0e934fcbbf5 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'サーãƒãƒ¼'; +$wb['zone_txt'] = 'ゾーン'; +$wb['name_txt'] = 'ホストå'; +$wb['type_txt'] = '種別'; +$wb['data_txt'] = 'ターゲットホストå'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = '有効'; +$wb['limit_dns_record_txt'] = 'DNSãƒ¬ã‚³ãƒ¼ãƒ‰ãŒæœ€å¤§æ•°ã«é”ã—ã¾ã—ãŸã€‚'; +$wb['no_zone_perm'] = 'ã“ã®DNSゾーンã«ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’è¿½åŠ ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。'; +$wb['name_error_empty'] = 'ホストåを入力ã—ã¦ãã ã•ã„。'; +$wb['name_error_regex'] = 'ホストåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; +$wb['data_error_empty'] = 'ターゲットã®ãƒ›ã‚¹ãƒˆåを入力ã—ã¦ãã ã•ã„。'; +$wb['data_error_regex'] = 'ターゲットã®ãƒ›ã‚¹ãƒˆåã®å½¢å¼ãŒä¸æ£ã§ã™ã€‚'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_import.lng b/interface/web/dns/lib/lang/ja_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/ja_dns_import.lng +++ b/interface/web/dns/lib/lang/ja_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_naptr.lng b/interface/web/dns/lib/lang/ja_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_soa.lng b/interface/web/dns/lib/lang/ja_dns_soa.lng index 2e0fd5515fc2fbc42c94d3f25d472810ede11324..3964f3fcdb73888f6c3208043b4cb7adf29e425e 100644 --- a/interface/web/dns/lib/lang/ja_dns_soa.lng +++ b/interface/web/dns/lib/lang/ja_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'ゾーン転é€ã‚’許å¯ã™ã‚‹IPアドレス<br />(, ã§åŒºåˆ‡ã£ã¦ãã ã•ã„)'; $wb['active_txt'] = '有効'; diff --git a/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_spf.lng b/interface/web/dns/lib/lang/ja_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/ja_dns_spf.lng +++ b/interface/web/dns/lib/lang/ja_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_sshfp.lng b/interface/web/dns/lib/lang/ja_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_a.lng b/interface/web/dns/lib/lang/nl_dns_a.lng index b70b5c9c5069e2ff5d9db97d9d90c428ac1c44ba..38e30234c72cc3c9a425cf65eea578fbd7e971a4 100644 --- a/interface/web/dns/lib/lang/nl_dns_a.lng +++ b/interface/web/dns/lib/lang/nl_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'De hostnaam is niet ingvuld.'; $wb['name_error_regex'] = 'De hostnaam heeft een onjuist formaat.'; $wb['data_error_empty'] = 'IP-adres is niet ingvuld'; $wb['ip_error_wrong'] = 'IP-adres formaat ongeldig'; -$wb['data_error_duplicate'] = 'Duplicaat A-Record of CNAME-record'; +$wb['data_error_duplicate'] = 'Duplicaat A of CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_aaaa.lng b/interface/web/dns/lib/lang/nl_dns_aaaa.lng index 298193c1e8272c527536fafec54bd2e92483ae88..218799bb4a30a8ccfedb7d46f5769bab9027fb4c 100644 --- a/interface/web/dns/lib/lang/nl_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/nl_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'U heeft geen toestemming om een record toe te voegen aan $wb['name_error_empty'] = 'De hostnaam is niet ingvuld'; $wb['name_error_regex'] = 'De hostnaam heeft een onjuist formaat.'; $wb['data_error_empty'] = 'IP-adres is niet ingevuld'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-adres formaat ongeldig'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_caa.lng b/interface/web/dns/lib/lang/nl_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/nl_dns_caa.lng +++ b/interface/web/dns/lib/lang/nl_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/nl_dns_cname.lng b/interface/web/dns/lib/lang/nl_dns_cname.lng index 00057d3f158bb3e98beb7fc00834dd334b8afd5a..778a05a5fa5f9bbea96929b1843febd41bc34c0e 100644 --- a/interface/web/dns/lib/lang/nl_dns_cname.lng +++ b/interface/web/dns/lib/lang/nl_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'De hostnaam is niet ingvuld.'; $wb['name_error_regex'] = 'De hostname heeft een onjuist formaat.'; $wb['data_error_empty'] = 'Doel hostnaam is niet ingvuld'; $wb['data_error_regex'] = 'Doel hostnaam formaat ongeldig'; -$wb['data_error_duplicate'] = 'Duplicaat A-record of CNAME-record'; +$wb['data_error_duplicate'] = 'Duplicaat A, AAAA, CNAME, of DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_dname.lng b/interface/web/dns/lib/lang/nl_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..6072ddb37728f19214d5153a33f3eec2d7794e08 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostnaam'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Doel Hostnaam'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Actief'; +$wb['limit_dns_record_txt'] = 'Het max. aan DNS records voor uw account is bereikt.'; +$wb['no_zone_perm'] = 'U heeft geen toestemming om een record toe te voegen aan deze DNS zone.'; +$wb['name_error_empty'] = 'De hostnaam is niet ingvuld.'; +$wb['name_error_regex'] = 'De hostname heeft een onjuist formaat.'; +$wb['data_error_empty'] = 'Doel hostnaam is niet ingvuld'; +$wb['data_error_regex'] = 'Doel hostnaam formaat ongeldig'; +$wb['data_error_duplicate'] = 'Duplicaat CNAME-record of DNAME-record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_import.lng b/interface/web/dns/lib/lang/nl_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/nl_dns_import.lng +++ b/interface/web/dns/lib/lang/nl_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_naptr.lng b/interface/web/dns/lib/lang/nl_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_soa.lng b/interface/web/dns/lib/lang/nl_dns_soa.lng index b29c040df81144e49a6271a96ca54e5131c5443e..121339c00ca296b5b108516fb406c98edd4e7f4c 100644 --- a/interface/web/dns/lib/lang/nl_dns_soa.lng +++ b/interface/web/dns/lib/lang/nl_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serieel'; $wb['refresh_txt'] = 'Ververs'; $wb['retry_txt'] = 'Opnieuw proberen'; $wb['expire_txt'] = 'Verlopen'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Sta zone transfers toe naar <br />deze IPs (komma gescheiden waarden)'; $wb['active_txt'] = 'Actief'; diff --git a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng index 2ac184dd91877e3b831d9a2ae3421afe2efcdb23..5231e47e22472235775edcda7a7f0aa83ede7eaa 100644 --- a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'E-mail'; $wb['add_new_record_wizard_txt'] = 'DNS Zone via wizard toevoegen'; $wb['add_new_record_txt'] = 'DNS Zone manueel toevoegen'; +$wb['import_zone_file_txt'] = 'Importeer zone bestand'; $wb['sys_groupid_txt'] = 'Klant'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_spf.lng b/interface/web/dns/lib/lang/nl_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/nl_dns_spf.lng +++ b/interface/web/dns/lib/lang/nl_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_sshfp.lng b/interface/web/dns/lib/lang/nl_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_a.lng b/interface/web/dns/lib/lang/pl_dns_a.lng index 88adb2306e7308241e4c0e4c3cdb82dfbb5004ae..a200ae5cce5057b292f77f7472a07218d64cd33c 100644 --- a/interface/web/dns/lib/lang/pl_dns_a.lng +++ b/interface/web/dns/lib/lang/pl_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nazwa serwera jest pusta.'; $wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.'; $wb['data_error_empty'] = 'Adres IP jest pusty.'; $wb['ip_error_wrong'] = 'Adres IP ma niepoprawny format.'; -$wb['data_error_duplicate'] = 'Duplikat wpisu A.'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_aaaa.lng b/interface/web/dns/lib/lang/pl_dns_aaaa.lng index 867d73ab97de4c5197cedd791d7ca151052e6ce2..7de382fcbd99cd4892afb253d8dd444b94c258ce 100644 --- a/interface/web/dns/lib/lang/pl_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/pl_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Nie masz uprawnieÅ„, aby dodać nowy wpis w tej strefie D $wb['name_error_empty'] = 'Nazwa serwera jest pusta.'; $wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.'; $wb['data_error_empty'] = 'Adres IP jest pusty.'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'Adres IP ma niepoprawny format.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_caa.lng b/interface/web/dns/lib/lang/pl_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/pl_dns_caa.lng +++ b/interface/web/dns/lib/lang/pl_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/pl_dns_cname.lng b/interface/web/dns/lib/lang/pl_dns_cname.lng index 8153741f91881a8a09ce37c73a486b1b026ebd9a..d4fb5ab8c8b7bc71a85ffacbd0c425655024630d 100644 --- a/interface/web/dns/lib/lang/pl_dns_cname.lng +++ b/interface/web/dns/lib/lang/pl_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nazwa serwera jest pusta.'; $wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.'; $wb['data_error_empty'] = 'Docelowa nazwa serwera jest pusta.'; $wb['data_error_regex'] = 'Docelowa nazwa serwera ma niepoprawny format.'; -$wb['data_error_duplicate'] = 'Zdublowany rekord A lub CNAME.'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_dname.lng b/interface/web/dns/lib/lang/pl_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..a7e3ac50e415ccf26f4eecd776fe2ba8c6d5cc58 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Serwer'; +$wb['zone_txt'] = 'Strefa'; +$wb['name_txt'] = 'Nazwa serwera'; +$wb['type_txt'] = 'typ'; +$wb['data_txt'] = 'Docelowa nazwa serwera'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktywne'; +$wb['limit_dns_record_txt'] = 'Maksymalna ilość wpisów DNS dla Twojego konta zostaÅ‚a przekroczona.'; +$wb['no_zone_perm'] = 'Nie masz uprawnieÅ„, aby dodać nowy wpis w tej strefie DNS.'; +$wb['name_error_empty'] = 'Nazwa serwera jest pusta.'; +$wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.'; +$wb['data_error_empty'] = 'Docelowa nazwa serwera jest pusta.'; +$wb['data_error_regex'] = 'Docelowa nazwa serwera ma niepoprawny format.'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_import.lng b/interface/web/dns/lib/lang/pl_dns_import.lng index d622e03985e4376eb243a5145d383a7cb4ba29cd..f6b618c87b425b2bb570886f896ed1abde067d1c 100644 --- a/interface/web/dns/lib/lang/pl_dns_import.lng +++ b/interface/web/dns/lib/lang/pl_dns_import.lng @@ -13,4 +13,13 @@ $wb['no_file_uploaded_error'] = 'Nie zaÅ‚adowany żaden plik'; $wb['zone_file_import_txt'] = 'Import pliku strefy'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_naptr.lng b/interface/web/dns/lib/lang/pl_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_soa.lng b/interface/web/dns/lib/lang/pl_dns_soa.lng index f2d7e1ad87ed7a2848da364004168e5be483bbf0..1724c4c141c77a15d08c93021ca7ee2d3f189fe0 100644 --- a/interface/web/dns/lib/lang/pl_dns_soa.lng +++ b/interface/web/dns/lib/lang/pl_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Klucz'; $wb['refresh_txt'] = 'OdÅ›wież'; $wb['retry_txt'] = 'Ponów'; $wb['expire_txt'] = 'WygasÅ‚'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Zezwól na przeniesienie stref do <br />tych adresów IP (adresy rozdzielaj przecinkiem)'; $wb['active_txt'] = 'Aktywny'; diff --git a/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_spf.lng b/interface/web/dns/lib/lang/pl_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/pl_dns_spf.lng +++ b/interface/web/dns/lib/lang/pl_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_sshfp.lng b/interface/web/dns/lib/lang/pl_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_a.lng b/interface/web/dns/lib/lang/pt_dns_a.lng index 37e949b431ea15d5b2a4cb38c1ac4186862fc13e..336c4f477e97c7d983ad9e68ad0fa8835218c17b 100644 --- a/interface/web/dns/lib/lang/pt_dns_a.lng +++ b/interface/web/dns/lib/lang/pt_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname em branco.'; $wb['name_error_regex'] = 'Hostname tem um formato inválido.'; $wb['data_error_empty'] = 'Endereço-IP em branco'; $wb['ip_error_wrong'] = 'Endereço-IP formato inválido'; -$wb['data_error_duplicate'] = 'Registo-A duplicado'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_aaaa.lng b/interface/web/dns/lib/lang/pt_dns_aaaa.lng index 04698ced19967f56caa6dac3691dc1eb411780c5..045a818731114dd5e9434690520c4e0c854c9e48 100644 --- a/interface/web/dns/lib/lang/pt_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/pt_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Não tem permissão para adicionar registos a está zona $wb['name_error_empty'] = 'O Hostname está em branco.'; $wb['name_error_regex'] = 'O Hostname está com formato inválido.'; $wb['data_error_empty'] = 'Endereço-IP em branco'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'Endereço-IP com formato inválido'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_caa.lng b/interface/web/dns/lib/lang/pt_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/pt_dns_caa.lng +++ b/interface/web/dns/lib/lang/pt_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/pt_dns_cname.lng b/interface/web/dns/lib/lang/pt_dns_cname.lng index 6d2c7fbba47acbbacb7ad9e6b24103fc0320aa09..124b9e30003433ef3f5dda93560c21849c05e0c6 100644 --- a/interface/web/dns/lib/lang/pt_dns_cname.lng +++ b/interface/web/dns/lib/lang/pt_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname está em branco.'; $wb['name_error_regex'] = 'O hostname está em um formato inválido.'; $wb['data_error_empty'] = 'Hostname de destino está em branco'; $wb['data_error_regex'] = 'O hostname de destino está em um formato inválido.'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_dname.lng b/interface/web/dns/lib/lang/pt_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..aa8b13cc4ea12442f0099423f68ba8fe35d7d675 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Servidor'; +$wb['zone_txt'] = 'Zona'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'tipo'; +$wb['data_txt'] = 'Hostname de Destino'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Activo'; +$wb['limit_dns_record_txt'] = 'O número máximo de registos DNS para a conta foi atingido.'; +$wb['no_zone_perm'] = 'Não tem permissão para adicionar registos a está zona DNS.'; +$wb['name_error_empty'] = 'Hostname está em branco.'; +$wb['name_error_regex'] = 'O hostname está em um formato inválido.'; +$wb['data_error_empty'] = 'Hostname de destino está em branco'; +$wb['data_error_regex'] = 'O hostname de destino está em um formato inválido.'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_import.lng b/interface/web/dns/lib/lang/pt_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/pt_dns_import.lng +++ b/interface/web/dns/lib/lang/pt_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_naptr.lng b/interface/web/dns/lib/lang/pt_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_soa.lng b/interface/web/dns/lib/lang/pt_dns_soa.lng index 61ff07f0cbd56d1cb9e24c4955cd83c8e5b59931..bdcc1660ff0e7f4b9a348ce678520aea214d8ed9 100644 --- a/interface/web/dns/lib/lang/pt_dns_soa.lng +++ b/interface/web/dns/lib/lang/pt_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Permitir transferências de zona para <br />estes IPs (lista separada por ponto e vÃrgula)'; $wb['active_txt'] = 'Activo'; diff --git a/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_spf.lng b/interface/web/dns/lib/lang/pt_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/pt_dns_spf.lng +++ b/interface/web/dns/lib/lang/pt_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_sshfp.lng b/interface/web/dns/lib/lang/pt_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_a.lng b/interface/web/dns/lib/lang/ro_dns_a.lng index f2f6a46c439121575df40209e87a5811833c9efa..26f8a42f058457d5988bf1d1dbcbe30d7a81137f 100644 --- a/interface/web/dns/lib/lang/ro_dns_a.lng +++ b/interface/web/dns/lib/lang/ro_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname necompletat'; $wb['name_error_regex'] = 'Hostname format gresit'; $wb['data_error_empty'] = 'IP-Adresa vid'; $wb['ip_error_wrong'] = 'IP-Adresa format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_aaaa.lng b/interface/web/dns/lib/lang/ro_dns_aaaa.lng index 0b7e38ac651ad47bbf8848947f3e1f06810e83f5..da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39 100644 --- a/interface/web/dns/lib/lang/ro_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/ro_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_caa.lng b/interface/web/dns/lib/lang/ro_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/ro_dns_caa.lng +++ b/interface/web/dns/lib/lang/ro_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ro_dns_cname.lng b/interface/web/dns/lib/lang/ro_dns_cname.lng index a37533fbdcefe842418dce143d015f3cc4603af6..c76d2587a19bd9df697a8d6c2fc3071ce906c302 100644 --- a/interface/web/dns/lib/lang/ro_dns_cname.lng +++ b/interface/web/dns/lib/lang/ro_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Rubrica hostname necompletata'; $wb['name_error_regex'] = 'Hostname cu format gresit'; $wb['data_error_empty'] = 'Hostname tinta necompletat'; $wb['data_error_regex'] = 'Hostname tinta cu format gresit'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_dname.lng b/interface/web/dns/lib/lang/ro_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..01c51d8605d2c86ba79a058cca589a384f5b702f --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'tip'; +$wb['data_txt'] = 'Hostname Tinta'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Activ'; +$wb['limit_dns_record_txt'] = 'Numarul maxim de inregistrari DNS a fost atins pe contul dumneavoastra .'; +$wb['no_zone_perm'] = 'NU aveti permisiunea de a adauga inregistrari la aceasta zona DNS '; +$wb['name_error_empty'] = 'Rubrica hostname necompletata'; +$wb['name_error_regex'] = 'Hostname cu format gresit'; +$wb['data_error_empty'] = 'Hostname tinta necompletat'; +$wb['data_error_regex'] = 'Hostname tinta cu format gresit'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_import.lng b/interface/web/dns/lib/lang/ro_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/ro_dns_import.lng +++ b/interface/web/dns/lib/lang/ro_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_naptr.lng b/interface/web/dns/lib/lang/ro_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_soa.lng b/interface/web/dns/lib/lang/ro_dns_soa.lng index 134758f95ec9e9f701d394e241a678f6bd123530..40607318f713d7a08f4d87dd24425e1b0f60e44e 100644 --- a/interface/web/dns/lib/lang/ro_dns_soa.lng +++ b/interface/web/dns/lib/lang/ro_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Reincarca'; $wb['retry_txt'] = 'Reincearca'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Accepta transfer zone catre <br />aceste IP-uri (comma separated list)'; $wb['active_txt'] = 'Active'; diff --git a/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_spf.lng b/interface/web/dns/lib/lang/ro_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/ro_dns_spf.lng +++ b/interface/web/dns/lib/lang/ro_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_sshfp.lng b/interface/web/dns/lib/lang/ro_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_a.lng b/interface/web/dns/lib/lang/ru_dns_a.lng index 0af3014657a54287bc7550f78d618ad73bb0b30c..5dd1329a1b7350e8eb85e65f73eb8a69af02fff6 100644 --- a/interface/web/dns/lib/lang/ru_dns_a.lng +++ b/interface/web/dns/lib/lang/ru_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; $wb['name_error_regex'] = 'Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат.'; $wb['data_error_empty'] = 'IP-Ð°Ð´Ñ€ÐµÑ Ð¿ÑƒÑтой'; $wb['ip_error_wrong'] = 'Ðеправильный формат IP-адреÑа'; -$wb['data_error_duplicate'] = 'Дубликат запиÑи'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_aaaa.lng b/interface/web/dns/lib/lang/ru_dns_aaaa.lng index 4620b53eaa2adae2f8ae796f119c7f1382abdbcd..efec59952a0cbf5ffb6d073bb054ae606ecb8a23 100644 --- a/interface/web/dns/lib/lang/ru_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/ru_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'У Ð’Ð°Ñ Ð½ÐµÑ‚ прав добавлÑть Ñту за $wb['name_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; $wb['name_error_regex'] = 'Ðеправильный формат имени хоÑта.'; $wb['data_error_empty'] = 'ПуÑтой IP-адреÑ'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'Ðеправильный формат IP-адреÑа'; $wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_caa.lng b/interface/web/dns/lib/lang/ru_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/ru_dns_caa.lng +++ b/interface/web/dns/lib/lang/ru_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ru_dns_cname.lng b/interface/web/dns/lib/lang/ru_dns_cname.lng index e7a0abcf3f138ad5b4a8ef4756bb74cc13d6084d..8fbddd6799ac93a98c6315bc0e1a442e3656a110 100644 --- a/interface/web/dns/lib/lang/ru_dns_cname.lng +++ b/interface/web/dns/lib/lang/ru_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; $wb['name_error_regex'] = 'Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат.'; $wb['data_error_empty'] = 'Целевое Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° пуÑтое'; $wb['data_error_regex'] = 'Целевое Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат'; -$wb['data_error_duplicate'] = 'Дубликат запиÑи'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_dname.lng b/interface/web/dns/lib/lang/ru_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..7e8da83b5b1f03bf599fddf3bfd803ebd00cc331 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Сервер'; +$wb['zone_txt'] = 'Зона'; +$wb['name_txt'] = 'ИмÑ'; +$wb['type_txt'] = 'Тип'; +$wb['data_txt'] = 'Ð˜Ð¼Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð³Ð¾ хоÑта'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Ðктивно'; +$wb['limit_dns_record_txt'] = 'МакÑимальное чиÑло DNS-запиÑей Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ учетной запиÑи доÑтигнуто.'; +$wb['no_zone_perm'] = 'У Ð’Ð°Ñ Ð½ÐµÑ‚ прав добавлÑть Ñту запиÑÑŒ.'; +$wb['name_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; +$wb['name_error_regex'] = 'Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат.'; +$wb['data_error_empty'] = 'Целевое Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° пуÑтое'; +$wb['data_error_regex'] = 'Целевое Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_hinfo.lng b/interface/web/dns/lib/lang/ru_dns_hinfo.lng index 830576fdf6843fe77fc75b601936323849603c79..363ed0eef5800611eae6b4eada8cf217e8ffb8a1 100644 --- a/interface/web/dns/lib/lang/ru_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/ru_dns_hinfo.lng @@ -11,6 +11,6 @@ $wb['no_zone_perm'] = 'У Ð’Ð°Ñ Ð½ÐµÑ‚ прав добавлÑть Ñту за $wb['name_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; $wb['name_error_regex'] = 'Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат.'; $wb['data_error_empty'] = 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± узле отÑутÑвует'; -$wb['data_error_regex'] = 'Поле \"Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ хоÑте\" имеет неправильный формат'; +$wb['data_error_regex'] = 'Поле \\"Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ хоÑте\\" имеет неправильный формат'; $wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_import.lng b/interface/web/dns/lib/lang/ru_dns_import.lng index 752e02cc6c0faa4368b420dde619a92f6c77884d..95cf32c935bb281cd84cc1c79d38500eea2e90b4 100644 --- a/interface/web/dns/lib/lang/ru_dns_import.lng +++ b/interface/web/dns/lib/lang/ru_dns_import.lng @@ -13,4 +13,13 @@ $wb['no_file_uploaded_error'] = 'Файл зоны не загружен.'; $wb['zone_file_import_txt'] = 'Импорт файла зоны'; $wb['error_no_server_id'] = 'Ðе указан Ñервер.'; $wb['error_not_allowed_server_id'] = 'Выбранный Ñервер не доÑтупен Ð´Ð»Ñ Ñтой учетной запиÑи.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_naptr.lng b/interface/web/dns/lib/lang/ru_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_soa.lng b/interface/web/dns/lib/lang/ru_dns_soa.lng index fe716cdc1b1ca89be506c500674187fc042a8131..7bd15cd63858f16b496326756fe8b652902e63b7 100644 --- a/interface/web/dns/lib/lang/ru_dns_soa.lng +++ b/interface/web/dns/lib/lang/ru_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Серийный номер'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Повтор'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Xfer (IP)'; $wb['active_txt'] = 'Ðктивно'; diff --git a/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng index 47940f9e8d00fce49e411b15f930e805be3c2df7..d3d7be71834ad6f19a4696d02c6e565ba84311fb 100644 --- a/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'ÐÐ´Ñ€ÐµÑ Ñл. почты'; $wb['add_new_record_wizard_txt'] = 'Добавить новую DNS-зону Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ маÑтера'; $wb['add_new_record_txt'] = 'Добавить новую DNS-зону вручную'; +$wb['import_zone_file_txt'] = 'Импорт файла зоны'; $wb['sys_groupid_txt'] = 'Клиент'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_spf.lng b/interface/web/dns/lib/lang/ru_dns_spf.lng index cc4b4b087be6b840f2d58593d5ff3de096b69cd7..2d69c49a326a9eb55da2c6003afde78b664493e5 100644 --- a/interface/web/dns/lib/lang/ru_dns_spf.lng +++ b/interface/web/dns/lib/lang/ru_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-запиÑÑŒ'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'Механизм SPF'; $wb['spf_mechanism_pass_txt'] = 'Pass - разрешить почту от других отправителей'; $wb['spf_mechanism_fail_txt'] = 'Fail - отклонить почту от других отправителей'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'ÐедопуÑтимое доменное им $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ðктивно'; $wb['record_exists_txt'] = 'DNS-запиÑÑŒ уже ÑущеÑтвует'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'МакÑ. количеÑтво DNS-запиÑей Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ учетной запиÑи доÑтигнуто.'; $wb['no_zone_perm'] = 'У Ð’Ð°Ñ Ð½ÐµÑ‚ прав добавлÑть Ñту запиÑÑŒ.'; $wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_sshfp.lng b/interface/web/dns/lib/lang/ru_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..bf1a8a892a1f2c72943ebc70cf5d081806eade32 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Сервер'; +$wb['zone_txt'] = 'Зона'; +$wb['name_txt'] = 'Ð˜Ð¼Ñ Ñ…Ð¾Ñта'; +$wb['type_txt'] = 'Тип'; +$wb['data_txt'] = 'Данные'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Ðктивно'; +$wb['limit_dns_record_txt'] = 'МакÑимальное чиÑло DNS-запиÑей Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ учетной запиÑи доÑтигнуто.'; +$wb['no_zone_perm'] = 'У Ð’Ð°Ñ Ð½ÐµÑ‚ прав добавлÑть Ñту запиÑÑŒ.'; +$wb['name_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; +$wb['name_error_regex'] = 'Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° имеет неправильный формат.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Мин. Ð²Ñ€ÐµÐ¼Ñ <b>TTL</b> 60 Ñекунд.'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_a.lng b/interface/web/dns/lib/lang/se_dns_a.lng index 7543672a9482becb158ccc74f22d896e6415ceed..577bb47d5b7211129dedb2eea6e0072fd3843187 100644 --- a/interface/web/dns/lib/lang/se_dns_a.lng +++ b/interface/web/dns/lib/lang/se_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_aaaa.lng b/interface/web/dns/lib/lang/se_dns_aaaa.lng index 0b7e38ac651ad47bbf8848947f3e1f06810e83f5..da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39 100644 --- a/interface/web/dns/lib/lang/se_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/se_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'IP-Address empty'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_caa.lng b/interface/web/dns/lib/lang/se_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/se_dns_caa.lng +++ b/interface/web/dns/lib/lang/se_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/se_dns_cname.lng b/interface/web/dns/lib/lang/se_dns_cname.lng index b7ceb5d9c93fda688ad86eae1e4abbe93d9b6946..0d42cac5957e6582805629fa021be50221599e0a 100644 --- a/interface/web/dns/lib/lang/se_dns_cname.lng +++ b/interface/web/dns/lib/lang/se_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.'; $wb['name_error_regex'] = 'The hostname has the wrong format.'; $wb['data_error_empty'] = 'Target hostname empty'; $wb['data_error_regex'] = 'Target hostname format invalid'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_dname.lng b/interface/web/dns/lib/lang/se_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..62088e09b6f4e92cc41b63cc87c5180756186a2f --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zon'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'typ'; +$wb['data_txt'] = 'Target Hostname'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Aktiv'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Target hostname empty'; +$wb['data_error_regex'] = 'Target hostname format invalid'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_import.lng b/interface/web/dns/lib/lang/se_dns_import.lng index 801dd473f7d23e517251c45f7f09a06d304ec88d..1c9496600275d21b8fb2bbfe059017c67b1e892b 100644 --- a/interface/web/dns/lib/lang/se_dns_import.lng +++ b/interface/web/dns/lib/lang/se_dns_import.lng @@ -7,10 +7,19 @@ $wb['domain_txt'] = 'Domän'; $wb['zone_file_successfully_imported_txt'] = 'Zonfilimporten har lyckats!'; $wb['error_no_valid_zone_file_txt'] = 'Detta verkar inte vara en giltig zonfil'; $wb['zonefile_to_import_txt'] = 'Zonfil'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Importera zonfiler'; $wb['no_file_uploaded_error'] = 'Ingen zonfil uppladdad'; $wb['zone_file_import_txt'] = 'Zonfilsimport'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_naptr.lng b/interface/web/dns/lib/lang/se_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_soa.lng b/interface/web/dns/lib/lang/se_dns_soa.lng index 034d3235a7e5c16d36678de066054e1b22c4d4f5..cfeb2f9fde36215601657786424c558134aeb70b 100644 --- a/interface/web/dns/lib/lang/se_dns_soa.lng +++ b/interface/web/dns/lib/lang/se_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Serienummer'; $wb['refresh_txt'] = 'Refresh'; $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list)'; $wb['active_txt'] = 'Aktiv'; diff --git a/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_spf.lng b/interface/web/dns/lib/lang/se_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/se_dns_spf.lng +++ b/interface/web/dns/lib/lang/se_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_sshfp.lng b/interface/web/dns/lib/lang/se_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_a.lng b/interface/web/dns/lib/lang/sk_dns_a.lng index d1fff2cdea70b4699607820cceb92e7b85bf2ad3..9937576f585a2c8b9eff1c16b176e6b32e4ad60c 100644 --- a/interface/web/dns/lib/lang/sk_dns_a.lng +++ b/interface/web/dns/lib/lang/sk_dns_a.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname je prázdny.'; $wb['name_error_regex'] = 'Hostname má zlý formát.'; $wb['data_error_empty'] = 'IP Adresa je prázdna'; $wb['ip_error_wrong'] = 'IP Adresa má zlý formát.'; -$wb['data_error_duplicate'] = 'Duplikátny A-záznam'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_aaaa.lng b/interface/web/dns/lib/lang/sk_dns_aaaa.lng index 78d5cc6c4c63f556ed0b85df5172396ad1d9783c..2631d325157b5681b892a76bc5c61146c30239c5 100644 --- a/interface/web/dns/lib/lang/sk_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/sk_dns_aaaa.lng @@ -11,6 +11,7 @@ $wb['no_zone_perm'] = 'Nemáte oprávnenie PridaÅ¥ záznam do tejto zóny DNS.'; $wb['name_error_empty'] = 'Hostname je prázdny.'; $wb['name_error_regex'] = 'Hostname má zlý formát.'; $wb['data_error_empty'] = 'IP-Adresa prázdna'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; $wb['ip_error_wrong'] = 'IP-Adresa má zlý formát'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_caa.lng b/interface/web/dns/lib/lang/sk_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/sk_dns_caa.lng +++ b/interface/web/dns/lib/lang/sk_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/sk_dns_cname.lng b/interface/web/dns/lib/lang/sk_dns_cname.lng index 1f415fac3bd182c0a993727301cbfa546570ecea..c15528523432e1633d651ffe84826823f48a45e0 100644 --- a/interface/web/dns/lib/lang/sk_dns_cname.lng +++ b/interface/web/dns/lib/lang/sk_dns_cname.lng @@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname je prázdny.'; $wb['name_error_regex'] = 'Hostname má zlý formát.'; $wb['data_error_empty'] = 'Cieľový hostname je prázdny'; $wb['data_error_regex'] = 'Target hostname má zlý format'; -$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_dname.lng b/interface/web/dns/lib/lang/sk_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..88c3f069bd395278a7c54b1726eb44d1e036e17d --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zóna'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'typ'; +$wb['data_txt'] = 'Cieľový Hostname'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'AktivovaÅ¥'; +$wb['limit_dns_record_txt'] = 'Max. poÄet záznamov DNS pre váš úÄet je dosiahnutý.'; +$wb['no_zone_perm'] = 'Nemáte oprávnenie PridaÅ¥ záznam do tejto zóny DNS.'; +$wb['name_error_empty'] = 'Hostname je prázdny.'; +$wb['name_error_regex'] = 'Hostname má zlý formát.'; +$wb['data_error_empty'] = 'Cieľový hostname je prázdny'; +$wb['data_error_regex'] = 'Target hostname má zlý format'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_import.lng b/interface/web/dns/lib/lang/sk_dns_import.lng index 8f67eba14c74cf72fbf18fc031dc1896de3fc21a..3fc63992ed75d7262ee09d7726130a858bcf5fed 100644 --- a/interface/web/dns/lib/lang/sk_dns_import.lng +++ b/interface/web/dns/lib/lang/sk_dns_import.lng @@ -4,13 +4,22 @@ $wb['client_txt'] = 'Client'; $wb['btn_save_txt'] = 'Import Zonefile'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; -$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; -$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; +$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported.'; +$wb['error_no_valid_zone_file_txt'] = 'This zone file appears invalid.'; $wb['zonefile_to_import_txt'] = 'Zone File'; -$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; +$wb['domain_field_desc_txt'] = 'If empty, domain name is taken from SOA record.'; $wb['title'] = 'Import Zone Files'; $wb['no_file_uploaded_error'] = 'No zonefile uploaded'; $wb['zone_file_import_txt'] = 'Zone File Import'; $wb['error_no_server_id'] = 'No server provided.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_naptr.lng b/interface/web/dns/lib/lang/sk_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_soa.lng b/interface/web/dns/lib/lang/sk_dns_soa.lng index ac1f1162430a009255edcd60ec76809fc8fe14ac..79d49eee92d6136f143f0d8a477f66c2b5b3a663 100644 --- a/interface/web/dns/lib/lang/sk_dns_soa.lng +++ b/interface/web/dns/lib/lang/sk_dns_soa.lng @@ -7,7 +7,7 @@ $wb['serial_txt'] = 'Seriové Äislo'; $wb['refresh_txt'] = 'ObnoviÅ¥'; $wb['retry_txt'] = 'OpakovaÅ¥'; $wb['expire_txt'] = 'ExpirovaÅ¥'; -$wb['minimum_txt'] = 'Minimum'; +$wb['minimum_txt'] = 'Minimum (negative cache ttl)'; $wb['ttl_txt'] = 'TTL'; $wb['xfer_txt'] = 'PovoliÅ¥ prenosy zóny na <br />tieto IP (comma separated list)'; $wb['active_txt'] = 'AktivovaÅ¥'; diff --git a/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng index 183d1a8349ad9bab096fe27b0f73055fb103ff52..74ba7859000dbc3a9aa24393bdd3415d58e9d597 100644 --- a/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng @@ -7,5 +7,6 @@ $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; $wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['import_zone_file_txt'] = 'Import Zone File'; $wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_spf.lng b/interface/web/dns/lib/lang/sk_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..0cbf77862f6619ad477913cefb5c4b5e248ddae6 100644 --- a/interface/web/dns/lib/lang/sk_dns_spf.lng +++ b/interface/web/dns/lib/lang/sk_dns_spf.lng @@ -1,5 +1,6 @@ <?php $wb['data_txt'] = 'SPF-Record'; +$wb['name_txt'] = 'Hostname'; $wb['spf_mechanism_txt'] = 'SPF Mechanism'; $wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; $wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; @@ -19,7 +20,11 @@ $wb['spf_invalid_domain_txt'] = 'Invalid domainname'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['record_exists_txt'] = 'DNS-Record already exists'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_sshfp.lng b/interface/web/dns/lib/lang/sk_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..dc9ad9a00634513f03aec6da53682d2842bae7b6 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Server'; +$wb['zone_txt'] = 'Zone'; +$wb['name_txt'] = 'Hostname'; +$wb['type_txt'] = 'type'; +$wb['data_txt'] = 'Data'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'Active'; +$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; +$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['name_error_empty'] = 'The hostname is empty.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['data_error_empty'] = 'Text empty'; +$wb['data_error_regex'] = 'Text format invalid'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +?> diff --git a/interface/web/dns/lib/lang/tr.lng b/interface/web/dns/lib/lang/tr.lng index a101cf7b2bd9115b01a782669b2df4fb9d4ba5bb..a291a5af0807f718f6fc67171a4a28bba1cb69de 100644 --- a/interface/web/dns/lib/lang/tr.lng +++ b/interface/web/dns/lib/lang/tr.lng @@ -1,4 +1,5 @@ <?php + $wb['DNS'] = 'DNS'; $wb['Zones'] = 'Bölgeler'; $wb['DNS A'] = 'DNS A'; @@ -17,6 +18,6 @@ $wb['DNS TXT'] = 'DNS TXT'; $wb['DNS Wizard'] = 'DNS Yardımcısı'; $wb['Add DNS Zone'] = 'DNS Bölgesi Ekle'; $wb['Templates'] = 'Kalıplar'; -$wb['Secondary Zones'] = 'İkincil Bölgeler'; -$wb['Import Zone File'] = 'Bölge Dosyası Alma'; +$wb['Secondary Zones'] = 'İkincil DNS Bölgeleri'; +$wb['Import Zone File'] = 'Bölge Dosyası İçe Aktarma'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_a.lng b/interface/web/dns/lib/lang/tr_dns_a.lng index 0cf1414fd81acd71c870c4510e7d530bdc34b351..bab67a4646eeb2e7cd2eb707e5c8498ef82b9e3a 100644 --- a/interface/web/dns/lib/lang/tr_dns_a.lng +++ b/interface/web/dns/lib/lang/tr_dns_a.lng @@ -2,16 +2,16 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'IP Adresi'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'IP Adresi boÅŸ olamaz'; -$wb['data_error_duplicate'] = 'Bu A DNS kaydı zaten var'; +$wb['data_error_duplicate'] = 'Duplicate A or CNAME record'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['ip_error_wrong'] = 'IP-Address format invalid'; +$wb['ip_error_wrong'] = 'IP adresi biçimi geçersiz'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_a_list.lng b/interface/web/dns/lib/lang/tr_dns_a_list.lng index 129b32fdb2cb573e967ae72ef1f35d5a3c7ecad3..61a4e2a7d3e0aaeed41cfd04a1fa77ff396c1394 100644 --- a/interface/web/dns/lib/lang/tr_dns_a_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_a_list.lng @@ -7,7 +7,7 @@ $wb['name_txt'] = 'Ad'; $wb['data_txt'] = 'Veri'; $wb['aux_txt'] = 'Öncelik'; $wb['ttl_txt'] = 'TTL Süresi'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['add_new_record_txt'] = 'DNS A Kaydı Ekle'; $wb['page_txt'] = 'Sayfa'; $wb['page_of_txt'] = '/'; diff --git a/interface/web/dns/lib/lang/tr_dns_aaaa.lng b/interface/web/dns/lib/lang/tr_dns_aaaa.lng index b0c28aed41b0288a2f4b630dfa262d964715f93f..8b31622d57ef2dcef330b1c67621ed4f24893a6f 100644 --- a/interface/web/dns/lib/lang/tr_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/tr_dns_aaaa.lng @@ -2,15 +2,16 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'IPv6 Adresleri'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; -$wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; +$wb['name_error_regex'] = 'Sunucu adının biçimi geçersiz.'; $wb['data_error_empty'] = 'IP Adresi boÅŸ olamaz'; +$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record'; +$wb['ip_error_wrong'] = 'IP adresinin biçimi geçersiz'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_alias.lng b/interface/web/dns/lib/lang/tr_dns_alias.lng index 9bd6e72ce6d0bad2068fe99d8eee0c70d40e44ab..ce78fcf3032004a93aa77a3ec5277c945b2bb912 100644 --- a/interface/web/dns/lib/lang/tr_dns_alias.lng +++ b/interface/web/dns/lib/lang/tr_dns_alias.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Hedef Sunucu Adı'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adının biçimi geçersiz.'; $wb['data_error_empty'] = 'Hedef sunucu adı boÅŸ olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_caa.lng b/interface/web/dns/lib/lang/tr_dns_caa.lng index bf5b2ac8e1a8a4c34a001ffc843e1338bf54d3ce..82de234d6e545c0912f0694f63b07182429bfa58 100644 --- a/interface/web/dns/lib/lang/tr_dns_caa.lng +++ b/interface/web/dns/lib/lang/tr_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/tr_dns_cname.lng b/interface/web/dns/lib/lang/tr_dns_cname.lng index 00366b969565dfbfdd8156be5d0b46e08f82cd6d..cc8ce3005c76aefd46cb3ec6d5ae4332ce429e05 100644 --- a/interface/web/dns/lib/lang/tr_dns_cname.lng +++ b/interface/web/dns/lib/lang/tr_dns_cname.lng @@ -2,16 +2,16 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Hedef Sunucu Adı'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölge kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Hedef sunucu adı boÅŸ olamaz'; $wb['data_error_regex'] = 'Hedef sunucu adı biçimi geçersiz'; -$wb['data_error_duplicate'] = 'Çift A ya da CNAME kaydı var.'; +$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_dkim.lng b/interface/web/dns/lib/lang/tr_dns_dkim.lng index 4d45fb4fe95d87134331a593c81c6994bafab57c..b7ffb1930f000eb893ba097ef3e3dad77001997c 100644 --- a/interface/web/dns/lib/lang/tr_dns_dkim.lng +++ b/interface/web/dns/lib/lang/tr_dns_dkim.lng @@ -1,13 +1,13 @@ <?php -$wb['public_key_txt'] = 'Public-Key'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['record_exists_txt'] = 'DNS-Record already exists'; -$wb['dkim_disabled_txt'] = 'DKIM disabled for this mail-domain'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -$wb['selector_txt'] = 'DKIM-Selector'; -$wb['data_error_empty'] = 'Public-Key missing'; -$wb['dkim_selector_empty_txt'] = 'DKIM-Selector is empty'; +$wb['public_key_txt'] = 'Herkese Açık Anahtar'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['record_exists_txt'] = 'DNS kaydı zaten var'; +$wb['dkim_disabled_txt'] = 'Bu e-posta etki alanı için DKIM devre dışı bırakılmış.'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; +$wb['selector_txt'] = 'DKIM Seçici'; +$wb['data_error_empty'] = 'Herkese açık anahtar eksik'; +$wb['dkim_selector_empty_txt'] = 'DKIM Seçici boÅŸ olamaz'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_dmarc.lng b/interface/web/dns/lib/lang/tr_dns_dmarc.lng index cf78bb8eed902817caf1e80e9e6e77d9d64b9ab3..6e98e9466368a9acd03b7afe8c2fa44a13dfc76f 100644 --- a/interface/web/dns/lib/lang/tr_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/tr_dns_dmarc.lng @@ -1,50 +1,50 @@ <?php -$wb['data_txt'] = 'DMARC Record'; -$wb['domain_txt'] = 'Domain'; -$wb['dmarc_policy_txt'] = 'Mail Receiver Policy'; -$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).'; -$wb['dmarc_policy_none_txt'] = 'none'; -$wb['dmarc_policy_quarantine_txt'] = 'quarantine'; -$wb['dmarc_policy_reject_txt'] = 'reject'; -$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address'; -$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).'; -$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address'; -$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).'; -$wb['dmarc_fo_txt'] = 'Forensic reporting options'; -$wb['dmarc_fo0_txt'] = 'Generate reports if all underlying authentication mechanisms fail to produce a DMARC \'pass\' result.'; -$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.'; -$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.'; -$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.'; -$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment'; -$wb['dmarc_adkim_note_txt'] = '\'strict\' requires exact matching between DKIM domain and email\'s from'; -$wb['dmarc_adkim_r_txt'] = 'relaxed'; -$wb['dmarc_adkim_s_txt'] = 'strict'; -$wb['dmarc_aspf_txt'] = 'SPF identifier alignment'; -$wb['dmarc_aspf_note_txt'] = '\'strict\' requires exact matching between SPF domain and email\'s from'; -$wb['dmarc_aspf_r_txt'] = 'relaxed'; -$wb['dmarc_aspf_s_txt'] = 'strict'; -$wb['dmarc_rf_txt'] = 'Report Format'; -$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format'; -$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format'; -$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage'; -$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.'; -$wb['dmarc_ri_txt'] = 'Reporting Interval'; -$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 represents 1 day).'; -$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).'; -$wb['dmarc_sp_same_txt'] = 'same as domain'; -$wb['dmarc_sp_none_txt'] = 'none'; -$wb['dmarc_sp_quarantine_txt'] = 'quarantine'; -$wb['dmarc_sp_reject_txt'] = 'reject'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['dmarc_policy_error_txt'] = 'Only policy \'none\' is allowed without DKIM-signed emails.'; -$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.'; -$wb['dmarc_no_spf_txt'] = 'No active SPF Record.'; -$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; -$wb['dmarc_invalid_email_txt'] = 'Invalid Email'; -$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; -$wb['record_exists_txt'] = 'DNS-Record already exists'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['data_txt'] = 'DMARC Kaydı'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['dmarc_policy_txt'] = 'E-posta Alma İlkesi'; +$wb['dmarc_policy_note_txt'] = 'SPF ya da DKIM (DMARC) doÄŸrulaması yapılamadığında İnternet Hizmeti SaÄŸlayıcıların iletileri nasıl iÅŸleyeceÄŸi.'; +$wb['dmarc_policy_none_txt'] = 'iÅŸlem yapılmasın'; +$wb['dmarc_policy_quarantine_txt'] = 'karantinaya alınsın'; +$wb['dmarc_policy_reject_txt'] = 'reddedilsin'; +$wb['dmarc_rua_txt'] = 'Verilerin BildirileceÄŸi Adres'; +$wb['dmarc_rua_note_txt'] = 'Etki alanı için DMARC doÄŸrulamasını geçemeyen iletiler hakkında İnternet Hizmeti SaÄŸlayıcılardan gelen bildirimlerin alınacağı e-posta adresleri (boÅŸluk ile ayırarak yazın).'; +$wb['dmarc_ruf_txt'] = 'Adli BiliÅŸim Verilerinin BildirileceÄŸi Adres'; +$wb['dmarc_ruf_note_txt'] = 'Etki alanı için DMARC doÄŸrulamasını geçemeyen örnek iletilerin alınacağı e-posta adresleri (boÅŸluk ile ayırarak yazın).'; +$wb['dmarc_fo_txt'] = 'Adli biliÅŸim bildirim seçenekleri'; +$wb['dmarc_fo0_txt'] = 'Belirtilen hiç bir kimlik doÄŸrulama yöntemi bir DMARC sonucu alamazsa bildirimler üretilsin.'; +$wb['dmarc_fo1_txt'] = 'Yöntemlerden biri doÄŸrulama yapamazsa bildirimler üretilsin.'; +$wb['dmarc_fod_txt'] = 'DKIM imzası doÄŸrulanamazsa bildirim üretilsin.'; +$wb['dmarc_fos_txt'] = 'SPF baÅŸarısız olursa bildirim gönderilsin.'; +$wb['dmarc_adkim_txt'] = 'DKIM belirteci deÄŸerlendirmesi'; +$wb['dmarc_adkim_note_txt'] = ' seçeneÄŸinde DKIM etki alanı ile e-postanın geldiÄŸi etki alanının bire bir eÅŸleÅŸmesi gerekir'; +$wb['dmarc_adkim_r_txt'] = 'gevÅŸek'; +$wb['dmarc_adkim_s_txt'] = 'sıkı'; +$wb['dmarc_aspf_txt'] = 'SPF belirteci deÄŸerlendirmesi'; +$wb['dmarc_aspf_note_txt'] = ' seçeneÄŸinde SPF etki alanı ile e-postanın geldiÄŸi etki alanının bire bir eÅŸleÅŸmesi gerekir'; +$wb['dmarc_aspf_r_txt'] = 'gevÅŸek'; +$wb['dmarc_aspf_s_txt'] = 'sıkı'; +$wb['dmarc_rf_txt'] = 'Bildirim Biçimi'; +$wb['dmarc_rf_afrf_txt'] = 'Kimlik DoÄŸrulama Sorunlarını Bildirme Biçimi'; +$wb['dmarc_rf_iodef_txt'] = 'Olay Nesnesi Açıklama DeÄŸiÅŸimi Biçimi'; +$wb['dmarc_pct_txt'] = 'İlkenin Uygulanacağı Yüzde'; +$wb['dmarc_pct_note_txt'] = 'İnternet Hizmeti saÄŸlayıcı tarafından denetlenmesini istediÄŸiniz iletilerin yüzdesi (varsayılan %100).'; +$wb['dmarc_ri_txt'] = 'Bildirim Sıklığı'; +$wb['dmarc_ri_note_txt'] = 'Saniye cinsinden bildirim raporlarının üretilme sıklığı (varsayılan deÄŸer, bir güne karşılık 86400).'; +$wb['dmarc_sp_txt'] = 'Alt Etki Alanı İlkesi (Varsayılan deÄŸerler etki alanı ile aynıdır).'; +$wb['dmarc_sp_same_txt'] = 'etki alanı ile aynı'; +$wb['dmarc_sp_none_txt'] = 'iÅŸlem yapılmasın'; +$wb['dmarc_sp_quarantine_txt'] = 'karantiya atılsın'; +$wb['dmarc_sp_reject_txt'] = 'reddedilsin'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['dmarc_policy_error_txt'] = 'DKIM ile imzalanmış e-postalar için yalnız ilkesi seçilebilir.'; +$wb['dmarc_no_dkim_txt'] = 'Etkin bir DKIM kaydı yok.'; +$wb['dmarc_no_spf_txt'] = 'Etkin bir SPF kaydı yok.'; +$wb['dmarc_more_spf_txt'] = 'Birden çok etkin SPF kaydı var'; +$wb['dmarc_invalid_email_txt'] = 'E-posta Adresi Geçersiz'; +$wb['dmarc_empty_txt'] = 'DMARC kaydı boÅŸ - en az bir seçenek seçin'; +$wb['record_exists_txt'] = 'DNS kaydı zaten var'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_dname.lng b/interface/web/dns/lib/lang/tr_dns_dname.lng new file mode 100644 index 0000000000000000000000000000000000000000..8cd2b0a0aa87734e929054e9c5bfdda4c6bb7668 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_dname.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'Sunucu'; +$wb['zone_txt'] = 'Bölge'; +$wb['name_txt'] = 'Sunucu Adı'; +$wb['type_txt'] = 'Tür'; +$wb['data_txt'] = 'Hedef Sunucu Adı'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; +$wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; +$wb['data_error_empty'] = 'Hedef sunucu adı boÅŸ olamaz'; +$wb['data_error_regex'] = 'Hedef sunucu adı biçimi geçersiz'; +$wb['data_error_duplicate'] = 'Duplicate CNAME or DNAME record'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_ds.lng b/interface/web/dns/lib/lang/tr_dns_ds.lng index c3622dc5b5eaa71ee71e573b6bb83da16aba3892..4ab7447d0ae55b9dda2bcd5542016dff226eb81f 100644 --- a/interface/web/dns/lib/lang/tr_dns_ds.lng +++ b/interface/web/dns/lib/lang/tr_dns_ds.lng @@ -1,17 +1,18 @@ <?php -$wb['server_id_txt'] = 'Server'; -$wb['zone_txt'] = 'Zone'; -$wb['name_txt'] = 'Hostname'; -$wb['type_txt'] = 'type'; -$wb['data_txt'] = 'Data'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['name_error_empty'] = 'The hostname is empty.'; -$wb['name_error_regex'] = 'The hostname has the wrong format.'; -$wb['data_error_empty'] = 'Text empty'; -$wb['data_error_regex'] = 'Text format invalid'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -$wb['invalid_type_ds'] = 'DS-Record has a wrong format.'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['zone_txt'] = 'Bölge'; +$wb['name_txt'] = 'Sunucu Adı'; +$wb['type_txt'] = 'tür'; +$wb['data_txt'] = 'Veri'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; +$wb['name_error_regex'] = 'Sunucu adının biçimi hatalı.'; +$wb['data_error_empty'] = 'Metin boÅŸ olamaz'; +$wb['data_error_regex'] = 'Metin biçimi geçersiz'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; +$wb['invalid_type_ds'] = 'DS kaydının biçimi hatalı.'; + ?> diff --git a/interface/web/dns/lib/lang/tr_dns_hinfo.lng b/interface/web/dns/lib/lang/tr_dns_hinfo.lng index 9082420e045920df1937a54d5915c83c01f1cb97..c47718c63c966ad273c43c7405e62ceba741335b 100644 --- a/interface/web/dns/lib/lang/tr_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/tr_dns_hinfo.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Sunucu Bilgisi'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Sunucu bilgisi boÅŸ olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_import.lng b/interface/web/dns/lib/lang/tr_dns_import.lng index 64073d2b49dc5a2167de5340ba759b4bad375180..8aa42a51e3c6126a0620d20bee38418048d96751 100644 --- a/interface/web/dns/lib/lang/tr_dns_import.lng +++ b/interface/web/dns/lib/lang/tr_dns_import.lng @@ -1,16 +1,25 @@ <?php -$wb['zone_file_import_txt'] = 'Bölge Dosyası Alma'; +$wb['zone_file_import_txt'] = 'Bölge Dosyası İçe Aktarma'; $wb['server_id_txt'] = 'Sunucu'; $wb['client_txt'] = 'Müşteri'; -$wb['btn_save_txt'] = 'Bölge Dosyasını Al'; +$wb['btn_save_txt'] = 'Bölge Dosyasını İçe Aktar'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['zone_file_successfully_imported_txt'] = 'Bölge dosyası alındı!'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['zone_file_successfully_imported_txt'] = 'Bölge dosyası içe aktarıldı!'; $wb['error_no_valid_zone_file_txt'] = 'Bu bölge dosyası geçersiz görünüyor!'; $wb['zonefile_to_import_txt'] = 'Bölge Dosyası'; -$wb['domain_field_desc_txt'] = 'Alan adı dosya adında ya da bölge dosyasının içeriÄŸinde bulunuyor ise boÅŸ bırakılabilir.'; -$wb['title'] = 'Bölge Dosyalarını Al'; +$wb['domain_field_desc_txt'] = 'Etki alanı dosya adında ya da bölge dosyasının içeriÄŸinde bulunuyor ise boÅŸ bırakılabilir.'; +$wb['title'] = 'Bölge Dosyalarını İçe Aktar'; $wb['no_file_uploaded_error'] = 'Hiçbir bölge dosyası yüklenmedi'; -$wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_no_server_id'] = 'Sunucu belirtilmemiÅŸ.'; +$wb['error_not_allowed_server_id'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamaz.'; +$wb['zone_already_exists'] = 'This zone already exists, you must delete or rename it first.'; +$wb['zone_not_allowed'] = 'This zone is not allowed for this account.'; +$wb['zone_file_missing_soa'] = 'The zone file must contain a SOA record.'; +$wb['zone_file_multiple_soa'] = 'The zone file cannot contain multiple SOA records.'; +$wb['zone_file_soa_parser'] = 'The SOA record in this zone file could not be processed. Ensure SERIAL, REFRESH, RETRY, EXPIRE and MINIMUM are each on a separate line from other data.'; +$wb['ignore_record_not_class_in'] = 'Ignoring DNS record, not class IN.'; +$wb['ignore_record_unknown_type'] = 'Ignoring DNS record, unknown type.'; +$wb['ignore_record_invalid_owner'] = 'Ignoring DNS record, not able to validate owner name.'; +$wb['zone_file_import_fail'] = 'The zone file did not import.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_loc.lng b/interface/web/dns/lib/lang/tr_dns_loc.lng index dc9ad9a00634513f03aec6da53682d2842bae7b6..25350c9aa8ef17276875fc4b31da8cc1a1e88cd2 100644 --- a/interface/web/dns/lib/lang/tr_dns_loc.lng +++ b/interface/web/dns/lib/lang/tr_dns_loc.lng @@ -1,16 +1,16 @@ <?php -$wb['server_id_txt'] = 'Server'; -$wb['zone_txt'] = 'Zone'; -$wb['name_txt'] = 'Hostname'; -$wb['type_txt'] = 'type'; -$wb['data_txt'] = 'Data'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['name_error_empty'] = 'The hostname is empty.'; -$wb['name_error_regex'] = 'The hostname has the wrong format.'; -$wb['data_error_empty'] = 'Text empty'; -$wb['data_error_regex'] = 'Text format invalid'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['zone_txt'] = 'Bölge'; +$wb['name_txt'] = 'Sunucu Adı'; +$wb['type_txt'] = 'Tür'; +$wb['data_txt'] = 'Veri'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; +$wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; +$wb['data_error_empty'] = 'Metin boÅŸ'; +$wb['data_error_regex'] = 'Metin biçimi geçersiz'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_mx.lng b/interface/web/dns/lib/lang/tr_dns_mx.lng index b3efeab1bbce8ff7edd3fab5df657843fe43dbe8..6f39e991bc84c8684d6598e60852d2fffa7a8b50 100644 --- a/interface/web/dns/lib/lang/tr_dns_mx.lng +++ b/interface/web/dns/lib/lang/tr_dns_mx.lng @@ -2,17 +2,17 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; -$wb['data_txt'] = 'Posta sunucusu adı'; +$wb['type_txt'] = 'Tür'; +$wb['data_txt'] = 'E-posta Sunucusu Adı'; $wb['aux_txt'] = 'Öncelik'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; -$wb['data_error_empty'] = 'Posta sunucusu adı boÅŸ olamaz'; -$wb['data_error_regex'] = 'Posta sunucusu adı biçimi geçersiz'; +$wb['data_error_empty'] = 'E-posta sunucusu adı boÅŸ olamaz'; +$wb['data_error_regex'] = 'E-posta sunucusu adı biçimi geçersiz'; $wb['duplicate_mx_record_txt'] = 'Bu MX kaydı zaten var.'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_naptr.lng b/interface/web/dns/lib/lang/tr_dns_naptr.lng new file mode 100644 index 0000000000000000000000000000000000000000..c63e695a86e7fe26e0491b73d7830c5778abf827 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["zone_txt"] = 'Zone'; +$wb["name_txt"] = 'Hostname'; +$wb["order_txt"] = 'Order'; +$wb["pref_txt"] = 'Pref'; +$wb["flags_txt"] = 'Flags'; +$wb["service_txt"] = 'Service'; +$wb["regexp_txt"] = 'RegExp'; +$wb["replacement_txt"] = 'Replacement'; +$wb["ttl_txt"] = 'TTL'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.'; +$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; +$wb["name_error_empty"] = 'The hostname is empty.'; +$wb["name_error_regex"] = 'The hostname has the wrong format.'; +$wb["data_error_empty"] = 'NAPTR record is empty.'; +$wb["naptr_error_regex"] = 'Invalid NAPTR record. The NAPTR record must include Order, Pref and either Regex or Replacement.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['record_parse_error'] = 'Could not parse the record found in database.'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_ns.lng b/interface/web/dns/lib/lang/tr_dns_ns.lng index 03975af5faf368347d1c6ef652936a2643699d16..e32b086091bcdcd405412770f13f6a2800d49cef 100644 --- a/interface/web/dns/lib/lang/tr_dns_ns.lng +++ b/interface/web/dns/lib/lang/tr_dns_ns.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Bölge'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'tür'; $wb['data_txt'] = 'Ad Sunucusu Adı'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Bölge boÅŸ olamaz.'; $wb['name_error_regex'] = 'Bölge biçimi geçersiz.'; $wb['data_error_empty'] = 'Ad sunucusu boÅŸ olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_rp.lng b/interface/web/dns/lib/lang/tr_dns_rp.lng index 0a01c2dbe8937460d818785fe656308d202f49a3..56c10cb7e4331b08ddf2a57901d6e0e74f81e78f 100644 --- a/interface/web/dns/lib/lang/tr_dns_rp.lng +++ b/interface/web/dns/lib/lang/tr_dns_rp.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'İlgili KiÅŸi'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'İlgili kiÅŸi boÅŸ olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_slave.lng b/interface/web/dns/lib/lang/tr_dns_slave.lng index d6c83a92fa40548a7163a31570326132108e3e0c..8c83c1591c5e43fce049f7582a8e0c9016f9177b 100644 --- a/interface/web/dns/lib/lang/tr_dns_slave.lng +++ b/interface/web/dns/lib/lang/tr_dns_slave.lng @@ -13,5 +13,5 @@ $wb['origin_error_unique'] = 'Bu bölge için zaten bir kayıt var.'; $wb['origin_error_regex'] = 'Bölge biçimi geçersiz.'; $wb['ns_error_regex'] = 'NS biçimi geçersiz.'; $wb['eg_domain_tld'] = 'Örnek: domain.tld.'; -$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; +$wb['ipv4_form_txt'] = 'Birden çok IP adresini virgül ile ayırarak yazın'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa.lng b/interface/web/dns/lib/lang/tr_dns_soa.lng index 02e325e42785d7dc5bc789daad75de10d7125ff5..fd39de04f5e9742c3717bb77a33e6d25908a1a16 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa.lng @@ -9,11 +9,14 @@ $wb['retry_txt'] = 'Yinelenme'; $wb['expire_txt'] = 'Sona erme'; $wb['minimum_txt'] = 'En düşük'; $wb['ttl_txt'] = 'TTL Süresi'; -$wb['xfer_txt'] = 'Åžu IP adreslerine (virgülle ayrılmış)<br />bölge aktarımı yapılabilsin'; +$wb['xfer_txt'] = 'Åžu IP adreslerine (virgül ile ayrırak yazın)<br />bölge aktarımı yapılabilsin'; $wb['active_txt'] = 'Etkin'; +$wb['dnssec_info_txt'] = 'Kayıt defteri için DNSSEC DS verisi'; +$wb['dnssec_wanted_txt'] = 'İmza bölgesi (DNSSEC)'; +$wb['dnssec_wanted_info'] = 'Devre dışı bırakıldığında DNSSEC daha önce etkinleÅŸtirilmiÅŸ ve anahtarlar üretilmiÅŸ ise DNSSEC anahtarları silinir. Ancak bölge bundan sonra imzalanmış biçimde aktarılmaz.'; $wb['limit_dns_zone_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS bölgesi sayısına ulaÅŸtınız.'; $wb['client_txt'] = 'Müşteri'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['server_id_error_empty'] = 'Sunucu seçilmemiÅŸ'; $wb['origin_error_empty'] = 'Bölge boÅŸ olamaz.'; $wb['origin_error_unique'] = 'Bu bölge için bir kayıt zaten var.'; @@ -21,24 +24,21 @@ $wb['origin_error_regex'] = 'Bölge biçimi geçersiz.'; $wb['ns_error_regex'] = 'NS geçersiz formatta.'; $wb['mbox_error_empty'] = 'E-posta boÅŸ olamaz.'; $wb['mbox_error_regex'] = 'E-posta biçimi geçersiz.'; -$wb['also_notify_txt'] = 'Ayrıca Bildir'; -$wb['also_notify_error_regex'] = 'Lütfen bir IP adresi kullanın.'; -$wb['xfer_error_regex'] = 'Ayrıca bildir: Lütfen bir IP adresi kullanın.'; +$wb['also_notify_txt'] = 'Ayrıca Bildirilsin'; +$wb['also_notify_error_regex'] = 'Ayrıca Bildirilsin: Lütfen bir IP adresi kullanın.'; +$wb['xfer_error_regex'] = 'Aktarılsın: Bir ya da , ile ayrılmış birkaç IP adresi ya da any sözcüğünü kullanın.'; $wb['update_acl_txt'] = 'EDL Güncelle'; $wb['seconds_txt'] = 'Saniye'; $wb['eg_domain_tld'] = 'Örnek: domain.tld'; $wb['eg_ns1_domain_tld'] = 'Örnek: ns1.domain.tld'; $wb['eg_webmaster_domain_tld'] = 'Örnek: webmaster@domain.tld'; -$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Alan adı deÄŸiÅŸtirilemedi. Lütfen alan adını deÄŸiÅŸtirmek için sistem yöneticisi ile görüşün.'; +$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Etki alanı deÄŸiÅŸtirilemedi. Lütfen etki alanını deÄŸiÅŸtirmek için sistem yöneticisi ile görüşün.'; $wb['refresh_range_error'] = 'En kısa yenilenme süresi 60 saniyedir.'; $wb['retry_range_error'] = 'En kısa yinelenme süresi 60 saniyedir.'; $wb['expire_range_error'] = 'En kısa sona erme süresi 60 saniyedir.'; $wb['minimum_range_error'] = 'En kısa en kısa süre 60 saniyedir.'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry'; -$wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)'; -$wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delivered in signed format afterwards. If you use PowerDNS, keys WILL be deleted!'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; -$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.'; -$wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['error_not_allowed_server_id'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamaz.'; +$wb['soa_cannot_be_changed_txt'] = 'Bölge (SOA) deÄŸiÅŸtirilemez. Lütfen bölgeyi deÄŸiÅŸtirmek için yöneticiniz ile görüşün.'; +$wb['configuration_error_txt'] = 'YAPILANDIRMA SORUNU'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng index d8e56c17ee27c0be5510e44ed12bed51d0a76fee..6f0bc7f985ab8a8b950e1937909aa074e4992d1c 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng @@ -5,7 +5,8 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['origin_txt'] = 'Bölge'; $wb['ns_txt'] = 'Ad Sunucusu'; $wb['mbox_txt'] = 'E-posta'; -$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS bölgesi ekle'; +$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS Bölgesi Ekle'; $wb['add_new_record_txt'] = 'El ile DNS Bölgesi Ekle'; +$wb['import_zone_file_txt'] = 'Bölge Dosyasını İçe Aktar'; $wb['sys_groupid_txt'] = 'Müşteri'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_list.lng index 8f7ed985ee0d03e829b1bc2c0e8ebf66ab45f11c..831ff6afd7ae3666ca0f2e061e446d57f6c01783 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa_list.lng @@ -5,7 +5,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['origin_txt'] = 'Bölge'; $wb['ns_txt'] = 'Ad Sunucusu'; $wb['mbox_txt'] = 'E-posta'; -$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS bölgesi ekle'; +$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS Bölgesi Ekle'; $wb['add_new_record_txt'] = 'DNS Bölgesi (SOA) Ekle'; -$wb['import_zone_file_txt'] = 'Import Zone File'; +$wb['import_zone_file_txt'] = 'Bölge Dosyasını İçe Aktar'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_spf.lng b/interface/web/dns/lib/lang/tr_dns_spf.lng index df8d1fe1453faa2d4decfe0d3dc94cf19ff48458..5ca1e470e389f72efff1099c543c23b711e1bb47 100644 --- a/interface/web/dns/lib/lang/tr_dns_spf.lng +++ b/interface/web/dns/lib/lang/tr_dns_spf.lng @@ -1,25 +1,30 @@ <?php -$wb['data_txt'] = 'SPF-Record'; -$wb['spf_mechanism_txt'] = 'SPF Mechanism'; -$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders'; -$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders'; -$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email'; -$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing'; -$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain'; -$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain'; -$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain'; -$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)'; -$wb['spf_invalid_ip_txt'] = 'Invalid IP-address'; -$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain'; -$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)'; -$wb['spf_invalid_hostname_txt'] = 'Invalid hostname'; -$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain'; -$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)'; -$wb['spf_invalid_domain_txt'] = 'Invalid domainname'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['record_exists_txt'] = 'DNS-Record already exists'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['data_txt'] = 'SPF Kaydı'; +$wb['name_txt'] = 'Hostname'; +$wb['spf_mechanism_txt'] = 'SPF Yöntemi'; +$wb['spf_mechanism_pass_txt'] = 'Kabul - DiÄŸer göndericilerden gelen e-postalar kabul edilsin'; +$wb['spf_mechanism_fail_txt'] = 'Red - DiÄŸer göndericilerden gelen e-postalar reddedilsin'; +$wb['spf_mechanism_softfail_txt'] = 'Yazılımsal Red - DiÄŸer göndericilerden gelen e-postalar kabul edilsin ancak e-posta iÅŸaretlensin'; +$wb['spf_mechanism_neutral_txt'] = 'Tepkisiz - Hiç bir ÅŸey yapılmasın'; +$wb['spf_mx_txt'] = 'MX olarak listelenen sunucular bu etki alanı adına e-posta gönderebilsin'; +$wb['spf_a_txt'] = 'Etki alanının geçerli IP adresleri bu etki alanı adına e-posta gönderebilsin'; +$wb['spf_ip_txt'] = 'CIDR biçiminde, bu etki alanı için e-posta gönderebilecek ya da aktarabilecek IP adresleri'; +$wb['spf_ip_note_txt'] = '(IP adreslerini boÅŸluk ile ayırarak yazın)'; +$wb['spf_invalid_ip_txt'] = 'IP adresi geçersiz'; +$wb['spf_hostname_txt'] = 'Bu etki alanı için e-posta gönderebilecek ya da aktarabilecek diÄŸer sunucuların adları'; +$wb['spf_hostname_note_txt'] = '(Sunucu adlarını boÅŸluk ile ayırarak yazın)'; +$wb['spf_invalid_hostname_txt'] = 'Sunucu adı geçersiz'; +$wb['spf_domain_txt'] = 'Bu etki alanı için e-posta gönderebilecek ya da aktarabilecek etki alanı adları'; +$wb['spf_domain_note_txt'] = '(Etki alanı adlarını boÅŸluk ile ayırarak yazın)'; +$wb['spf_invalid_domain_txt'] = 'Etki alanı adı geçersiz'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['record_exists_txt'] = 'DNS kaydı zaten var'; +$wb['spf_record_exists_txt'] = 'SPF-Record already exists for hostname "{hostname}". Do you want to <a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">edit the existing record</a>?'; +$wb['spf_record_exists_multiple_txt'] = 'Multiple SPF-Records exist for hostname "{hostname}". This will cause recipients to reject your mail! Delete or merge duplicate existing records and try again.'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; +$wb['name_error_regex'] = 'The hostname has the wrong format.'; +$wb['btn_edit_as_txt_record_txt'] = 'Edit as TXT record'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_srv.lng b/interface/web/dns/lib/lang/tr_dns_srv.lng index c7ad55a852f42925b830e5e1c6a1755b3b48deec..8af151db87f2478488c9cc1d19bc1559ab5080f5 100644 --- a/interface/web/dns/lib/lang/tr_dns_srv.lng +++ b/interface/web/dns/lib/lang/tr_dns_srv.lng @@ -2,7 +2,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['target_txt'] = 'Hedef'; $wb['weight_txt'] = 'Ağırlık'; $wb['port_txt'] = 'Kapı'; @@ -10,7 +10,7 @@ $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['aux_txt'] = 'Öncelik'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS Bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Sunucu kaydı boÅŸ olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_sshfp.lng b/interface/web/dns/lib/lang/tr_dns_sshfp.lng new file mode 100644 index 0000000000000000000000000000000000000000..25350c9aa8ef17276875fc4b31da8cc1a1e88cd2 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_sshfp.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'Sunucu'; +$wb['zone_txt'] = 'Bölge'; +$wb['name_txt'] = 'Sunucu Adı'; +$wb['type_txt'] = 'Tür'; +$wb['data_txt'] = 'Veri'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; +$wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; +$wb['data_error_empty'] = 'Metin boÅŸ'; +$wb['data_error_regex'] = 'Metin biçimi geçersiz'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_template.lng b/interface/web/dns/lib/lang/tr_dns_template.lng index 3ca594f62e32b8ac7be0f9034d259a5fbe9c5cbd..37ba3b5883efc3ae083e28a2f1eda6667dcb4c52 100644 --- a/interface/web/dns/lib/lang/tr_dns_template.lng +++ b/interface/web/dns/lib/lang/tr_dns_template.lng @@ -3,5 +3,4 @@ $wb['name_txt'] = 'Ad'; $wb['fields_txt'] = 'Alanlar'; $wb['template_txt'] = 'Kalıp'; $wb['visible_txt'] = 'Görünür'; -$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_tlsa.lng b/interface/web/dns/lib/lang/tr_dns_tlsa.lng index 3b87e2ad5987236e2159ce12b7494c89d15a6250..1fe0310d3a9273a35a856a604678fdc2671c358c 100644 --- a/interface/web/dns/lib/lang/tr_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/tr_dns_tlsa.lng @@ -1,16 +1,16 @@ <?php -$wb['server_id_txt'] = 'Server'; -$wb['zone_txt'] = 'Zone'; -$wb['name_txt'] = 'Service-Descriptor'; -$wb['type_txt'] = 'type'; -$wb['data_txt'] = 'TLSA-Data'; -$wb['ttl_txt'] = 'TTL'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['name_error_empty'] = 'The hostname is empty.'; -$wb['name_error_regex'] = 'The hostname has the wrong format. Correct: _<port>._(tcp|udp).<hostname>'; -$wb['data_error_empty'] = 'TLSA-Data empty'; -$wb['data_error_regex'] = 'TLSA dataformat is wrong. Correct: n n n HASH'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['zone_txt'] = 'Bölge'; +$wb['name_txt'] = 'Hizmet Belirteci'; +$wb['type_txt'] = 'tür'; +$wb['data_txt'] = 'TLSA Verisi'; +$wb['ttl_txt'] = 'TTL Süresi'; +$wb['active_txt'] = 'Etkin'; +$wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; +$wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; +$wb['name_error_regex'] = 'Sunucu adının biçimi hatalı. DoÄŸru biçim: _<kapı>._(tcp|udp).<sunucuadı>'; +$wb['data_error_empty'] = 'TLSA verisi boÅŸ olamaz.'; +$wb['data_error_regex'] = 'TLSA veri biçimi hatalı. DoÄŸru biçim: n n n HASH'; +$wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_txt.lng b/interface/web/dns/lib/lang/tr_dns_txt.lng index 7b77bae7f9ec781b29b0cd68f9614a21cd6b9164..632b1e7b69f5606b053669fa3b7b3c43b6901397 100644 --- a/interface/web/dns/lib/lang/tr_dns_txt.lng +++ b/interface/web/dns/lib/lang/tr_dns_txt.lng @@ -2,18 +2,18 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Metin'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS kaydı sınırına ulaÅŸtınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Metin boÅŸ olamaz'; $wb['data_error_regex'] = 'Metin biçimi geçersiz'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; -$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; -$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; +$wb['invalid_type_dkim'] = 'DKIM yazılamaz. DKIM düğmesini kullanın'; +$wb['invalid_type_dmarc'] = 'DMARC yazılamaz. DMARC düğmesini kullanın'; +$wb['invalid_type_spf'] = 'SPF yazılamaz. SPF düğmesini kullanın.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_wizard.lng b/interface/web/dns/lib/lang/tr_dns_wizard.lng index 1a96393914823a3afdcc8d8053229e92e2421e54..f0a8b38980b82b64c91c66e69ae5195def8835c6 100644 --- a/interface/web/dns/lib/lang/tr_dns_wizard.lng +++ b/interface/web/dns/lib/lang/tr_dns_wizard.lng @@ -7,11 +7,14 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['client_txt'] = 'Müşteri'; $wb['btn_save_txt'] = 'DNS Kaydı Ekle'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['email_txt'] = 'E-posta'; -$wb['ns1_txt'] = 'Ad Sunucusu 1'; -$wb['ns2_txt'] = 'Ad Sunucusu 2'; +$wb['dkim_txt'] = 'DKIM'; +$wb['dnssec_txt'] = 'İmza bölgesi (DNSSEC)'; +$wb['ns1_txt'] = '1. Ad Sunucusu'; +$wb['ns2_txt'] = '2. Ad Sunucusu'; $wb['ip_txt'] = 'IP Adresi'; +$wb['ipv6_txt'] = 'IPv6 Adresi'; $wb['error_origin_empty'] = 'Kaynak boÅŸ olamaz.'; $wb['error_ns_empty'] = 'Ad sunucusu boÅŸ olamaz.'; $wb['error_mbox_empty'] = 'Mbox boÅŸ olamaz.'; @@ -20,14 +23,15 @@ $wb['error_retry_empty'] = 'Yinelenme boÅŸ olamaz.'; $wb['error_expire_empty'] = 'Sona erme boÅŸ olamaz.'; $wb['error_minimum_empty'] = 'En az boÅŸ olamaz.'; $wb['error_ttl_empty'] = 'TTL süresi boÅŸ olamaz.'; -$wb['error_domain_empty'] = 'Alan adı boÅŸ olamaz'; +$wb['error_domain_empty'] = 'Etki alanı boÅŸ olamaz'; $wb['error_ip_empty'] = 'IP boÅŸ olamaz.'; -$wb['error_ns1_empty'] = 'As Sunucusu 1 boÅŸ olamaz.'; -$wb['error_ns2_empty'] = 'Ad Sunucusu 2 boÅŸ olamaz.'; +$wb['error_ipv6_empty'] = 'IPv6 boÅŸ olamaz.'; +$wb['error_ns1_empty'] = '1. Ad Sunucusu boÅŸ olamaz.'; +$wb['error_ns2_empty'] = '2. Ad Sunucusu boÅŸ olamaz.'; $wb['error_email_empty'] = 'E-posta boÅŸ olamaz.'; -$wb['error_domain_regex'] = 'Alan adında geçersiz karakterler var.'; -$wb['error_ns1_regex'] = 'Ad Sunucusu 1 adında geçersiz karakterler var.'; -$wb['error_ns2_regex'] = 'Ad Sunucusu 2 adında geçersiz karakterler var.'; +$wb['error_domain_regex'] = 'Etki alanı adında geçersiz karakterler var.'; +$wb['error_ns1_regex'] = '1. Ad Sunucusu adında geçersiz karakterler var.'; +$wb['error_ns2_regex'] = '2. Ad Sunucusu adında geçersiz karakterler var.'; $wb['error_email_regex'] = 'E-posta adresi geçersiz.'; $wb['globalsearch_resultslimit_of_txt'] = '/'; $wb['globalsearch_resultslimit_results_txt'] = 'sonuç'; @@ -35,11 +39,7 @@ $wb['globalsearch_noresults_text_txt'] = 'Sonuç yok.'; $wb['globalsearch_noresults_limit_txt'] = '0 sonuç'; $wb['globalsearch_searchfield_watermark_txt'] = 'Arama'; $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; -$wb['dkim_txt'] = 'DKIM'; -$wb['dnssec_txt'] = 'Sign zone (DNSSEC)'; -$wb['ipv6_txt'] = 'IPv6 Address'; -$wb['error_ipv6_empty'] = 'IPv6 empty.'; -$wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; +$wb['error_no_server_id'] = 'Bir sunucu belirtilmemiÅŸ.'; +$wb['error_not_allowed_server_id'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamaz.'; +$wb['limit_dns_zone_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla DNS bölgesi sayısına ulaÅŸtınız.'; ?> diff --git a/interface/web/dns/lib/module.conf.php b/interface/web/dns/lib/module.conf.php index 75b17a98e8d975871418da2f4a8655f3b5d3aacc..4e4c6454708ba56f3b7aad22324514d98cfe093d 100644 --- a/interface/web/dns/lib/module.conf.php +++ b/interface/web/dns/lib/module.conf.php @@ -1,5 +1,7 @@ <?php +$userid=$app->auth->get_user_id(); + $module["name"] = "dns"; $module["title"] = "top_menu_dns"; $module["template"] = "module.tpl.htm"; @@ -56,19 +58,23 @@ $module["nav"][] = array( 'title' => 'DNS', unset($items); -$items[] = array( 'title' => "Secondary Zones", - 'target' => 'content', - 'link' => 'dns/dns_slave_list.php', - 'html_id' => 'dns_slave_list'); - -$module["nav"][] = array( 'title' => 'Secondary DNS', - 'open' => 1, - 'items' => $items); +if($app->auth->get_client_limit($userid, 'dns_slave_zone') != 0) +{ + $items[] = array( 'title' => "Secondary Zones", + 'target' => 'content', + 'link' => 'dns/dns_slave_list.php', + 'html_id' => 'dns_slave_list'); + + $module["nav"][] = array( 'title' => 'Secondary DNS', + 'open' => 1, + 'items' => $items); + + unset($items); +} -unset($items); -?> +?> \ No newline at end of file diff --git a/interface/web/dns/lib/remote.conf.php b/interface/web/dns/lib/remote.conf.php index 0ca556926bf29d8f6aaadbdebb8cb7ad324be371..fb52f8973eead2ce4cb34100039d316a3d4318cf 100644 --- a/interface/web/dns/lib/remote.conf.php +++ b/interface/web/dns/lib/remote.conf.php @@ -4,16 +4,20 @@ $function_list['dns_zone_get,dns_zone_get_id,dns_zone_add,dns_zone_update,dns_zo $function_list['dns_a_get,dns_a_add,dns_a_update,dns_a_delete'] = 'DNS a functions'; $function_list['dns_aaaa_get,dns_aaaa_add,dns_aaaa_update,dns_aaaa_delete'] = 'DNS aaaa functions'; $function_list['dns_alias_get,dns_alias_add,dns_alias_update,dns_alias_delete'] = 'DNS alias functions'; +$function_list['dns_caa_get,dns_caa_add,dns_caa_update,dns_caa_delete'] = 'DNS caa functions'; $function_list['dns_cname_get,dns_cname_add,dns_cname_update,dns_cname_delete'] = 'DNS cname functions'; +$function_list['dns_dname_get,dns_dname_add,dns_dname_update,dns_dname_delete'] = 'DNS dname functions'; $function_list['dns_ds_get,dns_ds_add,dns_ds_update,dns_ds_delete'] = 'DNS ds functions'; $function_list['dns_hinfo_get,dns_hinfo_add,dns_hinfo_update,dns_hinfo_delete'] = 'DNS hinfo functions'; $function_list['dns_loc_get,dns_loc_add,dns_loc_update,dns_loc_delete'] = 'DNS loc functions'; $function_list['dns_mx_get,dns_mx_add,dns_mx_update,dns_mx_delete'] = 'DNS mx functions'; -$function_list['dns_tlsa_get,dns_tlsa_add,dns_tlsa_update,dns_tlsa_delete'] = 'DNS tlsa functions'; +$function_list['dns_naptr_get,dns_naptr_add,dns_naptr_update,dns_naptr_delete'] = 'DNS naptr functions'; $function_list['dns_ns_get,dns_ns_add,dns_ns_update,dns_ns_delete'] = 'DNS ns functions'; $function_list['dns_ptr_get,dns_ptr_add,dns_ptr_update,dns_ptr_delete'] = 'DNS ptr functions'; $function_list['dns_rp_get,dns_rp_add,dns_rp_update,dns_rp_delete'] = 'DNS rp functions'; $function_list['dns_srv_get,dns_srv_add,dns_srv_update,dns_srv_delete'] = 'DNS srv functions'; +$function_list['dns_sshfp_get,dns_sshfp_add,dns_sshfp_update,dns_sshfp_delete'] = 'DNS sshfp functions'; +$function_list['dns_tlsa_get,dns_tlsa_add,dns_tlsa_update,dns_tlsa_delete'] = 'DNS tlsa functions'; $function_list['dns_txt_get,dns_txt_add,dns_txt_update,dns_txt_delete'] = 'DNS txt functions'; ?> diff --git a/interface/web/dns/list/dns_a.list.php b/interface/web/dns/list/dns_a.list.php index 1c6999511d1280b8c015b422bed9435a6cf5485b..169ec4af069f4435613e3f1b0ca73d1ca77d02fc 100644 --- a/interface/web/dns/list/dns_a.list.php +++ b/interface/web/dns/list/dns_a.list.php @@ -132,7 +132,7 @@ $liste["item"][] = array( 'field' => "type", 'prefix' => "", 'suffix' => "", 'width' => "", - 'value' => array('A'=>'A', 'AAAA' => 'AAAA', 'ALIAS'=>'ALIAS', 'CAA'=>'CAA', 'CNAME'=>'CNAME', 'DS'=>'DS', 'HINFO'=>'HINFO', 'LOC'=>'LOC', 'MX'=>'MX', 'NS'=>'NS', 'PTR'=>'PTR', 'RP'=>'RP', 'SRV'=>'SRV', 'TLSA'=>'TLSA', 'TXT'=>'TXT')); + 'value' => array('A'=>'A', 'AAAA' => 'AAAA', 'ALIAS'=>'ALIAS', 'CAA'=>'CAA', 'CNAME'=>'CNAME', 'DNAME'=>'DNAME', 'DS'=>'DS', 'HINFO'=>'HINFO', 'LOC'=>'LOC', 'MX'=>'MX', 'NAPTR'=>'NAPTR', 'NS'=>'NS', 'PTR'=>'PTR', 'RP'=>'RP', 'SRV'=>'SRV', 'SSHFP'=>'SSHFP', 'TLSA'=>'TLSA', 'TXT'=>'TXT')); ?> diff --git a/interface/web/dns/templates/dns_a_edit.htm b/interface/web/dns/templates/dns_a_edit.htm index 92dfbcd3ae1328546c9dc0ddf4759eaf60906002..907d84b0bc7a96ea338a7de020f5a1c29a001b74 100644 --- a/interface/web/dns/templates/dns_a_edit.htm +++ b/interface/web/dns/templates/dns_a_edit.htm @@ -1,11 +1,4 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - - <div class="form-group"> + <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div><p class="formHint">{tmpl_var name='name_hint_txt'}</p> </div> @@ -45,4 +38,4 @@ searchFieldWatermark: '', resultBoxPosition: '' }); -</script> \ No newline at end of file +</script> diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm index 67bf8ac910ff7e2485cad9c35590e6e6684e26b3..da8a8aaf0629241e8abdaebae3533ad4a151504d 100644 --- a/interface/web/dns/templates/dns_a_list.htm +++ b/interface/web/dns/templates/dns_a_list.htm @@ -22,21 +22,24 @@ <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_alias_edit.php?zone={tmpl_var name='parent_id'}">ALIAS</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_caa_edit.php?zone={tmpl_var name='parent_id'}">CAA</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_cname_edit.php?zone={tmpl_var name='parent_id'}">CNAME</button> + <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_dname_edit.php?zone={tmpl_var name='parent_id'}">DNAME</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_dkim_edit.php?zone={tmpl_var name='parent_id'}">DKIM</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_ds_edit.php?zone={tmpl_var name='parent_id'}">DS</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_dmarc_edit.php?zone={tmpl_var name='parent_id'}">DMARC</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_hinfo_edit.php?zone={tmpl_var name='parent_id'}">HINFO</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_loc_edit.php?zone={tmpl_var name='parent_id'}">LOC</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_mx_edit.php?zone={tmpl_var name='parent_id'}">MX</button> + <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_naptr_edit.php?zone={tmpl_var name='parent_id'}">NAPTR</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_ns_edit.php?zone={tmpl_var name='parent_id'}">NS</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_ptr_edit.php?zone={tmpl_var name='parent_id'}">PTR</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_rp_edit.php?zone={tmpl_var name='parent_id'}">RP</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_spf_edit.php?zone={tmpl_var name='parent_id'}">SPF</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_srv_edit.php?zone={tmpl_var name='parent_id'}">SRV</button> + <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_sshfp_edit.php?zone={tmpl_var name='parent_id'}">SSHFP</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_tlsa_edit.php?zone={tmpl_var name='parent_id'}">TLSA</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_txt_edit.php?zone={tmpl_var name='parent_id'}">TXT</button> </div> - + </div> @@ -75,7 +78,7 @@ <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="aux"}</a></td> <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ttl"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_rr_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_rr_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> @@ -92,4 +95,3 @@ </tfoot> </table> </div> - diff --git a/interface/web/dns/templates/dns_aaaa_edit.htm b/interface/web/dns/templates/dns_aaaa_edit.htm index fbbc757ceca1d0d3b41ff421382fa9ab72a883b1..13ee0ccaab0194a0e37b2c818b23e54dc5f31971 100644 --- a/interface/web/dns/templates/dns_aaaa_edit.htm +++ b/interface/web/dns/templates/dns_aaaa_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div><p class="formHint">{tmpl_var name='name_hint_txt'}</p> @@ -45,4 +38,4 @@ searchFieldWatermark: '', resultBoxPosition: '' }); -</script> \ No newline at end of file +</script> diff --git a/interface/web/dns/templates/dns_alias_edit.htm b/interface/web/dns/templates/dns_alias_edit.htm index 5ab2a3ccaa23ddb7954266715b6645f2b40bd8fa..ad6c74d863c38abb4a8d185e53c18110b92c2f30 100644 --- a/interface/web/dns/templates/dns_alias_edit.htm +++ b/interface/web/dns/templates/dns_alias_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_alias_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_caa_edit.htm b/interface/web/dns/templates/dns_caa_edit.htm index 3de64818b4936ae902004b53de139742c3187e81..8d4372d9a9783c33895cf05a18af28ed1965802d 100644 --- a/interface/web/dns/templates/dns_caa_edit.htm +++ b/interface/web/dns/templates/dns_caa_edit.htm @@ -1,6 +1,3 @@ -<div class='page-header'><h1><tmpl_var name="list_head_txt"></h1></div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="form-group"> <label for="ca_list" class="col-sm-2 control-label">{tmpl_var name='ca_list_txt'}</label> <div class="col-sm-4"><select name="ca_list" id="ca_list" class="form-control">{tmpl_var name='ca_list'}</select></div> diff --git a/interface/web/dns/templates/dns_cname_edit.htm b/interface/web/dns/templates/dns_cname_edit.htm index 778279cbd80687f507086c6870107b8388a3f603..3b37e5133d6614812bc6c17f3a77f49db487de42 100644 --- a/interface/web/dns/templates/dns_cname_edit.htm +++ b/interface/web/dns/templates/dns_cname_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_cname_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_dkim_edit.htm b/interface/web/dns/templates/dns_dkim_edit.htm index 310dda1c9e9cc056c2a95b6cf80b34934a730ede..be3bea3dd53f0e9f357da901d7469116f0ea6a68 100644 --- a/interface/web/dns/templates/dns_dkim_edit.htm +++ b/interface/web/dns/templates/dns_dkim_edit.htm @@ -1,7 +1,3 @@ -<div class='page-header'><h1><tmpl_var name="list_head_txt"></h1></div> - -<p><tmpl_var name="list_desc_txt"></p> - <div class="form-group"> <label for="data" class="col-sm-3 control-label">{tmpl_var name='public_key_txt'}</label> <tmpl_if name="edit_disabled"> diff --git a/interface/web/dns/templates/dns_dmarc_edit.htm b/interface/web/dns/templates/dns_dmarc_edit.htm index 630c18559b9ffe25449cdd504cd1f527778209cf..4e966d36ed450ed7e0435ffc53ab346dae6d42d5 100644 --- a/interface/web/dns/templates/dns_dmarc_edit.htm +++ b/interface/web/dns/templates/dns_dmarc_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="domain" class="col-sm-2 control-label">{tmpl_var name='domain_txt'}</label> <div class="col-sm-3"> @@ -136,7 +129,7 @@ <select name="dmarc_sp" id="dmarc_sp" class="form-control">{tmpl_var name='dmarc_sp'}</select> </div> </div> - + <div class="form-group"> <label for="ttl" class="col-sm-2 control-label">{tmpl_var name='ttl_txt'}</label> <div class="col-sm-3"> @@ -147,7 +140,7 @@ <div class="form-group"> <label class="col-sm-2 control-label">{tmpl_var name='active_txt'}</label> <div class="col-sm-3"> - <input type="checkbox" value="1" id="active" name="active" {tmpl_var name='active'} /> + <input type="checkbox" value="1" id="active" name="active" {tmpl_var name='active'} /> </div> </div> @@ -156,9 +149,8 @@ <input type="hidden" name="type" value="{tmpl_var name='type'}"> <input type="hidden" name="name" value="{tmpl_var name='name'}"> </div> - + <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_dmarc_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> </div></div> - diff --git a/interface/web/dns/templates/dns_dname_edit.htm b/interface/web/dns/templates/dns_dname_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..32a1a396ddf627e6a8cc33ff17618a97e76a3416 --- /dev/null +++ b/interface/web/dns/templates/dns_dname_edit.htm @@ -0,0 +1,25 @@ +<div class="form-group"> + <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> + <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> +<div class="form-group"> + <label for="data" class="col-sm-3 control-label">{tmpl_var name='data_txt'}</label> + <div class="col-sm-9"><input type="text" name="data" id="data" value="{tmpl_var name='data'}" class="form-control" /></div></div> +<div class="form-group"> + <label for="ttl" class="col-sm-3 control-label">{tmpl_var name='ttl_txt'}</label> + <div class="col-sm-9"><input type="text" name="ttl" id="ttl" value="{tmpl_var name='ttl'}" class="form-control" /></div></div> +<div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='active'} + </div> +</div> + + +<input type="hidden" name="id" value="{tmpl_var name='id'}"> +<input type="hidden" name="zone" value="{tmpl_var name='zone'}"> +<input type="hidden" name="type" value="{tmpl_var name='type'}"> + +<div class="clear"><div class="right"> +<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_dname_edit.php">{tmpl_var name='btn_save_txt'}</button> +<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> +</div></div> diff --git a/interface/web/dns/templates/dns_ds_edit.htm b/interface/web/dns/templates/dns_ds_edit.htm index 56113f0ec0e95df7075d815bfc96a3c63c6c60fc..c7012d9fd9a7d2db0217d121e0203a2e382d818c 100644 --- a/interface/web/dns/templates/dns_ds_edit.htm +++ b/interface/web/dns/templates/dns_ds_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_ds_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_hinfo_edit.htm b/interface/web/dns/templates/dns_hinfo_edit.htm index 0be975f529bee5aa8c25147866b789bd27007fec..39a02dabbc2ed56ee17a31ed722d0dade7ec84e9 100644 --- a/interface/web/dns/templates/dns_hinfo_edit.htm +++ b/interface/web/dns/templates/dns_hinfo_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_hinfo_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_import.htm b/interface/web/dns/templates/dns_import.htm index 87d54316f3556df143990c2ad3edafce10ca6102..dafb9016a0c3a13e2f3bd2bf0ecc241f9a440912 100644 --- a/interface/web/dns/templates/dns_import.htm +++ b/interface/web/dns/templates/dns_import.htm @@ -62,4 +62,4 @@ jQuery('.positive').trigger('click'); } } -</script> \ No newline at end of file +</script> diff --git a/interface/web/dns/templates/dns_loc_edit.htm b/interface/web/dns/templates/dns_loc_edit.htm index 12cfb6357fd42285214e4423c5e9196b6c5dc7df..d8e261991ce840e5679f562b76a3661c83b66c0d 100644 --- a/interface/web/dns/templates/dns_loc_edit.htm +++ b/interface/web/dns/templates/dns_loc_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_loc_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_mx_edit.htm b/interface/web/dns/templates/dns_mx_edit.htm index 290c218faf96b3cbb772c2b257c4c1c2aef67f69..3a84cbacb432b4106164df54823595e707d458f8 100644 --- a/interface/web/dns/templates/dns_mx_edit.htm +++ b/interface/web/dns/templates/dns_mx_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -32,4 +25,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_mx_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_naptr_edit.htm b/interface/web/dns/templates/dns_naptr_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..15a944d6298106e5de1d134c2198d147d6b12a60 --- /dev/null +++ b/interface/web/dns/templates/dns_naptr_edit.htm @@ -0,0 +1,40 @@ + <div class="form-group"> + <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> + <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="order" class="col-sm-3 control-label">{tmpl_var name='order_txt'}</label> + <div class="col-sm-9"><input type="text" name="order" id="order" value="{tmpl_var name='aux'}" class="form-control" placeholder="100" /></div></div> + <div class="form-group"> + <label for="pref" class="col-sm-3 control-label">{tmpl_var name='pref_txt'}</label> + <div class="col-sm-9"><input type="text" name="pref" id="pref" value="{tmpl_var name='pref'}" class="form-control" placeholder="100" /></div></div> + <div class="form-group"> + <label for="flags" class="col-sm-3 control-label">{tmpl_var name='flags_txt'}</label> + <div class="col-sm-9"><input type="text" name="flags" id="flags" value="{tmpl_var name='flags'}" class="form-control" placeholder="s" /></div></div> + <div class="form-group"> + <label for="service" class="col-sm-3 control-label">{tmpl_var name='service_txt'}</label> + <div class="col-sm-9"><input type="text" name="service" id="service" value="{tmpl_var name='service'}" class="form-control" placeholder="http+I2R" /></div></div> + <div class="form-group"> + <label for="regexp" class="col-sm-3 control-label">{tmpl_var name='regexp_txt'}</label> + <div class="col-sm-9"><input type="text" name="regexp" id="regexp" value="{tmpl_var name='regexp'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="replacement" class="col-sm-3 control-label">{tmpl_var name='replacement_txt'}</label> + <div class="col-sm-9"><input type="text" name="replacement" id="replacement" value="{tmpl_var name='replacement'}" class="form-control" placeholder="_http._tcp.foo.com." /></div></div> + <div class="form-group"> + <label for="ttl" class="col-sm-3 control-label">{tmpl_var name='ttl_txt'}</label> + <div class="col-sm-9"><input type="text" name="ttl" id="ttl" value="{tmpl_var name='ttl'}" class="form-control" /></div></div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='active'} + </div> + </div> + + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> + <input type="hidden" name="type" value="{tmpl_var name='type'}"> + + <div class="clear"><div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_naptr_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> + </div></div> diff --git a/interface/web/dns/templates/dns_ns_edit.htm b/interface/web/dns/templates/dns_ns_edit.htm index 3cafa17dafaa8bf64046db2bf86f10874ab02f8e..6644af152ccb47a62ebec03993a6dbfd9064b7cf 100644 --- a/interface/web/dns/templates/dns_ns_edit.htm +++ b/interface/web/dns/templates/dns_ns_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_ns_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_ptr_edit.htm b/interface/web/dns/templates/dns_ptr_edit.htm index de59069259df650f1359a102d3b52af31b1ff27a..725bbb17fabb1e0b5797743a2ed8edd3fc1ad781 100644 --- a/interface/web/dns/templates/dns_ptr_edit.htm +++ b/interface/web/dns/templates/dns_ptr_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_ptr_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_records_edit.htm b/interface/web/dns/templates/dns_records_edit.htm index a2a42c3d45c70f3906690fe19a6c12fc75cb12d8..979cebe5fd58636304f789c508cafd6cacc27923 100644 --- a/interface/web/dns/templates/dns_records_edit.htm +++ b/interface/web/dns/templates/dns_records_edit.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="panel panel_dns_soa"> {tmpl_var name='dns_records'} @@ -11,4 +6,4 @@ <input type="hidden" name="id" value="{tmpl_var name='id'}"> </div> -</div> \ No newline at end of file +</div> diff --git a/interface/web/dns/templates/dns_rp_edit.htm b/interface/web/dns/templates/dns_rp_edit.htm index 3dd04adf1a3344d7d9864c02f57e0bb4bb7465fd..9a4b9f4e55db2069ea15a5d5b34d9c1a7d4d7762 100644 --- a/interface/web/dns/templates/dns_rp_edit.htm +++ b/interface/web/dns/templates/dns_rp_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_rp_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_slave_admin_list.htm b/interface/web/dns/templates/dns_slave_admin_list.htm index f4395849be181b2c9c3f7faecb0025f5d5874804..3afaa91175c0e2bea00792d99ddd70ef1559ccc8 100644 --- a/interface/web/dns/templates/dns_slave_admin_list.htm +++ b/interface/web/dns/templates/dns_slave_admin_list.htm @@ -59,7 +59,7 @@ <td><a href="#" data-load-content="dns/dns_slave_edit.php?id={tmpl_var name='id'}">{tmpl_var name="origin"}</a></td> <td><a href="#" data-load-content="dns/dns_slave_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ns"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_slave_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_slave_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/dns/templates/dns_slave_edit.htm b/interface/web/dns/templates/dns_slave_edit.htm index 832fec1abc0445f73aceb06073a05184406c7601..1f4f7234d613d00c21291ae3292ca6108d15d9cd 100644 --- a/interface/web/dns/templates/dns_slave_edit.htm +++ b/interface/web/dns/templates/dns_slave_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend><tmpl_var name="secondary_zone_txt"></legend> <tmpl_if name="is_admin"> <div class="form-group"> <tmpl_if name="edit_disabled"> diff --git a/interface/web/dns/templates/dns_slave_list.htm b/interface/web/dns/templates/dns_slave_list.htm index 27916f4b25976827f1c342742f81f7c63b22e1d7..e59470a1910b0e101b091d3db3247513a5907716 100644 --- a/interface/web/dns/templates/dns_slave_list.htm +++ b/interface/web/dns/templates/dns_slave_list.htm @@ -21,12 +21,12 @@ </div> </tmpl_if> <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p> - + <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_slave_edit.php">{tmpl_var name="add_new_record_txt"}</button> - - - + + + <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p> <div class="table-wrapper marginTop15"> <table class="table"> @@ -56,22 +56,20 @@ <td><a href="#" data-load-content="dns/dns_slave_edit.php?id={tmpl_var name='id'}">{tmpl_var name="origin"}</a></td> <td><a href="#" data-load-content="dns/dns_slave_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ns"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_slave_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_slave_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> <tmpl_unless name="records"> <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="5">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + <td colspan="4">{tmpl_var name='globalsearch_noresults_text_txt'}</td> </tr> </tmpl_unless> </tbody> <tfoot> <tr> - <td colspan="6"><tmpl_var name="paging"></td> + <td colspan="4"><tmpl_var name="paging"></td> </tr> </tfoot> </table> </div> - - \ No newline at end of file diff --git a/interface/web/dns/templates/dns_soa_admin_list.htm b/interface/web/dns/templates/dns_soa_admin_list.htm index fbdc0398ed2ee42c60be9905e62c278b314b9794..646b12957807e94fdc668b09266848de4e7d5151 100644 --- a/interface/web/dns/templates/dns_soa_admin_list.htm +++ b/interface/web/dns/templates/dns_soa_admin_list.htm @@ -24,7 +24,7 @@ <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_wizard.php">{tmpl_var name="add_new_record_wizard_txt"}</button> <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_soa_edit.php">{tmpl_var name="add_new_record_txt"}</button> - <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_import.php">Import Zone File</button> + <button class="btn btn-default formbutton-success" type="button" data-load-content="dns/dns_import.php">{tmpl_var name="import_zone_file_txt"}</button> @@ -64,7 +64,7 @@ <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ns'}">{tmpl_var name="ns"}</a></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='mbox'}">{tmpl_var name="mbox"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_soa_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm index 7a069cb3bf27d5d2e354d4aca240e44b13255c74..c34e8a341647dcb0972b7f784be7d3b26c8842a0 100644 --- a/interface/web/dns/templates/dns_soa_edit.htm +++ b/interface/web/dns/templates/dns_soa_edit.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -10,7 +5,6 @@ </div> </tmpl_if> - <legend>DNS Zone</legend> <tmpl_if name="is_admin"> <div class="form-group"> <tmpl_if name="edit_disabled"> @@ -125,29 +119,33 @@ <label for="update_acl" class="col-sm-3 control-label">{tmpl_var name='update_acl_txt'}</label> <div class="col-sm-9"><input type="text" name="update_acl" id="update_acl" value="{tmpl_var name='update_acl'}" class="form-control" /></div></div> </tmpl_if> + <div class="form-group"> + <label for="serial" class="col-sm-3 control-label">{tmpl_var name='serial_txt'}</label> + <div class="col-sm-9"><textarea readonly="true" rows="1" id="serial" name="serial" class="form-control">{tmpl_var name='serial'}</textarea></div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> <div class="col-sm-9"> {tmpl_var name='active'} </div> </div> - + <tmpl_if name="show_dnssec"> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='dnssec_wanted_txt'}</label> <div class="col-sm-9"> {tmpl_var name='dnssec_wanted'}<br /><small>({tmpl_var name='dnssec_wanted_info'})</small> - </div> + </div> </div> <div class="form-group"> <label for="update_acl" class="col-sm-3 control-label">{tmpl_var name='dnssec_info_txt'}</label> <div class="col-sm-9"><textarea readonly="true" rows="5" id="dnssec_info" name="dnssec_info" class="form-control">{tmpl_var name='dnssec_info'}</textarea></div> </div> -</tmpl_if> +</tmpl_if> <input type="hidden" name="id" value="{tmpl_var name='id'}"> <input name="serial" type="hidden" value="{tmpl_var name='serial'}"> - + <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_soa_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_list.php">{tmpl_var name='btn_cancel_txt'}</button> diff --git a/interface/web/dns/templates/dns_soa_list.htm b/interface/web/dns/templates/dns_soa_list.htm index 22cd19484e1ee29d95ea60e936fee92f4a1319dc..df579e852aa3424bcbdb084340a0163a23a2f76d 100644 --- a/interface/web/dns/templates/dns_soa_list.htm +++ b/interface/web/dns/templates/dns_soa_list.htm @@ -61,7 +61,7 @@ <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ns'}">{tmpl_var name="ns"}</a></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='mbox'}">{tmpl_var name="mbox"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_soa_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/dns/templates/dns_spf_edit.htm b/interface/web/dns/templates/dns_spf_edit.htm index 3c34b37a41b03d0f74b5f335d2a3986c25f2ed43..2817d7645b8dc8ca7233b18501ff6a1612f94625 100644 --- a/interface/web/dns/templates/dns_spf_edit.htm +++ b/interface/web/dns/templates/dns_spf_edit.htm @@ -1,10 +1,7 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - + <div class="form-group"> + <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> + <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div> + </div> <div class="form-group"> <label for="data" class="col-sm-3 control-label">{tmpl_var name='data_txt'}</label> <div class="col-sm-9"><input type="text" name="data" id="data" value="{tmpl_var name='data'}" readonly class="form-control" /></div></div> @@ -52,11 +49,11 @@ <input type="hidden" name="id" value="{tmpl_var name='id'}"> <input type="hidden" name="zone" value="{tmpl_var name='zone'}" id="zone"> <input type="hidden" name="type" value="{tmpl_var name='type'}"> - <input type="hidden" name="name" value="{tmpl_var name='name'}"> </div> <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_spf_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_edit_as_txt_record_txt'}" data-load-content="dns/dns_txt_edit.php?id={tmpl_var name='id'}&zone={tmpl_var name='zone'}&edit_raw=1">{tmpl_var name='btn_edit_as_txt_record_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> </div></div> diff --git a/interface/web/dns/templates/dns_srv_edit.htm b/interface/web/dns/templates/dns_srv_edit.htm index fd9f00d7b48058871fc68373d7ff8d2be8ac7320..f142f482d433c14f310aebc2a8d3e9b614585962 100644 --- a/interface/web/dns/templates/dns_srv_edit.htm +++ b/interface/web/dns/templates/dns_srv_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -38,4 +31,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_srv_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_sshfp_edit.htm b/interface/web/dns/templates/dns_sshfp_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..18a40a8010c5ecb119fbb102a0ebb6f3ab1deef1 --- /dev/null +++ b/interface/web/dns/templates/dns_sshfp_edit.htm @@ -0,0 +1,25 @@ +<div class="form-group"> + <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> + <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> +<div class="form-group"> + <label for="data" class="col-sm-3 control-label">{tmpl_var name='data_txt'}</label> + <div class="col-sm-9"><input type="text" name="data" id="data" value="{tmpl_var name='data'}" class="form-control" /></div></div> +<div class="form-group"> + <label for="ttl" class="col-sm-3 control-label">{tmpl_var name='ttl_txt'}</label> + <div class="col-sm-9"><input type="text" name="ttl" id="ttl" value="{tmpl_var name='ttl'}" class="form-control" /></div></div> +<div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='active'} + </div> +</div> + + +<input type="hidden" name="id" value="{tmpl_var name='id'}"> +<input type="hidden" name="zone" value="{tmpl_var name='zone'}"> +<input type="hidden" name="type" value="{tmpl_var name='type'}"> + +<div class="clear"><div class="right"> +<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_sshfp_edit.php">{tmpl_var name='btn_save_txt'}</button> +<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> +</div></div> diff --git a/interface/web/dns/templates/dns_template_edit.htm b/interface/web/dns/templates/dns_template_edit.htm index 9de8c93447f466f0394ba52fb82a972886b7ce06..db0ee9d92580c35e3c974c0e39d0040c93c6363e 100644 --- a/interface/web/dns/templates/dns_template_edit.htm +++ b/interface/web/dns/templates/dns_template_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> diff --git a/interface/web/dns/templates/dns_template_list.htm b/interface/web/dns/templates/dns_template_list.htm index f7816cf4d8aed22884545a539eb007e8e14e7560..7622666940936551cabc7da72b3c4d4d5829547c 100644 --- a/interface/web/dns/templates/dns_template_list.htm +++ b/interface/web/dns/templates/dns_template_list.htm @@ -34,7 +34,7 @@ <td><a href="#" data-load-content="dns/dns_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="visible"}</a></td> <td><a href="#" data-load-content="dns/dns_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="name"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_template_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/dns/templates/dns_tlsa_edit.htm b/interface/web/dns/templates/dns_tlsa_edit.htm index c2cde8be6197c060588bf337749b315e6ed151c9..297077eecb125d532648fa4c3000332c401860f5 100644 --- a/interface/web/dns/templates/dns_tlsa_edit.htm +++ b/interface/web/dns/templates/dns_tlsa_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_tlsa_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_txt_edit.htm b/interface/web/dns/templates/dns_txt_edit.htm index f03f6d36c86209aec2aff3e2c368ba83e13b7f41..de69bc553e29f22eb11e39a220d5a4543ab2465c 100644 --- a/interface/web/dns/templates/dns_txt_edit.htm +++ b/interface/web/dns/templates/dns_txt_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_txt_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dns/templates/dns_wizard.htm b/interface/web/dns/templates/dns_wizard.htm index 907dedca888b4e5f987854fac46eca215025125f..2f4f24b4e08266604971ea4d521b7206290b6e48 100644 --- a/interface/web/dns/templates/dns_wizard.htm +++ b/interface/web/dns/templates/dns_wizard.htm @@ -1,14 +1,12 @@ <div class='page-header'> <h1><tmpl_var name="list_head_txt"></h1> </div> -<p><tmpl_var name="list_desc_txt"></p> <tmpl_if name="error"> <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div> </tmpl_if> - <legend><tmpl_var name="dns_zone_txt"></legend> <div class="form-group"> <label for="template_id" class="col-sm-3 control-label">{tmpl_var name='template_id_txt'}</label> <div class="col-sm-9"><select name="template_id" id="template_id" class="form-control" onChange="ISPConfig.submitForm('pageForm','dns/dns_wizard.php')"> diff --git a/interface/web/favicon.ico b/interface/web/favicon.ico deleted file mode 100644 index dc71b5320c890943e4aba52d80689deb58c6b39e..0000000000000000000000000000000000000000 Binary files a/interface/web/favicon.ico and /dev/null differ diff --git a/interface/web/help/faq_delete.php b/interface/web/help/faq_delete.php index c1faed60d99afdad537d4447cd009d2f7e49ff50..161b1ce45b471d4a98dcbcce366c258fbbb7e157 100644 --- a/interface/web/help/faq_delete.php +++ b/interface/web/help/faq_delete.php @@ -11,6 +11,9 @@ require_once '../../lib/app.inc.php'; // Check module permissions $app->auth->check_module_permissions('admin'); +// Do not allow FAQ editor in DEMO mode +if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); + // Load the form $app->uses('tform_actions'); $app->tform_actions->onDelete(); diff --git a/interface/web/help/faq_edit.php b/interface/web/help/faq_edit.php index 397f5cccf4233b4a5cefb4485a1f27617d68a1cf..e0f0380f8cdfa59eaf52d246da0364751e1706a6 100644 --- a/interface/web/help/faq_edit.php +++ b/interface/web/help/faq_edit.php @@ -10,6 +10,9 @@ require_once '../../lib/app.inc.php'; // Check the module permissions and redirect if not allowed. $app->auth->check_module_permissions('admin'); +// Do not allow FAQ editor in DEMO mode +if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); + // Load the templating and form classes $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); diff --git a/interface/web/help/faq_sections_delete.php b/interface/web/help/faq_sections_delete.php index 865071ff252cc507ef6748322f38cfa341e648d9..76ff1c75a10dd0eb4b102b67be8caeb1068ba77e 100644 --- a/interface/web/help/faq_sections_delete.php +++ b/interface/web/help/faq_sections_delete.php @@ -11,6 +11,9 @@ require_once '../../lib/app.inc.php'; // Check module permissions $app->auth->check_module_permissions('admin'); +// Do not allow FAQ editor in DEMO mode +if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); + // Load the form $app->uses('tform_actions'); $app->tform_actions->onDelete(); diff --git a/interface/web/help/faq_sections_edit.php b/interface/web/help/faq_sections_edit.php index f146db8605dd34e9c9980871f4a88923c431c9b5..56b3c77487291325ca41e8e2dc7f57b5431f6220 100644 --- a/interface/web/help/faq_sections_edit.php +++ b/interface/web/help/faq_sections_edit.php @@ -10,6 +10,9 @@ require_once '../../lib/app.inc.php'; // Check the module permissions and redirect if not allowed. $app->auth->check_module_permissions('admin'); +// Do not allow FAQ editor in DEMO mode +if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); + // Load the templating and form classes $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); diff --git a/interface/web/help/form/support_message.tform.php b/interface/web/help/form/support_message.tform.php index caf1a010c60b355acf77a6e79eaca63556bd3bc9..6313b4da674376b021a07af493b49cf980b3a3bc 100644 --- a/interface/web/help/form/support_message.tform.php +++ b/interface/web/help/form/support_message.tform.php @@ -136,7 +136,7 @@ $form["tabs"]['message'] = array ( 'maxlength' => '30' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/help/lib/lang/br.lng b/interface/web/help/lib/lang/br.lng index a745e60960fbdc6aa849dec27f86fea2e592cc56..217d3afa148487947cd79e9546a8e8bba8a97425 100644 --- a/interface/web/help/lib/lang/br.lng +++ b/interface/web/help/lib/lang/br.lng @@ -1,14 +1,14 @@ <?php -$wb['Support Message'] = 'Mensagem do suporte'; +$wb['Support Message'] = 'Mensagem de suporte'; $wb['Message'] = 'Mensagem'; $wb['Send message'] = 'Enviar mensagem'; -$wb['View messages'] = 'Visualizar mensagem'; +$wb['View messages'] = 'Visualizar mensagens'; $wb['Support'] = 'Suporte'; $wb['About ISPConfig'] = 'Sobre o ISPConfig'; $wb['Version'] = 'Versão'; -$wb['Frequently Asked Questions'] = 'Perguntas frequentes (FAQ)'; -$wb['FAQ Sections'] = 'Sessões FAQ'; -$wb['Manage Sections'] = 'Gerenciar sessões'; -$wb['Add a Question & Answer Pair'] = 'Adicionar par pergunta/resposta'; -$wb['Manage Questions'] = 'Gerenciar perguntas'; +$wb['Frequently Asked Questions'] = 'Questões Frequentes - FAQ'; +$wb['FAQ Sections'] = 'Seções FAQ'; +$wb['Manage Sections'] = 'Gerenciar seções'; +$wb['Add a Question & Answer Pair'] = 'Adicionar novo par questão/resposta'; +$wb['Manage Questions'] = 'Gerenciar questões'; ?> diff --git a/interface/web/help/lib/lang/br_faq_form.lng b/interface/web/help/lib/lang/br_faq_form.lng index 331268a7229d41bc4b7b7db229c1b4da4ead8bbf..b24ec1c58fbd389599e3e87e48d859c106bb542c 100644 --- a/interface/web/help/lib/lang/br_faq_form.lng +++ b/interface/web/help/lib/lang/br_faq_form.lng @@ -1,6 +1,6 @@ <?php -$wb['faq_faq_txt'] = 'Perguntas Mais Frequentes (FAQ)'; -$wb['faq_question_txt'] = 'Pergunta'; +$wb['faq_faq_txt'] = 'Questões Frequentes'; +$wb['faq_question_txt'] = 'Questão'; $wb['faq_answer_txt'] = 'Resposta'; -$wb['faq_section_txt'] = 'Sessão'; +$wb['faq_section_txt'] = 'Seção'; ?> diff --git a/interface/web/help/lib/lang/br_faq_manage_questions_list.lng b/interface/web/help/lib/lang/br_faq_manage_questions_list.lng index 8bda9d7f42644f3c0118a244b295aeb7c3fa60b3..ee9f769d91b241416324754c305ce761f162b959 100644 --- a/interface/web/help/lib/lang/br_faq_manage_questions_list.lng +++ b/interface/web/help/lib/lang/br_faq_manage_questions_list.lng @@ -1,9 +1,9 @@ <?php -$wb['faq_question_txt'] = 'Pergunta'; -$wb['faq_section_name_txt'] = 'Sessão'; +$wb['faq_question_txt'] = 'Questão'; +$wb['faq_section_name_txt'] = 'Seção'; $wb['faq_delete_txt'] = 'Remover'; $wb['faq_edit_txt'] = 'Editar'; -$wb['faq_sections_txt'] = 'Sessão'; -$wb['faq_faq_questions_txt'] = 'Perguntas frequentes (FAQ)'; -$wb['faq_new_question_txt'] = 'Adicionar par pergunta/resposta'; +$wb['faq_sections_txt'] = 'Seção'; +$wb['faq_faq_questions_txt'] = 'Questões Frequentes'; +$wb['faq_new_question_txt'] = 'Adicionar novo par questão/resposta'; ?> diff --git a/interface/web/help/lib/lang/br_faq_sections_form.lng b/interface/web/help/lib/lang/br_faq_sections_form.lng index f3f9f9f583355a863452b1dc44875bd356d67ef8..2fb709cbd2378c11cbb5dd7eefe4a1d3351bb17d 100644 --- a/interface/web/help/lib/lang/br_faq_sections_form.lng +++ b/interface/web/help/lib/lang/br_faq_sections_form.lng @@ -1,3 +1,3 @@ <?php -$wb['faq_section_name_txt'] = 'Nome da Sessão'; +$wb['faq_section_name_txt'] = 'Nome da seção'; ?> diff --git a/interface/web/help/lib/lang/br_help_faq_sections_list.lng b/interface/web/help/lib/lang/br_help_faq_sections_list.lng index f1f549e6154df18679ed80089bd3e31fc7f6259d..aec81d7b59292fa6aae7452ada45e625dc199cfc 100644 --- a/interface/web/help/lib/lang/br_help_faq_sections_list.lng +++ b/interface/web/help/lib/lang/br_help_faq_sections_list.lng @@ -1,8 +1,8 @@ <?php -$wb['faq_section_name_txt'] = 'Nome da Sessão'; +$wb['faq_section_name_txt'] = 'Nome da seção'; $wb['faq_delete_txt'] = 'Remover'; $wb['faq_edit_txt'] = 'Editar'; -$wb['faq_sections_txt'] = 'Sessões'; -$wb['faq_faq_sections_txt'] = 'Sessões FAQ'; -$wb['faq_new_section_txt'] = 'Adicionar nova sessão'; +$wb['faq_sections_txt'] = 'Seções'; +$wb['faq_faq_sections_txt'] = 'Seções FAQ'; +$wb['faq_new_section_txt'] = 'Adicionar nova seção'; ?> diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng index 83097915bf345a5cd62ab30fd8debbcc24151e16..dad8ce7fd574d0d48873df37d5899b298d9fbc52 100644 --- a/interface/web/help/lib/lang/br_support_message.lng +++ b/interface/web/help/lib/lang/br_support_message.lng @@ -1,16 +1,16 @@ <?php -$wb['recipient_id_txt'] = 'Para'; -$wb['sender_id_txt'] = 'De'; +$wb['recipient_id_txt'] = 'ID do destinatário'; +$wb['sender_id_txt'] = 'ID do remetente'; $wb['subject_txt'] = 'Assunto'; $wb['message_txt'] = 'Mensagem'; -$wb['tstamp_txt'] = 'Dados'; +$wb['tstamp_txt'] = 'Data/Hora'; $wb['reply_txt'] = 'Responder'; $wb['date_txt'] = 'Data'; -$wb['support_request_subject_txt'] = 'Requisição para Suporte'; -$wb['support_request_txt'] = 'Você tem uma nova requisição para suporte. Por favor, não responda esse e-mail, mas processe a requisição de suporte dentro do ISPConfig.'; -$wb['answer_to_support_request_txt'] = 'Você tem uma nova resposta para requisição de suporte. Por favor, não responda esse e-mail, mas processe a requisição de suporte dentro do ISPConfig.'; -$wb['answer_to_support_request_sent_txt'] = 'Sua resposta para requisição de suporte foi enviada. Por favor, não responda esse e-mail.'; -$wb['support_request_sent_txt'] = 'Sua requisição de suporte foi enviada. Por favor não responda este e-mail.'; -$wb['recipient_or_sender_email_address_not_valid_txt'] = 'A mensagem não foi enviada porque o e-mail do destinatário e/ou remetente não é válido.'; -$wb['subject_is_empty'] = 'Não é permitido o campo \"Assunto\" em branco.'; +$wb['support_request_subject_txt'] = 'Requisição de Suporte'; +$wb['support_request_txt'] = 'Você recebeu uma requisição de suporte. Por favor, não responda este e-mail, mas processe a requisição dentro do ISPConfig.'; +$wb['answer_to_support_request_txt'] = 'Você recebeu uma resposta à sua requisição de suporte. Por favor, não responda este e-mail, mas processe a mensagem dentro do ISPConfig.'; +$wb['answer_to_support_request_sent_txt'] = 'Sua resposta à requisição de suporte foi enviada. Por favor, não responda este e-mail.'; +$wb['support_request_sent_txt'] = 'Sua requisição de suporte foi enviada. Por favor, não responda este e-mail.'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = 'A mensagem não pôde ser enviada porque o remetente e/ou destinatário são e-mails inválidos.'; +$wb['subject_is_empty'] = 'O assunto está em branco.'; ?> diff --git a/interface/web/help/lib/lang/br_support_message_list.lng b/interface/web/help/lib/lang/br_support_message_list.lng index 7d888659d84eb6e6dbf4425299e26ecc4b672e01..e4add42b799839edd88f5761d09a8ecbeb1cf9a5 100644 --- a/interface/web/help/lib/lang/br_support_message_list.lng +++ b/interface/web/help/lib/lang/br_support_message_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Mensagens do Suporte'; -$wb['sender_id_txt'] = 'De'; +$wb['list_head_txt'] = 'Mensagens de Suporte'; +$wb['sender_id_txt'] = 'Remetente'; $wb['subject_txt'] = 'Assunto'; -$wb['add_new_record_txt'] = 'Adicionar uma nova mensagem de suporte'; +$wb['add_new_record_txt'] = 'Adicionar nova mensagem de suporte'; $wb['date_txt'] = 'Data'; ?> diff --git a/interface/web/help/lib/lang/es.lng b/interface/web/help/lib/lang/es.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_faq_form.lng b/interface/web/help/lib/lang/es_faq_form.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_faq_manage_questions_list.lng b/interface/web/help/lib/lang/es_faq_manage_questions_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_faq_sections_form.lng b/interface/web/help/lib/lang/es_faq_sections_form.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_help_faq_list.lng b/interface/web/help/lib/lang/es_help_faq_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_help_faq_sections_list.lng b/interface/web/help/lib/lang/es_help_faq_sections_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_support_message.lng b/interface/web/help/lib/lang/es_support_message.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/es_support_message_list.lng b/interface/web/help/lib/lang/es_support_message_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/fi.lng b/interface/web/help/lib/lang/fi.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/fi_support_message.lng b/interface/web/help/lib/lang/fi_support_message.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/fi_support_message_list.lng b/interface/web/help/lib/lang/fi_support_message_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/help/lib/lang/tr.lng b/interface/web/help/lib/lang/tr.lng index 4aeaa0ac0fe81488a1b47f9ca59c1eb1b122b1ec..c6b0877af53222562f0bdec07e332ce7b8d9d84e 100644 --- a/interface/web/help/lib/lang/tr.lng +++ b/interface/web/help/lib/lang/tr.lng @@ -11,4 +11,5 @@ $wb['FAQ Sections'] = 'SSS Bölümleri'; $wb['Manage Sections'] = 'Bölüm Yönetimi'; $wb['Add a Question & Answer Pair'] = 'Soru-Yanıt Ekle'; $wb['Manage Questions'] = 'Soru Yönetimi'; + ?> diff --git a/interface/web/help/lib/lang/tr_support_message.lng b/interface/web/help/lib/lang/tr_support_message.lng index fcd785e627bd52ec59458995e89f09a79e2faafe..ae60d28a196ff19a9eab2ea98b06a90c5d4e8cb3 100644 --- a/interface/web/help/lib/lang/tr_support_message.lng +++ b/interface/web/help/lib/lang/tr_support_message.lng @@ -7,10 +7,10 @@ $wb['tstamp_txt'] = 'Zaman damgası'; $wb['reply_txt'] = 'Yanıt'; $wb['date_txt'] = 'Tarih'; $wb['support_request_subject_txt'] = 'Destek İsteÄŸi'; -$wb['support_request_txt'] = 'Bir destek isteÄŸinde bulundunuz. Lütfen bu e-postay yanıtlamayın. Destek isteÄŸinizi ISPConfig üzerinden izleyin.'; +$wb['support_request_txt'] = 'Bir destek isteÄŸinde bulundunuz. Lütfen bu e-postayı yanıtlamayın. Destek isteÄŸinizi ISPConfig üzerinden izleyin.'; $wb['answer_to_support_request_txt'] = 'Destek isteÄŸiniz yanıtlandı. Lütfen bu e-postayı yanıtlamayın. Destek isteÄŸinizi ISPConfig üzerinden izleyin.'; $wb['answer_to_support_request_sent_txt'] = 'Destek isteÄŸinize yazdığınız yanıt gönderildi. Lütfen bu e-potayı yanıtlamayın.'; $wb['support_request_sent_txt'] = 'Destek isteÄŸiniz gönderildi. Lütfen bu e-postayı yanıtlamayın.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Gönderen ya da alıcı adresi geçersiz olduÄŸundan bu ileti gönderilemedi.'; -$wb['subject_is_empty'] = 'The subject can not be empty.'; +$wb['subject_is_empty'] = 'Konu boÅŸ olamaz.'; ?> diff --git a/interface/web/help/templates/faq_edit.htm b/interface/web/help/templates/faq_edit.htm index 3bf9d8a903a100a998e8b1e9b3ae878b5273a9c3..d0f976051149db9c628ba7e6fae0e815e0355b7f 100644 --- a/interface/web/help/templates/faq_edit.htm +++ b/interface/web/help/templates/faq_edit.htm @@ -1,5 +1,3 @@ - - <legend>{tmpl_var name='faq_faq_txt'}</legend> <div class="form-group"> <label for="hf_section" class="col-sm-3 control-label">{tmpl_var name='faq_section_txt'}</label> <div class="col-sm-9"><select name="hf_section" id="hf_section" class="form-control"> @@ -20,4 +18,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="help/faq_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="help/faq_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/help/templates/faq_manage_questions_list.htm b/interface/web/help/templates/faq_manage_questions_list.htm index a29d0f06d059d0a8d154c14f4630223bb09ca303..9b54e7d4ff712dc1033b75b075c6faa974898bda 100644 --- a/interface/web/help/templates/faq_manage_questions_list.htm +++ b/interface/web/help/templates/faq_manage_questions_list.htm @@ -24,7 +24,7 @@ <td width="60%">{tmpl_var name='hf_question'}</td> <td width="30%">{tmpl_var name='hf_section'}</td> <td class="text-right" width="5%"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('help/faq_delete.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('help/faq_delete.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> <td class="text-right" width="5%"> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="help/faq_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a> diff --git a/interface/web/help/templates/faq_sections_edit.htm b/interface/web/help/templates/faq_sections_edit.htm index 1380447db870743aada6e519c00c4959e9e50a9d..2ff83549766c3a0e39c6b8d71754d3fb5265e1c8 100644 --- a/interface/web/help/templates/faq_sections_edit.htm +++ b/interface/web/help/templates/faq_sections_edit.htm @@ -1,5 +1,3 @@ - - <legend>{tmpl_var name='faq_section_name_txt'}</legend> <div class="form-group"> <label for="hfs_name" class="col-sm-3 control-label">{tmpl_var name='faq_section_name_txt'}</label> <div class="col-sm-9"><input type="text" name="hfs_name" id="hfs_name" value="{tmpl_var name='hfs_name'}" class="form-control" /></div></div> @@ -11,4 +9,3 @@ <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="help/faq_sections_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="help/faq_sections_list.php">{tmpl_var name='btn_cancel_txt'}</button> </div></div> - diff --git a/interface/web/help/templates/help_faq_sections_list.htm b/interface/web/help/templates/help_faq_sections_list.htm index 5a3733aa0b6da6333fee5cdd762ef3b804f1f974..1d0ef16443b09a6a0143e9f918250b903ab70efb 100644 --- a/interface/web/help/templates/help_faq_sections_list.htm +++ b/interface/web/help/templates/help_faq_sections_list.htm @@ -26,7 +26,7 @@ <tr> <td><b>{tmpl_var name='hfs_name'}</b></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('help/faq_sections_delete.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('help/faq_sections_delete.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> <td class="text-right"> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="help/faq_sections_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a> diff --git a/interface/web/help/templates/support_message_edit.htm b/interface/web/help/templates/support_message_edit.htm index fb54578e1670cc3d87a73c5d5cf06ced8bcd82fc..a01cb31076407c61d108625e97377384b197eabd 100644 --- a/interface/web/help/templates/support_message_edit.htm +++ b/interface/web/help/templates/support_message_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>{tmpl_var name='message_txt'}</legend> <div class="form-group"> <label for="recipient_id" class="col-sm-3 control-label">{tmpl_var name='recipient_id_txt'}</label> <div class="col-sm-9"><select name="recipient_id" id="recipient_id" class="form-control"> @@ -26,4 +19,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="help/support_message_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="help/support_message_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/help/templates/support_message_list.htm b/interface/web/help/templates/support_message_list.htm index 3094b96728705129dbc112494e666631ef4559c1..c0b4b75d744964b600b634f51f4bd14b5e6f4c12 100644 --- a/interface/web/help/templates/support_message_list.htm +++ b/interface/web/help/templates/support_message_list.htm @@ -37,7 +37,7 @@ <td><a href="#" data-load-content="help/support_message_edit.php?id={tmpl_var name='id'}">{tmpl_var name="subject"}</a></td> <td><a href="#" data-load-content="help/support_message_edit.php?id={tmpl_var name='id'}">{tmpl_var name="tstamp"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('help/support_message_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('help/support_message_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/help/templates/support_message_view.htm b/interface/web/help/templates/support_message_view.htm index faaaf859cd0843cc8e7070b68232abfac6bb97f3..4771a47148817e768fbd2c576e8576ca06b08665 100644 --- a/interface/web/help/templates/support_message_view.htm +++ b/interface/web/help/templates/support_message_view.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>{tmpl_var name='message_txt'}</legend> <div class="form-group"> <label for="subject" class="col-sm-3 control-label">{tmpl_var name='subject_txt'}</label> <p>{tmpl_var name='subject'}</p> @@ -20,4 +13,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='reply_txt'}" data-load-content="help/support_message_edit.php?reply={tmpl_var name='id'}">{tmpl_var name='reply_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/login/index.php b/interface/web/login/index.php index 47030e438d8b6e8fca07394519736b72e3a10119..b5d5abc27bcad7a3f42b328709ade27e6ec1c7c3 100644 --- a/interface/web/login/index.php +++ b/interface/web/login/index.php @@ -48,9 +48,8 @@ $app->load_language_file('web/login/lib/lang/'.$conf["language"].'.lng'); // Maintenance mode $maintenance_mode = false; $maintenance_mode_error = ''; -$app->uses('ini_parser,getconf'); $server_config_array = $app->getconf->get_global_config('misc'); -if($server_config_array['maintenance_mode'] == 'y'){ +if($app->is_under_maintenance()) { $maintenance_mode = true; $maintenance_mode_error = $app->lng('error_maintenance_mode'); } @@ -208,7 +207,7 @@ if(count($_POST) > 0) { if($user) { if($user['active'] == 1) { // Maintenance mode - allow logins only when maintenance mode is off or if the user is admin - if(!$maintenance_mode || $user['typ'] == 'admin'){ + if(!$app->is_under_maintenance() || $user['typ'] == 'admin'){ // User login right, so attempts can be deleted $sql = "DELETE FROM `attempts_login` WHERE `ip`=?"; diff --git a/interface/web/login/lib/lang/ar.lng b/interface/web/login/lib/lang/ar.lng index 6d2e8b3b31956819bdd3d85b3498b9eafeb5daac..a50df19db41051fb421ffe9dc5673ba273bda9c9 100644 --- a/interface/web/login/lib/lang/ar.lng +++ b/interface/web/login/lib/lang/ar.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'A new password will be generated and send to your email $wb['pw_reset'] = 'The password has been reset and send to your email address.'; $wb['pw_error'] = 'Username or email address does not match.'; $wb['pw_error_noinput'] = 'Please enter email address and username.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'The password to your ISPConfig 3 control panel account has been reset. The new password is: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel password has been reset.'; $wb['user_regex_error'] = 'Username contains unallowed characters or is longer then 64 characters.'; diff --git a/interface/web/login/lib/lang/bg.lng b/interface/web/login/lib/lang/bg.lng index 3d1aaae5e8343bcb3e4d9fd41953af30898d6ef2..8081ec8097f2efe56bed1d001c7365be9b46e29a 100644 --- a/interface/web/login/lib/lang/bg.lng +++ b/interface/web/login/lib/lang/bg.lng @@ -3,6 +3,7 @@ $wb['pass_reset_txt'] = 'Ðова парола ще бъде генериран $wb['pw_reset'] = 'Ðовата ви парола беше изпратена на електронната ви поща.'; $wb['pw_error'] = 'ГреÑно потребителÑкото име или електронна поща.'; $wb['pw_error_noinput'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ потребителÑко име и електронна поща.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Ðовата парола за Ð²Ð°ÑˆÐ¸Ñ ISPConfig 3 контролен панел е:'; $wb['pw_reset_mail_title'] = 'Ðова парола за Ð²Ð°ÑˆÐ¸Ñ ISPConfig 3 контролен панел'; $wb['user_regex_error'] = 'ПотребителÑко име contains unallowed characters or is longer then 64 characters.'; diff --git a/interface/web/login/lib/lang/br.lng b/interface/web/login/lib/lang/br.lng index 379b719f4da95cce95203cb9671ae3134d95e64b..33cddc8fb3c7c0d4a7b6f54e3c51f13cf3929a90 100644 --- a/interface/web/login/lib/lang/br.lng +++ b/interface/web/login/lib/lang/br.lng @@ -7,24 +7,25 @@ $wb['pass_reset_txt'] = 'Uma nova senha foi gerada e será enviada para você no $wb['pw_reset'] = 'Senha redefinida! Ela será enviada para você no e-mail cadastrado no sistema.'; $wb['pw_error'] = 'Nome do usuário ou e-mail não coincidem.'; $wb['pw_error_noinput'] = 'Favor informar nome do usuário e e-mail válidos.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'A senha para esta conta no ISPConfig foi redefinida. A nova senha é: '; $wb['pw_reset_mail_title'] = 'A senha para esta conta no ISPConfig foi redefinida.'; $wb['user_regex_error'] = 'O nome do usuário contém menos de 1 ou mais de 64 caracteres ou contém caracteres inválidos.'; $wb['pw_error_length'] = 'Tamanho da senha não pode ser maior do que 64 caracteres.'; $wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; -$wb['login_button_txt'] = 'Entrar'; +$wb['login_button_txt'] = 'Acessar'; $wb['pw_lost_txt'] = 'Esqueceu a senha?'; $wb['error_maintenance_mode'] = 'Esta instalação do ISPConfig atualmente está sob manutenção. Nós retornaremos em breve. Obrigado por sua paciência.'; -$wb['login_txt'] = 'Acesso'; +$wb['login_txt'] = 'Acessar'; $wb['pw_reset_txt'] = 'Redefinir senha'; $wb['pw_button_txt'] = 'Reenviar senha'; $wb['email_txt'] = 'E-mail'; -$wb['theme_not_compatible'] = 'O tema escolhido não é compatÃvel com a versão atual do ISPConfig. Por favor, procure por uma nova versão deste tema compatÃvel com ISPConfig.<br />O tema padrão foi configurado automaticamente.'; +$wb['theme_not_compatible'] = 'O tema escolhido não é compatÃvel com a versão atual do ISPConfig. Por favor, procure por uma nova versão deste tema, compatÃvel com ISPConfig.<br />O tema padrão foi configurado automaticamente.'; $wb['back_txt'] = 'Voltar'; $wb['email_error'] = 'O e-mail contém caracteres não permitidos ou formato é inválido.'; $wb['stay_logged_in_txt'] = 'Manter-me conectado'; -$wb['lost_password_function_disabled_txt'] = 'Função de redefinir senha indisponÃvel para este usuário.'; +$wb['lost_password_function_disabled_txt'] = 'Função "redefinir senha" indisponÃvel para este usuário.'; $wb['pw_reset_act'] = 'Você receberá um link de ativação. Por favor, acesse o link de ativação para confirmar sua nova senha.'; $wb['pw_reset_act_mail_title'] = 'Confirmar nova senha para o painel de controle ISPConfig'; $wb['pw_reset_act_mail_msg'] = 'Por favor, confirme se você deseja reiniciar sua senha do painel de controle ISPConfig, acessando o link de ativação: '; diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng index 4c02c963c2bf51eff7fca0391abe787126a9d01d..72c2c97e408f995aedce3bff5c0b461d535f80e8 100644 --- a/interface/web/login/lib/lang/br_login_as.lng +++ b/interface/web/login/lib/lang/br_login_as.lng @@ -1,12 +1,12 @@ <?php -$wb['login_1_txt'] = 'Você deseja acessar como usuário'; -$wb['login_2_txt'] = 'Para retornar ao administrador, você pode \"voltar\" selecionando sair.'; +$wb['login_1_txt'] = 'Gostaria de acessar como cliente?'; +$wb['login_2_txt'] = 'Se confirmar, poderá "voltar" clicando em sair.'; $wb['btn_yes_txt'] = 'Sim, acessar como cliente'; -$wb['btn_back_txt'] = 'Não, voltar a lista'; +$wb['btn_back_txt'] = 'Não, voltar para a lista'; $wb['udp_port_help_txt'] = 'Separado por vÃrgula'; $wb['active_txt'] = 'Ativo'; -$wb['firewall_error_unique'] = 'Já existe um registro de firewall igual para este servidor.'; -$wb['tcp_ports_error_regex'] = 'Caractere não permitido para atribuição numa porta TCP. Caracteres permitidos são: números, \':\' e \',\'.'; -$wb['udp_ports_error_regex'] = 'Caractere não permitido para atribuição numa porta UDP. Caracteres permitidos são: números, \':\' e \',\'.'; -$wb['login_as_or_logout_txt'] = 'Você deseja acessar novamente como {UTYPE} ou sair?'; +$wb['firewall_error_unique'] = 'Já existe uma regra de firewall idêntica para este servidor.'; +$wb['tcp_ports_error_regex'] = 'Caractere não permitido para porta tcp. Caracteres permitidos são números, ":" e ",".'; +$wb['udp_ports_error_regex'] = 'Caractere não permitido para porta udp. Caracteres permitidos são números, ":" e ",".'; +$wb['login_as_or_logout_txt'] = 'Gostaria de realizar acesso novamente como {UTYPE} ou sair?'; ?> diff --git a/interface/web/login/lib/lang/ca.lng b/interface/web/login/lib/lang/ca.lng index 17c427714b6ee480e971c460318345bb1a3ef0b7..8c672b59c5caac8bbef310f796b5e283799f5f40 100644 --- a/interface/web/login/lib/lang/ca.lng +++ b/interface/web/login/lib/lang/ca.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Un nouveau mot de passe vous sera envoyé à votre adre $wb['pw_reset'] = 'Le mot de passe a été réinitialisé, et vous a été envoyé à votre adresse e-mail.'; $wb['pw_error'] = 'Le nom d\'utilisateur et/ou L\'adresse e-mail ne correspondent pas.'; $wb['pw_error_noinput'] = 'Entrez votre nom d\'utilisateur et votre adresse e-mail.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Le mot de passe d\'accès à votre panel a été réinitialisé. Le nouveau mot de passe est : '; $wb['pw_reset_mail_title'] = 'Le mot de passe d\'accès à votre panel a été réinitialisé.'; $wb['user_regex_error'] = 'Le nom d\'utilisateur contient des caractères incorrects ou contient plus de 64 caractères.'; diff --git a/interface/web/login/lib/lang/cz.lng b/interface/web/login/lib/lang/cz.lng index 065f6fc865cdd9694f3d9e8834d8003b3b41bd4a..9b22d7d3c776076375eef06dcfc64f313d871c32 100644 --- a/interface/web/login/lib/lang/cz.lng +++ b/interface/web/login/lib/lang/cz.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Bude Vám vygenerováno a zasláno nové heslo na e-mai $wb['pw_reset'] = 'Heslo bylo resetováno a zasláno na Váš e-mail.'; $wb['pw_error'] = 'Uživatelské jméno nebo e-mail nesouhlasÃ.'; $wb['pw_error_noinput'] = 'ProsÃm zadejte uživatelské jméno a e-mail.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'VaÅ¡e heslo do ISPConfigu bylo resetováno. Nové heslo je: '; $wb['pw_reset_mail_title'] = 'Heslo do ISPConfigu bylo resetováno.'; $wb['user_regex_error'] = 'Uživatelské jméno obsahuje nepovolené znaky nebo je delšà než 64 znaků.'; diff --git a/interface/web/login/lib/lang/de.lng b/interface/web/login/lib/lang/de.lng index 217e5c51b05c608c008c59d3efb46b9e5fa17e7c..446f04edc87eb44b17263d5b4754f1966679f848 100644 --- a/interface/web/login/lib/lang/de.lng +++ b/interface/web/login/lib/lang/de.lng @@ -8,6 +8,7 @@ $wb['pw_reset'] = 'Das Passwort wurde zurückgesetzt und wird per E-Mail an Sie $wb['pw_reset_act'] = 'Ein Aktivierungslink wurde per E-Mail an Sie geschickt. Bitte bestätigen Sie die Anforderung eines neuen Passwortes.'; $wb['pw_error'] = 'Benutzername oder E-Mail Adresse stimmen nicht überein.'; $wb['pw_error_noinput'] = 'Bitte geben Sie Ihre E-Mail Adresse und Ihren Benutzernamen ein.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Das Passwort wurde zurückgesetzt. Das neue Passwort lautet: '; $wb['pw_reset_mail_title'] = 'Ihr Passwort wurde zurückgesetzt'; $wb['pw_reset_act_mail_msg'] = 'Bitte bestätigen Sie die Anforderung eines neuen Passworts, indem Sie folgenden Link besuchen: '; diff --git a/interface/web/login/lib/lang/dk.lng b/interface/web/login/lib/lang/dk.lng index 48e7885ec5dad4e3b9c34928786330e9ab227bb0..8a104c45be9fdd0a364f519870d20134cd926b2e 100644 --- a/interface/web/login/lib/lang/dk.lng +++ b/interface/web/login/lib/lang/dk.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'En ny adgangskode vil blive genereret og sendt til din $wb['pw_reset'] = 'Adgangskoden er blevet nulstillet og sendt til din e-mail adresse.'; $wb['pw_error'] = 'Brugernavn eller e-mail adresse matcher ikke.'; $wb['pw_error_noinput'] = 'Indtast e-mail adresse og brugernavn.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Adgangskoden til din ISPConfig 3 kontrol panel konto er blevet nulstillet. Den nye adgangskode er: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Kontrol panel adgangskode er blevet nulstillet.'; $wb['user_regex_error'] = 'Brugernavn indeholder Ikke-tilladte karakterer eller er længer end 64 karaktere.'; diff --git a/interface/web/login/lib/lang/el.lng b/interface/web/login/lib/lang/el.lng index c4e7518904afe9287d344616d7fb182c9710d27e..8a6ed3387f8bb72829facb4051345e2197db9aa2 100644 --- a/interface/web/login/lib/lang/el.lng +++ b/interface/web/login/lib/lang/el.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Ένα νÎο συνθηματικό θα δημιου $wb['pw_reset'] = 'Το νÎο συνθηματικό δημιουÏγηθήκε και στάλθηκε στο e-mail που δηλώσατε'; $wb['pw_error'] = 'Το όνομα χÏήστη ή το email δεν ταιÏιάζουν'; $wb['pw_error_noinput'] = 'ΠαÏακαλοÏμε εισάγετε διεÏθυνση email και όνομα χÏήστη'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Ο κωδικός σας για το εÏγαλείο διαχείÏισης ISPConfig 3 Îχει αÏχικοποιηθεί. Το νÎο συνθηματικό είναι: '; $wb['pw_reset_mail_title'] = 'το συνθηματικό σας για το εÏγαλείο διαχείÏισης ISPConfig 3 Îχει αÏχικοποιηθεί.'; $wb['user_regex_error'] = 'Το όνομα χÏήστη πεÏιÎχει μη επιτÏεπόμενους χαÏακτήÏες ή το μÎγεθος του ξεπεÏνά του 64 χαÏακτήÏες.'; diff --git a/interface/web/login/lib/lang/en.lng b/interface/web/login/lib/lang/en.lng index 2db2d49f94566b51b3aa99e953c3bf368bd8f7c7..44844f089baf09041e18c562ac495377b30dd7b5 100644 --- a/interface/web/login/lib/lang/en.lng +++ b/interface/web/login/lib/lang/en.lng @@ -2,19 +2,20 @@ $wb['error_user_password_empty'] = "Username or Password empty."; $wb['error_user_password_incorrect'] = "Username or Password wrong."; $wb['error_user_blocked'] = "User is blocked."; -$wb['error_user_too_many_logins'] = "To many wrong login's, Please retry it after 15 minutes"; -$wb['pass_reset_txt'] = 'A new password will be generated and send to your email address if the email address entered below matches the email address in your client settings.'; -$wb['pw_reset'] = 'The password has been reset and send to your email address.'; -$wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.'; +$wb['error_user_too_many_logins'] = "Too many failed login attempts. Please retry after 15 minutes"; +$wb['pass_reset_txt'] = 'A new password will be generated and sent to your email address if the email address entered below matches the email address in your client settings.'; +$wb['pw_reset'] = 'The password has been reset and sent to your email address.'; +$wb['pw_reset_act'] = 'You have been sent a password reset link. Please visit the link to confirm your password reset request.'; $wb['pw_error'] = 'Username or email address does not match.'; $wb['pw_error_noinput'] = 'Please enter email address and username.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'The password to your ISPConfig 3 control panel account has been reset. The new password is: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel password has been reset'; $wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset'; $wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: '; $wb['user_regex_error'] = 'Username contains unallowed characters or is longer than 64 characters.'; $wb['pw_error_length'] = 'The password length is < 1 or > 256 characters.'; -$wb['email_error'] = 'Email contains unallowed characters or has a invalid format.'; +$wb['email_error'] = 'Email contains unallowed characters or has an invalid format.'; $wb['login_txt'] = "Login"; $wb['username_txt'] = "Username"; $wb['password_txt'] = "Password"; @@ -28,7 +29,7 @@ $wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.'; $wb['stay_logged_in_txt'] = 'Keep me logged in'; $wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.'; -$wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.'; +$wb['lost_password_function_wait_txt'] = 'You cannot request a new password yet. Please wait a few minutes.'; $wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.'; $wb['lost_password_function_denied_txt'] = 'This activation link is not valid.'; ?> diff --git a/interface/web/login/lib/lang/es.lng b/interface/web/login/lib/lang/es.lng old mode 100755 new mode 100644 index c7576d509d8aec45c7799df0958125e4d349e10c..98c94443c54ddc2a0770cdfb29907a2a352e956d --- a/interface/web/login/lib/lang/es.lng +++ b/interface/web/login/lib/lang/es.lng @@ -16,6 +16,7 @@ $wb['pw_button_txt'] = 'Reenviar contraseña'; $wb['pw_error'] = 'El usuario o la cuenta de correo no coinciden.'; $wb['pw_error_length'] = 'La longitud de la contraseña es superior a 64 caracteres.'; $wb['pw_error_noinput'] = 'Por favor, introduzca la dirección de correo y el nombre de usuario.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_lost_txt'] = 'Olvidé la contraseña'; $wb['pw_reset'] = 'La nueva contraseña ha sido generada y enviada a su cuenta de correo.'; $wb['pw_reset_mail_msg'] = 'La contraseña de su cuenta de panel de control ISPConfig 3 ha sido regenerada. La nueva contraseña es: '; diff --git a/interface/web/login/lib/lang/es_login_as.lng b/interface/web/login/lib/lang/es_login_as.lng old mode 100755 new mode 100644 diff --git a/interface/web/login/lib/lang/fi.lng b/interface/web/login/lib/lang/fi.lng old mode 100755 new mode 100644 index e2cc04da8a0651c871ab70fdc36fbb5bd69e4810..8198dd4822ae84dd7a2202b9e0b9ec726316148f --- a/interface/web/login/lib/lang/fi.lng +++ b/interface/web/login/lib/lang/fi.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Uusi salasana luodaan ja lähetetään asiakastiedoissa $wb['pw_reset'] = 'Salasana on vaihdettu ja lähetetty sähköpostiisi.'; $wb['pw_error'] = 'Käyttäjätunnusta tai sähköpostiosoitetta ei löydy.'; $wb['pw_error_noinput'] = 'Anna sähköpostiosoite ja käyttäjätunnus.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Käyttäjätunnuksesi salasana ISPConfi3 Hallintapaneeliin on vaihdettu. Uusi salasanasi: '; $wb['pw_reset_mail_title'] = 'ISPConfi3 Hallintapaneelin salasana on vaihdettu.'; $wb['user_regex_error'] = 'Käyttäjänimi sisältää kiellettyjä merkkejä tai on yli 64 merkkiä pitkä.'; diff --git a/interface/web/login/lib/lang/fr.lng b/interface/web/login/lib/lang/fr.lng index ac4f3c2d78f4e7d0485137f225fdf5851a44e54f..f067751aa9bc1499665c7126c494f4e78c51f48e 100644 --- a/interface/web/login/lib/lang/fr.lng +++ b/interface/web/login/lib/lang/fr.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Un nouveau mot de passe vous sera envoyé à votre adre $wb['pw_reset'] = 'Le mot de passe a été réinitialisé, et vous a été envoyé à votre adresse e-mail.'; $wb['pw_error'] = 'Le nom d’utilisateur ou l’adresse e-mail ne correspondent pas.'; $wb['pw_error_noinput'] = 'Saisissez votre nom d’utilisateur et votre adresse e-mail.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Le mot de passe d’accès à votre Panel a été réinitialisé. Le nouveau mot de passe est : '; $wb['pw_reset_mail_title'] = 'Le mot de passe d’accès à votre Panel a été réinitialisé.'; $wb['user_regex_error'] = 'Le nom d’utilisateur contient des caractères incorrects ou contient plus de 64 caractères.'; diff --git a/interface/web/login/lib/lang/hr.lng b/interface/web/login/lib/lang/hr.lng index a2920e617849e2fdd28ed9583186000567e35a6c..193123557a4b6931d20ef32de6c01ee782f3596b 100644 --- a/interface/web/login/lib/lang/hr.lng +++ b/interface/web/login/lib/lang/hr.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Nova Å¡ifra će biti generirana i poslana na email ako $wb['pw_reset'] = 'Å ifra je resetirana i poslana na vaÅ¡u email adresu.'; $wb['pw_error'] = 'KorisniÄko ime ili Å¡ifra nisu ispravni.'; $wb['pw_error_noinput'] = 'Unesite email adresu i korisniÄko ime.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Å ifra za ISPConfig 3 control panel raÄun je resetirana. VaÅ¡a nova Å¡ifra je: '; $wb['pw_reset_mail_title'] = 'Resetirana ISPConfig 3 control panel Å¡ifra.'; $wb['user_regex_error'] = 'KorisniÄko ime sadrži nedozvoljene znakove ili je dulje od 64 znaka.'; diff --git a/interface/web/login/lib/lang/hu.lng b/interface/web/login/lib/lang/hu.lng index 7548c01de39cc4c29b79ff2ed7eb506a5c75e2b8..b6adb6b19d2dd3fb3ba25d24508061c972954ca1 100644 --- a/interface/web/login/lib/lang/hu.lng +++ b/interface/web/login/lib/lang/hu.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Új jelszót generáltunk és email cÃmére elküldjü $wb['pw_reset'] = 'Jelszavát reseteltük és elküldtük email cÃmére.'; $wb['pw_error'] = 'Felhasználónév vagy email cÃm nem egyezik.'; $wb['pw_error_noinput'] = 'Kérem üsse be email cÃmét és felahsználónevét.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'The password to your ISPConfig 3 control panel hozzáfárás módosÃtva. Az új jelszó: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel jelszó módosÃtva.'; $wb['user_regex_error'] = 'Felhasználónév érvénytelen karaktereket tartalmaz, vagy több mint 64 karakter'; diff --git a/interface/web/login/lib/lang/id.lng b/interface/web/login/lib/lang/id.lng index accdcbc3c4f0058b82fd26764c9fd22031fa6745..35e3675a9d9f630a024d13ca03b6e097b70b9331 100644 --- a/interface/web/login/lib/lang/id.lng +++ b/interface/web/login/lib/lang/id.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Kata sandi baru telah dibuat dan dikirim ke alamat emai $wb['pw_reset'] = 'Kata sandi telah direset dan telah dikirim ke alamat email Anda.'; $wb['pw_error'] = 'Nama pengguna atau alamat email tidak cocok.'; $wb['pw_error_noinput'] = 'Masukkan alamat email dan nama pengguna.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Kata sandi untuk control panel ISPConfig 3 Anda telah direset. Kata sandi yang baru adalah: '; $wb['pw_reset_mail_title'] = 'Kata sandi Control Panel ISPConfig 3 telah direset.'; $wb['user_regex_error'] = 'Nama Pengguna mengandung karakter yang tidak diperbolehkan atau lebih dari 64 karakter.'; diff --git a/interface/web/login/lib/lang/it.lng b/interface/web/login/lib/lang/it.lng index 017d60df78beb46a9a6ee5654caaee0a915d8e1f..0d3ec93c9b493e2c5d7ac5212d0c172652414033 100644 --- a/interface/web/login/lib/lang/it.lng +++ b/interface/web/login/lib/lang/it.lng @@ -2,32 +2,33 @@ $wb['error_user_password_empty'] = 'Nome utente o password vuoti.'; $wb['error_user_password_incorrect'] = 'Nome utente o password errati.'; $wb['error_user_blocked'] = 'Utente bloccato.'; -$wb['error_user_too_many_logins'] = 'Troppi tentativi errati di login. Riprovare tra 15 minuti'; +$wb['error_user_too_many_logins'] = 'Troppi tentativi errati di login. Riprovare tra 15 minuti.'; $wb['pass_reset_txt'] = 'Una nuova password sarà generata e spedita alla tua email se lemail inserita corrisponde a quella delle impostazioni dellutente.'; $wb['pw_reset'] = 'La password è stata reimpostata e spedita al tuo indirizzo mail.'; -$wb['pw_error'] = 'Nome utente o email non corrispondenti.'; -$wb['pw_error_noinput'] = 'Inserisci nome utente e indirizzo email.'; -$wb['pw_reset_mail_msg'] = 'La password nel tuo pannello di controllo ISPConfig 3 è stata reimpostata. La nuova password è: '; -$wb['pw_reset_mail_title'] = 'Password del pannello di controllo ISPConfig 3 reimpostata.'; +$wb['pw_error'] = 'Nome utente o e-mail non corrispondenti.'; +$wb['pw_error_noinput'] = 'Inserisci nome utente e indirizzo e-mail.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; +$wb['pw_reset_mail_msg'] = 'La password nel tuo pannello di controllo è stata reimpostata. La nuova password è: '; +$wb['pw_reset_mail_title'] = 'Password del pannello di controllo reimpostata.'; $wb['user_regex_error'] = 'Nome utente contenente caratteri non permessi oppure più lungo di 64 caratteri.'; $wb['pw_error_length'] = 'Lunghezza password maggiore di 64 caratteri.'; $wb['username_txt'] = 'Nome utente'; $wb['password_txt'] = 'Password'; $wb['login_button_txt'] = 'Accedi'; $wb['pw_lost_txt'] = 'Password smarrita'; -$wb['error_maintenance_mode'] = 'Il pannello di controllo ISPConfig è in manutenzione. Saremo online tra breve. Grazie per la collaborazione.'; +$wb['error_maintenance_mode'] = 'Il pannello di controllo è in manutenzione.'; $wb['login_txt'] = 'Accedi'; $wb['pw_reset_txt'] = 'Password reset'; $wb['pw_button_txt'] = 'Invia password'; -$wb['email_txt'] = 'Email'; -$wb['theme_not_compatible'] = 'Il tema selezionato non è compatibile con questa versione del pannello ISPConfig. Verificare esistenza di una nuova versione del tema.<br />Il tema di default è stato attivato automaticamente.'; +$wb['email_txt'] = 'E-mail'; +$wb['theme_not_compatible'] = 'Il tema selezionato non è compatibile con questa versione del pannello. Verificare esistenza di una nuova versione del tema.<br />Il tema di default è stato attivato automaticamente.'; $wb['back_txt'] = 'Indietro'; $wb['email_error'] = 'Email contiene caratteri non autorizzati o un formato non valido.'; $wb['stay_logged_in_txt'] = 'Ricordami'; $wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.'; $wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.'; -$wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset'; -$wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: '; +$wb['pw_reset_act_mail_title'] = 'Conferma reset password'; +$wb['pw_reset_act_mail_msg'] = 'Per confermare il reset della password si prega di visitare questo link: '; $wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.'; $wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.'; $wb['lost_password_function_denied_txt'] = 'This activation link is not valid.'; diff --git a/interface/web/login/lib/lang/ja.lng b/interface/web/login/lib/lang/ja.lng index 8318ef92633027354a0367be4c377640833321bc..4b9e2c62363720530033eee88a65e4639edd08be 100644 --- a/interface/web/login/lib/lang/ja.lng +++ b/interface/web/login/lib/lang/ja.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'æ–°ã—ã„パスワードをメールã§é€ã‚Šã¾ã—㟠$wb['pw_reset'] = 'パスワードをリセットã—ã¾ã—ãŸã€‚æ–°ã—ã„パスワードをメールã§é€ä¿¡ã—ãŸã®ã§ãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ã‚’確èªã—ã¦ãã ã•ã„。'; $wb['pw_error'] = 'ユーザーåã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒä¸€è‡´ã—ã¾ã›ã‚“。'; $wb['pw_error_noinput'] = 'メールアドレスã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼åを入力ã—ã¦ãã ã•ã„。'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'ISPConfig 3 ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ãƒ‘ãƒãƒ«ã®ãƒ‘スワードをリセットã—ã¾ã—ãŸã€‚æ–°ã—ã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã¯æ¬¡ã®é€šã‚Šã§ã™ï¼š'; $wb['pw_reset_mail_title'] = 'ISPConfig3 ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ãƒ‘ãƒãƒ«ã®ãƒ‘スワードをリセットã—ã¾ã—ãŸã€‚'; $wb['user_regex_error'] = 'ユーザーåã«ä¸æ£ãªæ–‡å—ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã‹ã€ã¾ãŸã¯64æ–‡å—ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚'; diff --git a/interface/web/login/lib/lang/nl.lng b/interface/web/login/lib/lang/nl.lng index ca641e3b026b2bb06f6fe697ff72aa58f1450d24..2c98275fd4fef242932c23287428c894f42ab2a0 100644 --- a/interface/web/login/lib/lang/nl.lng +++ b/interface/web/login/lib/lang/nl.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Een nieuw wachtwoord zal worden gegenereerd en per e-ma $wb['pw_reset'] = 'Het wachtwoord is gereset en is verzonden naar uw e-mailadres.'; $wb['pw_error'] = 'Gebruikersnaam of e-mailadres komt niet overeen.'; $wb['pw_error_noinput'] = 'Voer a.u.b. een e-mailadres en gebruikersnaam in.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Het wachtwoord dat toegang biedt tot uw ISPConfig 3 control panel account is gereset. Het nieuwe wachtwoord is: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel wachtwoord is gereset.'; $wb['user_regex_error'] = 'Gebruikersnaam bevat karakters die niet zijn toegestaan of is langer dan 64 karakters.'; diff --git a/interface/web/login/lib/lang/pl.lng b/interface/web/login/lib/lang/pl.lng index 702b50117f7000a48e7a1a9c08e9f7d5b7b4332d..2367ede54d5b222eb2724e109d4984852b9b3c1e 100644 --- a/interface/web/login/lib/lang/pl.lng +++ b/interface/web/login/lib/lang/pl.lng @@ -3,6 +3,7 @@ $wb['pass_reset_txt'] = 'Nowe hasÅ‚o zostanie wygenerowane i wysÅ‚ane na Twój a $wb['pw_reset'] = 'Nowe hasÅ‚o zostaÅ‚o wygenerowane i wysÅ‚ane na Twój adres e-mail.'; $wb['pw_error'] = 'Nazwa użytkownika lub e-mail nie pasujÄ… do siebie.'; $wb['pw_error_noinput'] = 'Podaj nazwÄ™ użytkownika i adres e-mail.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'HasÅ‚o do Twojego panelu w ISPConfig 3 zostaÅ‚o zresetowane. Twoje nowe hasÅ‚o to: '; $wb['pw_reset_mail_title'] = 'HasÅ‚o do panelu w ISPConfig 3 zostaÅ‚o zresetowane.'; $wb['user_regex_error'] = 'Nazwa użytkownika zawiera niedozwolone znaki lub jest dÅ‚uższa niż 64 znaki.'; diff --git a/interface/web/login/lib/lang/pt.lng b/interface/web/login/lib/lang/pt.lng index 576d7ca44cdf6a5ac12fe053c804f57b64f51620..4be018a50c72b54a1f4007b73e1a60b80b1a054a 100644 --- a/interface/web/login/lib/lang/pt.lng +++ b/interface/web/login/lib/lang/pt.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Uma nova senha foi gerada e ser-lhe-á enviada para o c $wb['pw_reset'] = 'Senha restabelecida! Ser-lhe-á enviada para o correio eletrônico registado no sistema.'; $wb['pw_error'] = 'Nome de utilizador ou correio eletrônico não coincidem.'; $wb['pw_error_noinput'] = 'Favor informar nome de utilizador e endereço de correio válidos.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'A senha do painel de controle foi restabelecida. A nova senha é: '; $wb['pw_reset_mail_title'] = 'A senha do painel de controle foi restabelecida.'; $wb['user_regex_error'] = 'O nome de utilizador contém mais de 64 caracteres ou contém caracteres inválidos.'; diff --git a/interface/web/login/lib/lang/ro.lng b/interface/web/login/lib/lang/ro.lng index 3eb550194a80848a396e42af098e7841c1a1a360..7676d928d57fbe6a18e2eb7182d9a80e7f6c714d 100644 --- a/interface/web/login/lib/lang/ro.lng +++ b/interface/web/login/lib/lang/ro.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'O noua parola va fi generata si trimisa catre mail-ul t $wb['pw_reset'] = 'Parola a fost schimbata si trimisa la mail-ul tau.'; $wb['pw_error'] = 'Username sau email nu s epotrivesc'; $wb['pw_error_noinput'] = 'introduceti email address si username.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Parola la panoul de control a fost resetata . Noua parola este : '; $wb['pw_reset_mail_title'] = 'parola panoului de control a fost schimbata'; $wb['user_regex_error'] = 'Username contine caractere nepermise sau are mai mult de 64 caractere'; diff --git a/interface/web/login/lib/lang/ru.lng b/interface/web/login/lib/lang/ru.lng index ab19c92b13983dbc8ad7e5e4446fe1724cc1dd4e..4f1b4e86fc8d4cd099161dd6d8f5fc5d7d31ad47 100644 --- a/interface/web/login/lib/lang/ru.lng +++ b/interface/web/login/lib/lang/ru.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Ðовый пароль будет Ñгенериров $wb['pw_reset'] = 'Пароль был Ñброшен и и отправлен вам на почту.'; $wb['pw_error'] = 'Логин или E-mail Ð°Ð´Ñ€ÐµÑ Ð½Ðµ Ñовпадают.'; $wb['pw_error_noinput'] = 'Введите E-mail Ð°Ð´Ñ€ÐµÑ Ð¸ логин.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Пароль в панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ISPConfig 3Был Ñброшен. Ðовый пароль: '; $wb['pw_reset_mail_title'] = 'Пароль Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð¹ панели ISPConfig 3 был Ñброшен.'; $wb['user_regex_error'] = 'Логин Ñодержит неправильные Ñимволы, или длиннее 64 Ñимволов.'; diff --git a/interface/web/login/lib/lang/ru_login_as.lng b/interface/web/login/lib/lang/ru_login_as.lng index 46a3eab288473b2380d365fe6845a339dc33a725..63031d4d09acfffe0ab3bc0f64997949a92294cd 100644 --- a/interface/web/login/lib/lang/ru_login_as.lng +++ b/interface/web/login/lib/lang/ru_login_as.lng @@ -1,12 +1,12 @@ <?php $wb['login_1_txt'] = 'Ð’Ñ‹ хотите войти как пользователь'; -$wb['login_2_txt'] = 'ЕÑли вы Ñто Ñделаете, вы можете \"вернутьÑÑ\", нажав на \"выход\".'; +$wb['login_2_txt'] = 'ЕÑли вы Ñто Ñделаете, вы можете \\"вернутьÑÑ\\", нажав на \\"выход\\".'; $wb['btn_yes_txt'] = 'Да, войти как Клиент'; $wb['btn_back_txt'] = 'Ðет, назад к ÑпиÑку'; $wb['udp_port_help_txt'] = 'ПеречиÑлить через запÑтую'; $wb['active_txt'] = 'Ðктивно'; $wb['firewall_error_unique'] = 'Уже еÑть Ñ‚Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ бредмауÑра Ð´Ð»Ñ Ñтого Ñервера.'; -$wb['tcp_ports_error_regex'] = 'ÐедопуÑтимый Ñимвол в указании tcp порта. Корректные Ñиволы - цифры, \":\" и \",\"'; -$wb['udp_ports_error_regex'] = 'Ðекорректный Ñимвол в указании UDP порта. ДопуÑтимые Ñиволы - цифры, \":\" и \",\"'; +$wb['tcp_ports_error_regex'] = 'ÐедопуÑтимый Ñимвол в указании tcp порта. Корректные Ñиволы - цифры, \\":\\" и \\",\\"'; +$wb['udp_ports_error_regex'] = 'Ðекорректный Ñимвол в указании UDP порта. ДопуÑтимые Ñиволы - цифры, \\":\\" и \\",\\"'; $wb['login_as_or_logout_txt'] = 'Ð’Ñ‹ хотите заново войти как {UTYPE} или выйти?'; ?> diff --git a/interface/web/login/lib/lang/se.lng b/interface/web/login/lib/lang/se.lng index 280332789b223a5a46355e08075281f85a260bdb..4f8a8a44431c6787484fd280173fdd4b6e2c3b7b 100644 --- a/interface/web/login/lib/lang/se.lng +++ b/interface/web/login/lib/lang/se.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'A new password will be generated and send to your email $wb['pw_reset'] = 'Lösenordet har Ã¥terställts och skickats till din epostadress.'; $wb['pw_error'] = 'Användarenmn eller lösenord matchar inte.'; $wb['pw_error_noinput'] = 'Vänligen fyll i epostadress och användarnamn.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'The password to your ISPConfig 3 control panel account has been reset. The new password is: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel password has been reset.'; $wb['user_regex_error'] = 'Username contains unallowed characters or is longer then 64 characters.'; diff --git a/interface/web/login/lib/lang/sk.lng b/interface/web/login/lib/lang/sk.lng index b03a6455646071a15f28412bfd351450539d0fd8..8c211b19beab44a010faa95f82f731c0988b04ef 100644 --- a/interface/web/login/lib/lang/sk.lng +++ b/interface/web/login/lib/lang/sk.lng @@ -7,6 +7,7 @@ $wb['pass_reset_txt'] = 'Nové heslo bude vytvorené a poslané na e-mailovú ad $wb['pw_reset'] = 'Heslo bolo resetnuté a posielané na e-mailovú adresu.'; $wb['pw_error'] = 'UžÃvateľské meno alebo e-mailová adresa nezodpovedá.'; $wb['pw_error_noinput'] = 'ProsÃm, zadajte e-mailovú adresu a UžÃvateľské meno.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'Heslo k svojmu úÄtu na ovládacom paneli bol resetnuté. Nové heslo je:'; $wb['pw_reset_mail_title'] = 'Heslo ovládacieho panelu bolo resetnuté.'; $wb['user_regex_error'] = 'UžÃvateľské meno obsahuje neplatné znaky, alebo je dlhÅ¡ia ako 64 znakov.'; diff --git a/interface/web/login/lib/lang/tr.lng b/interface/web/login/lib/lang/tr.lng index c50ea5c8a2f2d5e4ab91f95e4427160c630ac021..7bcc75f6942b52238d1c80546c0397d3c29d908d 100644 --- a/interface/web/login/lib/lang/tr.lng +++ b/interface/web/login/lib/lang/tr.lng @@ -3,12 +3,16 @@ $wb['error_user_password_empty'] = 'Kullanıcı adı ya da parola boÅŸ'; $wb['error_user_password_incorrect'] = 'Kullanıcı adı ya da parola hatalı'; $wb['error_user_blocked'] = 'Kullanıcı engellenmiÅŸ.'; $wb['error_user_too_many_logins'] = 'Fazla sayıda hatalı oturum açmayı denediniz, Lütfen 15 dakika sonra yeniden deneyin.'; -$wb['pass_reset_txt'] = 'Yazdığınız e-posta adresi hesabınızdakine uyarsa, yeni bir parola oluÅŸturularak e-posta adresinize gönderilir.'; +$wb['pass_reset_txt'] = 'Yazdığınız e-posta adresi hesabınızdakine uyarsa, yeni bir parola üretilerek e-posta adresinize gönderilir.'; $wb['pw_reset'] = 'Parolanız sıfırlandı ve e-posta adresinize gönderildi.'; +$wb['pw_reset_act'] = 'Size bir etkinleÅŸtirme baÄŸlantısı gönderildi. Parola isteÄŸinizi onaylamak için baÄŸlantıya tıklayın.'; $wb['pw_error'] = 'Kullanıcı adı ya da e-posta adresiniz doÄŸru deÄŸil.'; $wb['pw_error_noinput'] = 'Lütfen e-posta adresinizi ya da kullanıcı adınızı yazın.'; +$wb['pw_reset_error_smtp_connection'] = 'There was a connection problem when trying to send an email pertaining to your password reset request.'; $wb['pw_reset_mail_msg'] = 'ISPConfig 3 Kontrol Paneli parolanız sıfırlandı. Yeni parolanız: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Kontrol Paneli parolanız sıfırlandı'; +$wb['pw_reset_act_mail_title'] = 'ISPConfig 3 Control Panel parola sıfırlama isteÄŸini onaylayın'; +$wb['pw_reset_act_mail_msg'] = 'Lütfen ISPConfig 3 Control Panel hesabınızın parolasını sıfırlamak için ÅŸu baÄŸlantıya tıklayın: '; $wb['user_regex_error'] = 'Kullanıcı adınız izin verilmeyen karakterlerden oluÅŸuyor ya da 64 karakterden uzun.'; $wb['pw_error_length'] = 'Parola 64 karakterden uzun.'; $wb['email_error'] = 'E-posta adresi izin verilmeyen karakterlerden oluÅŸuyor ya da biçimi hatalı.'; @@ -24,11 +28,8 @@ $wb['back_txt'] = 'Geri'; $wb['error_maintenance_mode'] = 'ISPConfig bakımda. Kısa bir süre sonra yeniden çalışıyor olacak, sabrınız için teÅŸekkürler.'; $wb['theme_not_compatible'] = 'SeçilmiÅŸ tema geçerli ISPConfig sürümü ile uyumlu deÄŸil. Lütfen temanın yeni sürümünü araÅŸtırın.<br />Varsayılan tema etkinleÅŸtirildi.'; $wb['stay_logged_in_txt'] = 'Oturumum açık kalsın'; -$wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.'; -$wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset'; -$wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: '; -$wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.'; -$wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.'; -$wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.'; -$wb['lost_password_function_denied_txt'] = 'This activation link is not valid.'; +$wb['lost_password_function_disabled_txt'] = 'Bu kullanıcı parolamı unuttum özelliÄŸini kullanamaz.'; +$wb['lost_password_function_wait_txt'] = 'Henüz yeni parola isteÄŸinde bulunamazsınız. Lütfen bir kaç dakika bekleyin.'; +$wb['lost_password_function_expired_txt'] = 'Bu etkinleÅŸtirme baÄŸlantısının süresi geçmiÅŸ. Lütfen yeni bir parola sıfırlama isteÄŸinde bulunun.'; +$wb['lost_password_function_denied_txt'] = 'Bu etkinleÅŸtirme baÄŸlantısı geçersiz.'; ?> diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng index f7f12feeff4124ca933211de12edd708dd0ec508..8a54a8efd9889f48caeebf2555d79c9ea66782f6 100644 --- a/interface/web/login/lib/lang/tr_login_as.lng +++ b/interface/web/login/lib/lang/tr_login_as.lng @@ -1,12 +1,13 @@ <?php $wb['login_1_txt'] = 'Bu kullanıcı olarak oturum açmak ister misiniz'; -$wb['login_2_txt'] = '\\"Geri dönmek\\" için oturumu kapat üzerine tıklayın.'; +$wb['login_2_txt'] = 'Oturumu Kapat üzerine tıklayarak "Geri Dönebilirsiniz".'; $wb['btn_yes_txt'] = 'Evet, Müşteri olarak oturum aç'; $wb['btn_back_txt'] = 'Hayır, listeye geri dön'; $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['active_txt'] = 'Etkin'; $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.'; -$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; -$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; -$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['active_txt'] = 'Etkin'; +$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; +$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; +$wb['login_as_or_logout_txt'] = '{UTYPE} olarak oturum açmak ya da oturumunuzu kapatmak ister misiniz?'; ?> diff --git a/interface/web/login/login_as.php b/interface/web/login/login_as.php index 4c2fb33393e6d6e555d350515750ebd5bf66972d..67d5858ff60be84e3ae954d2fa526791f7c1290f 100644 --- a/interface/web/login/login_as.php +++ b/interface/web/login/login_as.php @@ -96,7 +96,7 @@ echo ' <input type="hidden" name="s_pg" value="dashboard" /> <input type="hidden" name="login_as" value="1" /> <div class="wf_actions buttons"> - <button class="btn btn-default formbutton-success" type="button" value="'.$wb['btn_yes_txt'].'" data-submit-form="pageForm" data-form-action="/login/index.php"><span>'.$wb['btn_yes_txt'].'</span></button> + <button class="btn btn-default formbutton-success" type="button" value="'.$wb['btn_yes_txt'].'" data-submit-form="pageForm" data-form-action="login/index.php"><span>'.$wb['btn_yes_txt'].'</span></button> <button class="btn btn-default formbutton-default" value="'.$wb['btn_back_txt'].'" data-load-content="'.$backlink.'"><span>'.$wb['btn_back_txt'].'</span></button> </div> '; diff --git a/interface/web/login/logout.php b/interface/web/login/logout.php index dadd871bab6214d2214058f125492eed78d664b4..fa60fba63298f271f42036ce82ae34c8c4c6e9f8 100644 --- a/interface/web/login/logout.php +++ b/interface/web/login/logout.php @@ -54,7 +54,7 @@ if ((isset($_SESSION['s_old']) && ($_SESSION['s_old']['user']['typ'] == 'admin' <input type="hidden" name="s_pg" value="index" /> <input type="hidden" name="login_as" value="1" /> <div class="wf_actions buttons"> - <button class="btn btn-default formbutton-success" type="button" value="Yes, re-login as ' . $utype . '" data-submit-form="pageForm" data-form-action="/login/index.php"><span>Yes, re-login as ' . $utype . '</span></button> + <button class="btn btn-default formbutton-success" type="button" value="Yes, re-login as ' . $utype . '" data-submit-form="pageForm" data-form-action="login/index.php"><span>Yes, re-login as ' . $utype . '</span></button> <button class="btn btn-default formbutton-default" type="button" value="No, logout" data-load-content="login/logout.php?l=1"><span>No, logout</span></button> </div> '; diff --git a/interface/web/login/password_reset.php b/interface/web/login/password_reset.php index 02c71f2948383a02202dfc4b53e83f2a5a2bbc46..0a15b0c52b0a3da2ea55ee78f80cf7ba18f03955 100644 --- a/interface/web/login/password_reset.php +++ b/interface/web/login/password_reset.php @@ -43,7 +43,7 @@ $app->tpl->setInclude('content_tpl', 'templates/password_reset.htm'); $app->tpl_defaults(); -include ISPC_ROOT_PATH.'/web/login/lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'.lng'; +include ISPC_ROOT_PATH.'/web/login/lib/lang/'.$app->functions->check_language($conf['language']).'.lng'; $app->tpl->setVar($wb); $continue = true; @@ -71,8 +71,7 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != ' $username = $client['username']; $password_hash = sha1(uniqid('ispc_pw')); $app->db->query("UPDATE sys_user SET lost_password_reqtime = NOW(), lost_password_hash = ? WHERE username = ?", $password_hash, $username); - $app->tpl->setVar("message", $wb['pw_reset_act']); - + $server_domain = (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : $_SERVER['HTTP_HOST']); if($server_domain == '_') { $tmp = explode(':',$_SERVER["HTTP_HOST"]); @@ -81,9 +80,9 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != ' } if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') $server_domain = 'http://' . $server_domain; else $server_domain = 'https://' . $server_domain; - + if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] != '443') $server_domain .= ':' . $_SERVER['SERVER_PORT']; - + $app->uses('getconf,ispcmail'); $server_config_array = $app->getconf->get_global_config(); $mail_config = $server_config_array['mail']; @@ -94,10 +93,14 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != ' $app->ispcmail->setSender($mail_config['admin_mail'], $mail_config['admin_name']); $app->ispcmail->setSubject($wb['pw_reset_act_mail_title']); $app->ispcmail->setMailText($wb['pw_reset_act_mail_msg'].$server_domain . '/login/password_reset.php?username=' . urlencode($username) . '&hash=' . urlencode($password_hash)); - $app->ispcmail->send(array($client['contact_name'] => $client['email'])); + $send_result = $app->ispcmail->send(array($client['contact_name'] => $client['email'])); $app->ispcmail->finish(); - $app->tpl->setVar("msg", $wb['pw_reset_act']); + if($send_result !== false) { + $app->tpl->setVar("msg", $wb['pw_reset_act']); + } else { + $app->tpl->setVar("error", $wb['pw_reset_error_smtp_connection']); + } } else { $app->tpl->setVar("error", $wb['pw_error']); } @@ -132,7 +135,6 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != ' $username = $client['username']; $app->db->query("UPDATE sys_user SET passwort = ?, lost_password_hash = '', lost_password_reqtime = NULL WHERE username = ?", $new_password_encrypted, $username); $app->db->query("UPDATE client SET password = ? WHERE username = ?", $new_password_encrypted, $username); - $app->tpl->setVar("message", $wb['pw_reset']); $app->uses('getconf,ispcmail'); $mail_config = $server_config_array['mail']; @@ -143,11 +145,17 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != ' $app->ispcmail->setSender($mail_config['admin_mail'], $mail_config['admin_name']); $app->ispcmail->setSubject($wb['pw_reset_mail_title']); $app->ispcmail->setMailText($wb['pw_reset_mail_msg'].$new_password); - $app->ispcmail->send(array($client['contact_name'] => $client['email'])); + $send_result = $app->ispcmail->send(array($client['contact_name'] => $client['email'])); $app->ispcmail->finish(); $app->plugin->raiseEvent('password_reset', true); - $app->tpl->setVar("msg", $wb['pw_reset']); + + if($send_result !== false) { + $app->tpl->setVar("msg", $wb['pw_reset']); + } else { + $app->tpl->setVar("error", $wb['pw_reset_error_smtp_connection']); + } + } else { $app->tpl->setVar("error", $wb['pw_error']); } diff --git a/interface/web/login/templates/index.htm b/interface/web/login/templates/index.htm index 9a75a66cbda5003c367ceda39aaa93d34c22a23c..e03e58f1f1451c0716e433f63ae557534f2137ed 100644 --- a/interface/web/login/templates/index.htm +++ b/interface/web/login/templates/index.htm @@ -4,7 +4,7 @@ <form accept-charset="UTF-8" role="form" method="post" action="index.php"> <fieldset> <div class="form-group"> - <input class="form-control" placeholder="{tmpl_var name='username_txt'}" name="username" id="username" type="text"> + <input class="form-control" placeholder="{tmpl_var name='username_txt'}" name="username" id="username" type="text" autofocus> </div> <div class="form-group"> <input class="form-control" placeholder="{tmpl_var name='password_txt'}" name="password" id="password" type="password" value=""> diff --git a/interface/web/login/templates/password_reset.htm b/interface/web/login/templates/password_reset.htm index 66faf490f420d2a6a577811ad3ee0fd02a640b81..49fa528834e2c9c81b091aae132855b044ce3e61 100644 --- a/interface/web/login/templates/password_reset.htm +++ b/interface/web/login/templates/password_reset.htm @@ -9,7 +9,7 @@ <form accept-charset="UTF-8" role="form" method="post" action="password_reset.php"> <fieldset> <div class="form-group"> - <input class="form-control" placeholder="{tmpl_var name='email_txt'}" name="email" id="email" type="text"> + <input class="form-control" placeholder="{tmpl_var name='email_txt'}" name="email" id="email" type="text" autofocus> </div> <div class="form-group"> <input class="form-control" placeholder="{tmpl_var name='username_txt'}" name="username" id="username" type="text"> diff --git a/interface/web/mail/ajax_get_json.php b/interface/web/mail/ajax_get_json.php index 2a1a7561677d8195e823e0ed487f8d71447d7c75..dfc9dc220c0b9ea5ff7d5c4c0c5ed90f666449fe 100644 --- a/interface/web/mail/ajax_get_json.php +++ b/interface/web/mail/ajax_get_json.php @@ -40,7 +40,11 @@ $domain_id = $_GET['domain_id']; if($type == 'create_dkim' && $domain_id != ''){ $dkim_public = $_GET['dkim_public']; $dkim_selector = $_GET['dkim_selector']; - $domain=@(is_numeric($domain_id))?$app->db->queryOneRecord("SELECT domain FROM domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'), $domain_id)['domain']:$domain_id; + $domain = $domain_id; + if(is_numeric($domain_id)) { + $temp = $app->db->queryOneRecord("SELECT domain FROM domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'), $domain_id); + $domain = $temp['domain']; + } $rec = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = ?", $domain); $server_id = $rec['server_id']; $maildomain = $rec['domain']; @@ -48,10 +52,11 @@ if($type == 'create_dkim' && $domain_id != ''){ $mail_config = $app->getconf->get_server_config($server_id, 'mail'); $dkim_strength = $app->functions->intval($mail_config['dkim_strength']); if ($dkim_strength=='') $dkim_strength = 2048; - + $rnd_val = $dkim_strength * 10; - exec('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null', $output, $result); - exec('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null', $privkey, $result); + $app->system->exec_safe('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null'); + $app->system->exec_safe('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null'); + $privkey = $app->system->last_exec_out(); unlink("../../temp/random-data.bin"); $dkim_private=''; foreach($privkey as $values) $dkim_private=$dkim_private.$values."\n"; @@ -75,12 +80,14 @@ if($type == 'create_dkim' && $domain_id != ''){ $selector = 'invalid domain or selector'; } unset($dkim_public); - exec('echo '.escapeshellarg($dkim_private).'|openssl rsa -pubout -outform PEM 2> /dev/null',$pubkey,$result); + $app->system->exec_safe('echo ?|openssl rsa -pubout -outform PEM 2> /dev/null', $dkim_private); + $pubkey = $app->system->last_exec_out(); foreach($pubkey as $values) $dkim_public=$dkim_public.$values."\n"; $selector = $dkim_selector; } else { unset($dkim_public); - exec('echo '.escapeshellarg($dkim_private).'|openssl rsa -pubout -outform PEM 2> /dev/null',$pubkey,$result); + $app->system->exec_safe('echo ?|openssl rsa -pubout -outform PEM 2> /dev/null', $dkim_private); + $pubkey = $app->system->last_exec_out(); foreach($pubkey as $values) $dkim_public=$dkim_public.$values."\n"; $selector = $dkim_selector; } @@ -106,7 +113,7 @@ header('Content-type: application/json'); echo $json; function validate_domain($domain) { - $regex = '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/'; + $regex = '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,63}$/'; if ( preg_match($regex, $domain) === 1 ) return true; else return false; } diff --git a/interface/web/mail/backup_stats.php b/interface/web/mail/backup_stats.php index 1317326573491aca4882b27dad7684bf1891ca1a..0bf0ceae0bbea619e8ba010a742ded1c985560dc 100644 --- a/interface/web/mail/backup_stats.php +++ b/interface/web/mail/backup_stats.php @@ -9,7 +9,7 @@ $list_def_file = 'list/backup_stats.list.php'; ******************************************/ //* Check permissions for module -$app->auth->check_module_permissions('sites'); +$app->auth->check_module_permissions('mail'); $app->load('listform_actions','functions'); diff --git a/interface/web/mail/form/mail_alias.tform.php b/interface/web/mail/form/mail_alias.tform.php index a004203622d3c6df0e6b9186a1f8829fa0ee0e66..9434ba3eecc080c588fc8527974805bf0ba73c44 100644 --- a/interface/web/mail/form/mail_alias.tform.php +++ b/interface/web/mail/form/mail_alias.tform.php @@ -137,7 +137,7 @@ $form["tabs"]['alias'] = array ( 'value' => array(1 => 'y', 0 => 'n') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_aliasdomain.tform.php b/interface/web/mail/form/mail_aliasdomain.tform.php index 66db01e5aa51c5823670826acae8398372239036..a0d10249898695f4d3b8dd124684f167adb4045f 100644 --- a/interface/web/mail/form/mail_aliasdomain.tform.php +++ b/interface/web/mail/form/mail_aliasdomain.tform.php @@ -128,7 +128,7 @@ $form["tabs"]['alias'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_blacklist.tform.php b/interface/web/mail/form/mail_blacklist.tform.php index 8b268147fb0a18301d33da51722729f7585187c4..957f35b95bfad2bb6263b79afd4f3e4f62104941 100644 --- a/interface/web/mail/form/mail_blacklist.tform.php +++ b/interface/web/mail/form/mail_blacklist.tform.php @@ -107,7 +107,7 @@ $form["tabs"]['blacklist'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_content_filter.tform.php b/interface/web/mail/form/mail_content_filter.tform.php index 550ae6b5d695743184d99859790a52445eb222f3..88f16298f75fabfd4af8407b4eedd9b7a9b44919 100644 --- a/interface/web/mail/form/mail_content_filter.tform.php +++ b/interface/web/mail/form/mail_content_filter.tform.php @@ -107,7 +107,7 @@ $form["tabs"]['filter'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_domain.tform.php b/interface/web/mail/form/mail_domain.tform.php index 06fb0906c34e693f994c088274c03b265b61abb7..5c8fa0185ac9bf0364315836152b1e7e87ff0548 100644 --- a/interface/web/mail/form/mail_domain.tform.php +++ b/interface/web/mail/form/mail_domain.tform.php @@ -143,7 +143,7 @@ $form["tabs"]['domain'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_domain_catchall.tform.php b/interface/web/mail/form/mail_domain_catchall.tform.php index 8d0c0296bdcbe756479d3a127316b6fc4702178f..c43aeb333902a9abe52bb1f7e0f1c5da0d8aa009 100644 --- a/interface/web/mail/form/mail_domain_catchall.tform.php +++ b/interface/web/mail/form/mail_domain_catchall.tform.php @@ -86,7 +86,7 @@ $form["tabs"]['catchall'] = array ( 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'domain_error_unique'), 2 => array ( 'type' => 'REGEX', - 'regex' => '/^\@[\w\.\-]{2,255}\.[a-zA-Z\-]{2,30}$/', + 'regex' => '/^\@[\w\.\-]{2,255}\.[a-zA-Z\-]{2,63}$/', 'errmsg'=> 'domain_error_regex'), ), 'default' => '', @@ -113,7 +113,7 @@ $form["tabs"]['catchall'] = array ( 'valuefield' => 'email' ), */ - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', + 'validators' => array ( 0 => array ( 'type' => 'ISEMAILADDRESS', 'errmsg'=> 'destination_error_isemail'), ), 'value' => '', @@ -131,8 +131,14 @@ $form["tabs"]['catchall'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'greylisting' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(1 => 'y', 0 => 'n') + ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_forward.tform.php b/interface/web/mail/form/mail_forward.tform.php index 3c902b4221f717c456133c748238c8e1d77304cd..003e678455ec6929921bd333f31e9546c0600fd2 100644 --- a/interface/web/mail/form/mail_forward.tform.php +++ b/interface/web/mail/form/mail_forward.tform.php @@ -133,7 +133,7 @@ $form["tabs"]['forward'] = array ( 'value' => array(1 => 'y', 0 => 'n') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_get.tform.php b/interface/web/mail/form/mail_get.tform.php index 9f7de76e013273ad615082307b38f2b518c4a09b..9082c368664a2df1598c4b69e78e1bc1a94d6ea4 100644 --- a/interface/web/mail/form/mail_get.tform.php +++ b/interface/web/mail/form/mail_get.tform.php @@ -173,7 +173,7 @@ $form["tabs"]['mailget'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_relay_recipient.tform.php b/interface/web/mail/form/mail_relay_recipient.tform.php index 34c23861e47fbfd5f8b01fded64c9f62f643c4b4..e3d8faa1edc8f83bdbd58358be28c06b90383405 100644 --- a/interface/web/mail/form/mail_relay_recipient.tform.php +++ b/interface/web/mail/form/mail_relay_recipient.tform.php @@ -107,7 +107,7 @@ $form["tabs"]['relay_recipient'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_spamfilter.tform.php b/interface/web/mail/form/mail_spamfilter.tform.php index fb9a3c311be5679cc1f2d963cf4e16d00da2ceca..2890cfb8b634f9531631f09010bb33d6938e00fb 100644 --- a/interface/web/mail/form/mail_spamfilter.tform.php +++ b/interface/web/mail/form/mail_spamfilter.tform.php @@ -114,7 +114,7 @@ $form["tabs"]['spamfilter'] = array ( 1 => array( 'event' => 'SAVE', 'type' => 'STRIPNL') ), - 'default' => '***SPAM***', + 'default' => '***SPAM*** ', 'value' => '', 'width' => '30', 'maxlength' => '255' @@ -145,7 +145,7 @@ $form["tabs"]['spamfilter'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_transport.tform.php b/interface/web/mail/form/mail_transport.tform.php index f55541346ce171beba72964a13499e4a248c3722..b40ad86e8ad15a590f0f57efcd961fa272020776 100644 --- a/interface/web/mail/form/mail_transport.tform.php +++ b/interface/web/mail/form/mail_transport.tform.php @@ -122,7 +122,7 @@ $form["tabs"]['transport'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php index 631c507f900be8866843cb02c9d2bb509fcea648..67330f465860f0c129ea319c1ee8acdbd1429761 100644 --- a/interface/web/mail/form/mail_user.tform.php +++ b/interface/web/mail/form/mail_user.tform.php @@ -181,13 +181,13 @@ $form["tabs"]['mailuser'] = array( 'type' => 'TOLOWER') ), 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,}$/i', + 'regex' => '/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,63}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,63}){0,}$/i', 'errmsg'=> 'cc_error_isemail'), ), 'default' => '', 'value' => '', 'width' => '30', - 'maxlength' => '255' + 'maxlength' => '65535' ), 'sender_cc' => array ( 'datatype' => 'VARCHAR', @@ -199,14 +199,15 @@ $form["tabs"]['mailuser'] = array( 2 => array( 'event' => 'SAVE', 'type' => 'TOLOWER') ), - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex'=>'/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,}$/i', + 'validators' => array ( 0 => array ( 'type' => 'ISEMAILADDRESS', + 'allowempty' => 'y', 'errmsg'=> 'sender_cc_error_isemail'), ), 'default' => '', 'value' => '', 'width' => '30', - 'maxlength' => '255' + 'maxlength' => '255', + 'searchable' => 2 ), 'maildir' => array ( 'datatype' => 'VARCHAR', @@ -292,6 +293,12 @@ $form["tabs"]['mailuser'] = array( 'default' => 'n', 'value' => array(1 => 'y', 0 => 'n') ), + 'disabledeliver' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(1 => 'y', 0 => 'n') + ), 'disableimap' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -360,20 +367,16 @@ if ($global_config['mail']['mailbox_show_autoresponder_tab'] === 'y') { 'autoresponder_start_date' => array ( 'datatype' => 'DATETIME', 'formtype' => 'DATETIME', - 'validators'=> array ( + 'validators'=> array ( 0 => array ( 'type' => 'ISDATETIME', 'allowempty' => 'y', 'errmsg'=> 'autoresponder_start_date_is_no_date'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'start_date', - 'errmsg'=> 'autoresponder_start_date_is_required'), ) ), 'autoresponder_end_date' => array ( 'datatype' => 'DATETIME', 'formtype' => 'DATETIME', - 'validators'=> array ( + 'validators'=> array ( 0 => array ( 'type' => 'ISDATETIME', 'allowempty' => 'y', 'errmsg'=> 'autoresponder_end_date_is_no_date'), @@ -402,9 +405,23 @@ if ($global_config['mail']['mailbox_show_mail_filter_tab'] === 'y') { //################################# 'move_junk' => array ( 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') + 'formtype' => 'SELECT', + 'default' => 'y', + 'value' => array('y' => 'move_junk_y_txt', 'a' => 'move_junk_a_txt', 'n' => 'move_junk_n_txt'), + ), + 'purge_trash_days' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( + ), + 'default' => '0', + ), + 'purge_junk_days' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( + ), + 'default' => '0', ), //################################# // END Datatable fields @@ -469,10 +486,10 @@ if ($backup_available) { 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10') + 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '15' => '15', '20' => '20', '30' => '30') ), ################################## - # ENDE Datatable fields + # END Datatable fields ################################## ), 'plugins' => array ( diff --git a/interface/web/mail/form/mail_user_filter.tform.php b/interface/web/mail/form/mail_user_filter.tform.php index becb09351e869b3e4e3ccfd73ab635a1de40beff..b1370ecaa1349548c450bcfdffdf479a53bf41f6 100644 --- a/interface/web/mail/form/mail_user_filter.tform.php +++ b/interface/web/mail/form/mail_user_filter.tform.php @@ -88,14 +88,14 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt') + 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'List-Id'=>'list_id_txt', 'Header' => 'header_txt', 'Size' => 'size_over_txt') ), 'op' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', //'value' => array('contains'=>'contains_txt','is' => 'Is','begins'=>'Begins with','ends'=>'Ends with') - 'value' => array('contains'=>'contains_txt', 'is' => 'is_txt', 'begins'=>'begins_with_txt', 'ends'=>'ends_with_txt') + 'value' => array('contains'=>'contains_txt', 'is' => 'is_txt', 'begins'=>'begins_with_txt', 'ends'=>'ends_with_txt', 'localpart' => 'localpart_txt', 'domain' => 'domain_txt') ), 'searchterm' => array ( 'datatype' => 'VARCHAR', @@ -116,7 +116,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('move' => 'move_to_txt', 'delete'=>'delete_txt') + 'value' => array('move' => 'move_to_txt', 'delete'=>'delete_txt', 'keep' => 'keep_txt', 'reject' => 'reject_txt') ), 'target' => array ( 'datatype' => 'VARCHAR', @@ -137,7 +137,7 @@ $form["tabs"]['filter'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/mail_whitelist.tform.php b/interface/web/mail/form/mail_whitelist.tform.php index 00fc971647ef9c87fea815e4f2fb958d03f182c0..edd32483712bedea9b430d2f5cba5de346a73fb7 100644 --- a/interface/web/mail/form/mail_whitelist.tform.php +++ b/interface/web/mail/form/mail_whitelist.tform.php @@ -113,7 +113,7 @@ $form["tabs"]['whitelist'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/spamfilter_blacklist.tform.php b/interface/web/mail/form/spamfilter_blacklist.tform.php index 3514eed4344fa049149bc32ec96d9dd40addffb9..7d212d9317303a894e9150c54bb8a540a3f5bde6 100644 --- a/interface/web/mail/form/spamfilter_blacklist.tform.php +++ b/interface/web/mail/form/spamfilter_blacklist.tform.php @@ -127,7 +127,7 @@ $form["tabs"]['blacklist'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/spamfilter_config.tform.php b/interface/web/mail/form/spamfilter_config.tform.php index 39c1b35621575c1f7c1f4d5e8f0ba20e70176e83..2217cbbd314c35b36d7fa1307421518df587b5a0 100644 --- a/interface/web/mail/form/spamfilter_config.tform.php +++ b/interface/web/mail/form/spamfilter_config.tform.php @@ -121,7 +121,7 @@ $form["tabs"]['server'] = array ( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -247,7 +247,7 @@ $form["tabs"]['mail'] = array ( 'maxlength' => '15' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -272,7 +272,7 @@ $form["tabs"]['getmail'] = array ( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/spamfilter_policy.tform.php b/interface/web/mail/form/spamfilter_policy.tform.php index 31e8b8092a0833023f677dc7ea9a6ccef7e40a0a..ef777a8884e079575f46b5a10df10a1e3a1ac6c6 100644 --- a/interface/web/mail/form/spamfilter_policy.tform.php +++ b/interface/web/mail/form/spamfilter_policy.tform.php @@ -87,6 +87,21 @@ $form["tabs"]['policy'] = array ( 'default' => 'N', 'value' => array('N' => 'No', 'Y' => 'Yes') ), + //################################# + // END Datatable fields + //################################# + ) +); + + +$form["tabs"]['amavis'] = array ( + 'title' => "Amavis", + 'width' => 100, + 'template' => "templates/spamfilter_amavis_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# 'banned_files_lover' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', @@ -117,21 +132,6 @@ $form["tabs"]['policy'] = array ( 'default' => 'N', 'value' => array('N' => 'No', 'Y' => 'Yes') ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['quarantine'] = array ( - 'title' => "Quarantine", - 'width' => 100, - 'template' => "templates/spamfilter_quarantine_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# 'virus_quarantine_to' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -216,20 +216,6 @@ $form["tabs"]['quarantine'] = array ( 'width' => '30', 'maxlength' => '255' ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['taglevel'] = array ( - 'title' => "Tag-Level", - 'width' => 100, - 'template' => "templates/spamfilter_taglevel_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# 'spam_tag_level' => array ( 'datatype' => 'DOUBLE', 'formtype' => 'TEXT', @@ -304,21 +290,6 @@ $form["tabs"]['taglevel'] = array ( 'width' => '30', 'maxlength' => '255' ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['other'] = array ( - 'title' => "Other", - 'width' => 100, - 'template' => "templates/spamfilter_other_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# 'addr_extension_virus' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -486,11 +457,52 @@ $form["tabs"]['other'] = array ( 'width' => '30', 'maxlength' => '255' ), - //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); -?> +$form["tabs"]['rspamd'] = array ( + 'title' => "Rspamd", + 'width' => 100, + 'template' => "templates/spamfilter_rspamd_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'rspamd_spam_greylisting_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'rspamd_spam_tag_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'rspamd_spam_tag_method' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'rewrite_subject', + 'value' => array('add_header' => $app->lng('add_header_txt'), 'rewrite_subject' => $app->lng('rewrite_subject_txt')) + ), + 'rspamd_spam_kill_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + //################################# + // END Datatable fields + //################################# + ) +); diff --git a/interface/web/mail/form/spamfilter_users.tform.php b/interface/web/mail/form/spamfilter_users.tform.php index 8ef3c4e131872ca1bba7cc0458ca133d71d4e870..65f196b9879be55f37d170b3a447f8395f0ec946 100644 --- a/interface/web/mail/form/spamfilter_users.tform.php +++ b/interface/web/mail/form/spamfilter_users.tform.php @@ -133,7 +133,7 @@ $form["tabs"]['users'] = array ( ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/spamfilter_whitelist.tform.php b/interface/web/mail/form/spamfilter_whitelist.tform.php index f0802fa4912c2e8f298f221e3387470f963bc0f8..202a3c6810a9d48ef2e1c73074bba182ec88511c 100644 --- a/interface/web/mail/form/spamfilter_whitelist.tform.php +++ b/interface/web/mail/form/spamfilter_whitelist.tform.php @@ -127,7 +127,7 @@ $form["tabs"]['whitelist'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mail/form/xmpp_domain.tform.php b/interface/web/mail/form/xmpp_domain.tform.php index bbe694f9fd389fe24d741fb02c739e3a1b40362d..c703b0bea39b43c60df6234488dc994262a1b5d6 100644 --- a/interface/web/mail/form/xmpp_domain.tform.php +++ b/interface/web/mail/form/xmpp_domain.tform.php @@ -103,7 +103,7 @@ $form["tabs"]['domain'] = array ( 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'domain_error_unique'), 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,63}$/', 'errmsg'=> 'domain_error_regex'), ), 'default' => '', diff --git a/interface/web/mail/lib/lang/ar.lng b/interface/web/mail/lib/lang/ar.lng index e12b05e27821ca1d7c92da82a9ce411396bf041f..3d15a518a14f6aafd76f24677f0792d27922caef 100644 --- a/interface/web/mail/lib/lang/ar.lng +++ b/interface/web/mail/lib/lang/ar.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Global Filters'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng index af8e42f24b43389d54a12266d528a9ef6372bd08..55cc10358e1c6ddd5e81834034dd316efad24b5a 100644 --- a/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng @@ -4,8 +4,9 @@ $wb['destination_txt'] = 'Destination'; $wb['active_txt'] = 'Active'; $wb['domain_error_unique'] = 'There is already a Catchall record for this domain.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; -$wb['domain_error_regex'] = 'Invalid domain name od domain contains invalid characters.'; +$wb['domain_error_regex'] = 'Invalid domain name or domain contains invalid characters.'; $wb['limit_mailcatchall_txt'] = 'The max. number of email catchall accounts for your account is reached.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ar_mail_user.lng b/interface/web/mail/lib/lang/ar_mail_user.lng index c68becf335a5e2796d12f2c2589da6022d9900a5..829de6a749ee61bdebeb6f6bb27e8e37fea648cf 100644 --- a/interface/web/mail/lib/lang/ar_mail_user.lng +++ b/interface/web/mail/lib/lang/ar_mail_user.lng @@ -11,7 +11,7 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; $wb['error_no_pwd'] = 'Password is empty.'; $wb['quota_error_isint'] = 'Mailbox size must be a number.'; @@ -20,10 +20,11 @@ $wb['server_id_txt'] = 'Aerver_id'; $wb['password_txt'] = 'Password'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Enable Receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Enable Access'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'The max. number of mailboxes for your account is reached.'; $wb['limit_mailquota_txt'] = 'The max space for mailboxes is reached. The max. available space in MB is'; $wb['disableimap_txt'] = 'Disable IMAP'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'Disable POP3'; $wb['duplicate_alias_or_forward_txt'] = 'There is already an alias or forwrd with this email address.'; $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -56,10 +60,17 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/ar_mail_user_filter.lng b/interface/web/mail/lib/lang/ar_mail_user_filter.lng index b5d31b589cc1a7b118c1f9516a9d895d4f3037bb..9a15472e88734a485d954d89d58944a8a72a4516 100644 --- a/interface/web/mail/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ar_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/ar_mail_user_list.lng b/interface/web/mail/lib/lang/ar_mail_user_list.lng index 0bb531f78596ebc6754618202dd477a7f65aebdd..bf905ed40ac64cd90ebd0ba86e38559c2ed64c8f 100644 --- a/interface/web/mail/lib/lang/ar_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ar_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ar_spamfilter_policy.lng b/interface/web/mail/lib/lang/ar_spamfilter_policy.lng index e876330a68c7c365b12bf9a3f3cf6b5a652a6093..683b378c21e0eebc93556c6914165bc708521c02 100644 --- a/interface/web/mail/lib/lang/ar_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ar_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ar_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ar_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/bg.lng b/interface/web/mail/lib/lang/bg.lng index a1299f4472da747979ee1231b57a193761e113ba..c117c863a2d6bf4cc86bc55ed66bee0f0331d7c5 100644 --- a/interface/web/mail/lib/lang/bg.lng +++ b/interface/web/mail/lib/lang/bg.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Глобални филтри'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng b/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng index 5db26b11a1eadd45e0132c6916b0b6697eb99401..06f1f01e11708e8921c96e39290bc03d8f6fa33d 100644 --- a/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Грешен домейн или непозволе $wb['limit_mailcatchall_txt'] = 'МакÑималниÑÑ‚ брой запиÑи за catchall в твоÑÑ‚ акоунт е доÑтигнат.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_user.lng b/interface/web/mail/lib/lang/bg_mail_user.lng index 000377077b5a9bb1865f1fb29e426c4934fb2481..126ec603d22d3d754816487e7881e22ff20ed77d 100644 --- a/interface/web/mail/lib/lang/bg_mail_user.lng +++ b/interface/web/mail/lib/lang/bg_mail_user.lng @@ -7,7 +7,7 @@ $wb['active_txt'] = 'Ðктивен'; $wb['email_error_isemail'] = 'Формата на емайла е грешен.'; $wb['email_error_unique'] = 'ПовтарÑш Ñе емайл адреÑ.'; $wb['autoresponder_text_txt'] = 'ТекÑ'; -$wb['autoresponder_txt'] = 'Ðвтоматичен отговор'; +$wb['autoresponder_txt'] = 'Ðвтоматичен отгово'; $wb['no_domain_perm'] = 'ÐÑмаш права за този домейн.'; $wb['error_no_pwd'] = 'Полето Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð° е празно.'; $wb['quota_error_isint'] = 'Големина на пощенÑката ÐºÑƒÑ‚Ð¸Ñ Ñ‚Ñ€Ñбва да е чиÑло'; @@ -16,10 +16,11 @@ $wb['server_id_txt'] = 'server_id'; $wb['password_txt'] = 'парола'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Разреши получаване'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Разреши доÑтъп'; $wb['policy_txt'] = 'Спам филтър'; -$wb['no_policy'] = '- забранен -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'ДоÑтигнат е макÑималниÑÑ‚ брой на пощенÑките кутии за твоÑÑ‚ профил.'; $wb['limit_mailquota_txt'] = 'МакÑималното отделено мÑÑто за твоÑта ÐºÑƒÑ‚Ð¸Ñ Ðµ доÑтигнато. МакÑималното позволено мÑÑто в МБ е '; $wb['disableimap_txt'] = 'Забрани IMAP'; @@ -31,6 +32,9 @@ $wb['autoresponder_start_date_ispast'] = 'Датата на Ñтарта нем $wb['autoresponder_end_date_txt'] = 'Край на'; $wb['autoresponder_end_date_isgreater'] = 'датата на ÐºÑ€Ð°Ñ Ð½ÐµÐ¼Ð¾Ð¶Ðµ да бъде преди датата за Ñтарт.'; $wb['move_junk_txt'] = 'ПремеÑти СПÐМ пощата в ДиректориÑта Боклуци'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Реално име '; $wb['name_optional_txt'] = '(По желание)'; $wb['autoresponder_active'] = 'Разреши автоматичен отговор'; @@ -50,7 +54,10 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; @@ -60,6 +67,10 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_user_list.lng b/interface/web/mail/lib/lang/bg_mail_user_list.lng index 9ccdb51124f5467d79197742c30b2c1036bb4416..f761ea4f2384fe7d77fc487ed46e805acff9b702 100644 --- a/interface/web/mail/lib/lang/bg_mail_user_list.lng +++ b/interface/web/mail/lib/lang/bg_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'ИÑтинÑко име'; $wb['login_txt'] = 'Вход'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/bg_spamfilter_policy.lng b/interface/web/mail/lib/lang/bg_spamfilter_policy.lng index e876330a68c7c365b12bf9a3f3cf6b5a652a6093..683b378c21e0eebc93556c6914165bc708521c02 100644 --- a/interface/web/mail/lib/lang/bg_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/bg_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/bg_user_quota_stats_list.lng b/interface/web/mail/lib/lang/bg_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/br.lng b/interface/web/mail/lib/lang/br.lng index 3ae45b5db0c1c101eb97653392d025b27fa2d361..77483426122e7ec99a4b746bf78d35b24a5865a4 100644 --- a/interface/web/mail/lib/lang/br.lng +++ b/interface/web/mail/lib/lang/br.lng @@ -1,48 +1,56 @@ <?php -$wb['Email Alias'] = 'Apelidos de e-mail'; -$wb['Email Blacklist'] = 'Lista negra'; -$wb['Blacklist'] = 'Lista negra'; -$wb['Mail Content Filter'] = 'Filtro de conteúdo'; +$wb['Email Alias'] = 'Alias de e-mail'; +$wb['Email Blacklist'] = 'Lista Negra'; +$wb['Blacklist'] = 'Lista Negra'; +$wb['Mail Content Filter'] = 'Filtro de conteúdo de e-mail'; $wb['Filter'] = 'Filtro'; -$wb['Mail Domain'] = 'DomÃnio'; -$wb['Domain'] = 'DomÃnios'; -$wb['Email Catchall'] = 'Contas cata tudo'; -$wb['Email Forward'] = 'Encaminhamento'; +$wb['Mail Domain'] = 'DomÃnio de e-mail'; +$wb['Domain'] = 'DomÃnio'; +$wb['Email Catchall'] = 'Contas cata-tudo'; +$wb['Email Forward'] = 'Encaminhamento de e-mail'; $wb['Get Email'] = 'Busca de e-mail'; $wb['Spamfilter'] = 'Filtro anti-spam'; -$wb['Email Routing'] = 'Transportes'; +$wb['Email Routing'] = 'Rotas de e-mail'; +$wb['Mailing List'] = 'Listas de e-mail'; $wb['Email transport'] = 'Transportes'; $wb['Mailbox'] = 'Contas de e-mail'; -$wb['Autoresponder'] = 'Resposta automática'; -$wb['Mail Filter'] = 'Filtros'; +$wb['Autoresponder'] = 'Auto-resposta'; +$wb['Mail Filter'] = 'Filtro de e-mail'; $wb['Custom Rules'] = 'Regras personalizadas'; -$wb['Email filter'] = 'Filtro'; -$wb['Email Whitelist'] = 'Lista branca'; -$wb['Whitelist'] = 'Lista branca'; -$wb['Spamfilter blacklist'] = 'Filtro anti-spam (lista negra)'; -$wb['Spamfilter Config'] = 'Configuração do filtro anti-spam'; -$wb['Spamfilter policy'] = 'PolÃticas de filtro anti-spam'; +$wb['Email filter'] = 'Filtro de e-mail'; +$wb['Email Whitelist'] = 'Lista Branca de e-mails'; +$wb['Whitelist'] = 'Lista Branca'; +$wb['Spamfilter blacklist'] = 'Filtros anti-spam - lista negra'; +$wb['Blacklist'] = 'Lista Negra'; +$wb['Spamfilter Config'] = 'Configurações de filtros anti-spam'; +$wb['Servidor'] = 'Servidor'; +$wb['Spamfilter policy'] = 'PolÃticas de filtros anti-spam'; $wb['Policy'] = 'PolÃtica'; $wb['Quarantine'] = 'Quarentena'; $wb['Tag-Level'] = 'NÃvel de marcação'; $wb['Other'] = 'Outros'; -$wb['Spamfilter users'] = 'Usuários de filtro anti-spam'; -$wb['Users'] = 'Usuários'; -$wb['Spamfilter Whitelist'] = 'Filtro anti-spam (lista branca)'; -$wb['Email'] = 'e-mail'; -$wb['Email Mailbox'] = 'Contas de e-mail'; +$wb['Spamfilter users'] = 'Contas de e-mail para filtros anti-spam'; +$wb['Users'] = 'Contas de e-mail'; +$wb['Spamfilter Whitelist'] = 'Filtros anti-spam - lista branca'; +$wb['Whitelist'] = 'Lista Branca'; +$wb['Email'] = 'e-Mail'; +$wb['Email Mailbox'] = 'Conta de e-mail'; $wb['Email Accounts'] = 'Contas de e-mail'; -$wb['User / Domain'] = 'Usuário/domÃnio'; -$wb['Server Settings'] = 'Configurações do servidor'; -$wb['Fetchmail'] = 'Contas de busca'; -$wb['Mailbox traffic'] = 'Tráfego'; +$wb['User / Domain'] = 'Usuário/DomÃnio'; +$wb['Server Settings'] = 'Configurações do Servidor'; +$wb['Spamfilter'] = 'Filtros anti-spam'; +$wb['Fetchmail'] = 'Busca de e-mails'; +$wb['XMPP Domain'] = 'DomÃnios xmpp'; +$wb['XMPP Account'] = 'Contas xmpp'; +$wb['Mailbox traffic'] = 'Tráfego de e-mails'; $wb['Statistics'] = 'EstatÃsticas'; -$wb['Postfix Whitelist'] = 'Postfix (lista branca)'; -$wb['Postfix Blacklist'] = 'Postfix (lista negra)'; -$wb['Content Filter'] = 'Filtros de conteúdo'; -$wb['Global Filters'] = 'Filtros globais'; -$wb['Domain Alias'] = 'Apelidos de domÃnio'; +$wb['Backup Stats'] = 'EstatÃsticas de backup'; +$wb['Postfix Whitelist'] = 'Lista Branca do Postfix'; +$wb['Postfix Blacklist'] = 'Lista Negra do Postfix'; +$wb['Content Filter'] = 'Filtro de Conteúdo'; +$wb['Global Filters'] = 'Filtros Globais'; +$wb['Domain Alias'] = 'Alias de domÃnio'; $wb['Relay Recipients'] = 'Destinatários de retransmissão'; -$wb['Mailbox quota'] = 'Cota para contas de e-mails'; -$wb['Server'] = 'Servidor'; -?> +$wb['Mailbox quota'] = 'Cota da conta de e-mail'; +$wb['add_header_txt'] = 'Cabeçalho (adicionar "X-Spam: Yes")'; +$wb['rewrite_subject_txt'] = 'Assunto (adicionar "***SPAM***" no inÃcio)'; diff --git a/interface/web/mail/lib/lang/br_backup_stats_list.lng b/interface/web/mail/lib/lang/br_backup_stats_list.lng index 9d078177121655157423d9747625715849760ef5..482e9132003ec55606af23a18c4e7b31ad5ad968 100644 --- a/interface/web/mail/lib/lang/br_backup_stats_list.lng +++ b/interface/web/mail/lib/lang/br_backup_stats_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'EstatÃsticas de backup'; +$wb['list_head_txt'] = 'Backup de EstatÃsticas'; $wb['active_txt'] = 'Ativo'; -$wb['domain_txt'] = 'e-mail'; -$wb['backup_count_txt'] = 'Contador de backup'; +$wb['domain_txt'] = 'DomÃnio'; +$wb['backup_count_txt'] = 'Contador de backups'; $wb['backup_server_txt'] = 'Servidor'; -$wb['backup_interval_txt'] = 'Intervalo/contador'; -$wb['backup_size_txt'] = 'Tamanho'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_size_txt'] = 'Tamanho do backup'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_alias.lng b/interface/web/mail/lib/lang/br_mail_alias.lng index 993dd71d2a0e7d35b3d2ca589ef51a9b2693e320..636195718062c6c89109f1e457f36069a1535a71 100644 --- a/interface/web/mail/lib/lang/br_mail_alias.lng +++ b/interface/web/mail/lib/lang/br_mail_alias.lng @@ -1,17 +1,17 @@ <?php -$wb['email_txt'] = 'e-mail'; +$wb['email_txt'] = 'Alias de e-mail'; $wb['destination_txt'] = 'Destino'; $wb['active_txt'] = 'Ativo'; $wb['email_error_isemail'] = 'Endereço de e-mail é inválido.'; $wb['email_error_unique'] = 'Endereço de e-mail duplicado.'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; -$wb['destination_error_isemail'] = 'Endereço de destino inválido'; -$wb['limit_mailalias_txt'] = 'O limite de apelidos de domÃnio para esta conta foi alcançado.'; -$wb['duplicate_mailbox_txt'] = 'Já existe uma conta de e-mail com este endereço.'; +$wb['destination_error_isemail'] = 'Endereço de e-mail de destino é inválido.'; +$wb['limit_mailalias_txt'] = 'O limite de alias de e-mail para esta conta foi alcançado.'; +$wb['duplicate_mailbox_txt'] = 'Já existe um endereço de e-mail idêntico.'; $wb['domain_txt'] = 'DomÃnio'; -$wb['duplicate_email_alias_txt'] = 'Este apelido de e-mail já existe.'; -$wb['source_txt'] = 'Apelido'; -$wb['greylisting_txt'] = 'Habilitar greylist'; +$wb['duplicate_email_alias_txt'] = 'Este alias de e-mail já existe.'; +$wb['source_txt'] = 'Alias'; $wb['send_as_txt'] = 'Enviar como'; -$wb['send_as_exp'] = 'Permite o alvo enviar e-mails usando este endereço como origem'; +$wb['send_as_exp'] = 'Permitir o destino enviar e-mails usando este alias como origem'; +$wb['greylisting_txt'] = 'Habilitar greylist'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_alias_list.lng b/interface/web/mail/lib/lang/br_mail_alias_list.lng index 69fb77a779c9f0bbeafa56ac660bd986a12a879c..5e96f0fb303640c12f6642cf7ce6c9e62299382d 100644 --- a/interface/web/mail/lib/lang/br_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/br_mail_alias_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Apelidos de e-mail'; +$wb['list_head_txt'] = 'Alias de e-mail'; $wb['active_txt'] = 'Ativo'; -$wb['source_txt'] = 'origem'; +$wb['source_txt'] = 'Origem'; $wb['destination_txt'] = 'Destino'; -$wb['email_txt'] = 'e-mail'; -$wb['add_new_record_txt'] = 'Adicionar novo apelido'; +$wb['email_txt'] = 'e-Mail'; +$wb['add_new_record_txt'] = 'Adicionar novo alias de e-mail'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_aliasdomain.lng b/interface/web/mail/lib/lang/br_mail_aliasdomain.lng index 68986f536ee8bff0f678240b611967f24f6e2d78..a0f4e5067e578b2e3b3916efa39e5df99a71ce5d 100644 --- a/interface/web/mail/lib/lang/br_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/br_mail_aliasdomain.lng @@ -3,9 +3,9 @@ $wb['source_txt'] = 'Origem'; $wb['destination_txt'] = 'Destino'; $wb['active_txt'] = 'Ativo'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; -$wb['limit_mailaliasdomain_txt'] = 'O limite de apelidos de domÃnios para esta conta foi alcançado.'; +$wb['limit_mailaliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; $wb['source_destination_identical_txt'] = 'Origem e destino são os mesmos.'; -$wb['source_error_empty'] = 'Origem está em branco.'; -$wb['source_error_unique'] = 'Origem duplicada.'; -$wb['source_error_regex'] = 'Origem inválida.'; +$wb['source_error_empty'] = 'O domÃnio de origem está em branco.'; +$wb['source_error_unique'] = 'DomÃnio de origem duplicado.'; +$wb['source_error_regex'] = 'DomÃnio de origem é inválido.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng index 4849c3cb6b742facb01f17b443068cb7373dd04f..ddf1ea0a96bda75f53e48d6e85392491c37a5ecb 100644 --- a/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng @@ -1,7 +1,8 @@ <?php -$wb['list_head_txt'] = 'Apelido de domÃnio'; +$wb['list_head_txt'] = 'Alias de domÃnio'; $wb['active_txt'] = 'Ativo'; $wb['source_txt'] = 'Origem'; $wb['destination_txt'] = 'Destino'; -$wb['add_new_record_txt'] = 'Adicionar novo apelido'; +$wb['source_txt'] = 'Origem'; +$wb['add_new_record_txt'] = 'Adicionar novo alias de domÃnio'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_backup_list.lng b/interface/web/mail/lib/lang/br_mail_backup_list.lng index 8ef31a0769aac843d4ed56f08dcf70461c452579..b8e4f82300fb73a2cc2f9850a9b2283cf4591b0b 100644 --- a/interface/web/mail/lib/lang/br_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/br_mail_backup_list.lng @@ -3,14 +3,14 @@ $wb['list_head_txt'] = 'Backups existentes'; $wb['date_txt'] = 'Data'; $wb['backup_type_txt'] = 'Tipo'; $wb['filename_txt'] = 'Arquivo de backup'; -$wb['restore_backup_txt'] = 'Restaurar backup'; -$wb['restore_info_txt'] = 'Restauração do backup iniciada. Esta ação poderá levar vários minutos para ser concluÃda. Aguarde.'; -$wb['restore_confirm_txt'] = 'A restauração do backup reescreverá os arquivos existentes das suas caixas postais. Tem certeza que deseja restaurar este backup?'; -$wb['download_pending_txt'] = 'Já existe um download deste backup em execução.'; -$wb['restore_pending_txt'] = 'Já existe uma restauração deste backup em execução.'; -$wb['delete_backup_txt'] = 'Remover backup'; -$wb['delete_info_txt'] = 'Remoção do backup iniciada. Esta ação poderá levar vários minutos para ser concluÃda. Aguarde.'; -$wb['delete_confirm_txt'] = 'Tem certeza que deseja remover este backup?'; -$wb['delete_pending_txt'] = 'Já existe uma remoção deste backup em execução.'; -$wb['filesize_txt'] = 'Tamanho'; +$wb['restore_backup_txt'] = 'Restaurar'; +$wb['restore_info_txt'] = 'A restauração do backup está em andamento. Esta ação demora vários minutos para concluir.'; +$wb['restore_confirm_txt'] = 'A restauração do backup pode sobrescrever arquivos das contas de e-mail. Você tem certeza que deseja restaurar este backup?'; +$wb['download_pending_txt'] = 'Já existe um download de backup em andamento.'; +$wb['restore_pending_txt'] = 'Já existe uma restauração de backup em andamento.'; +$wb['delete_backup_txt'] = 'Remover Backup'; +$wb['delete_info_txt'] = 'A remoção do backup está em andamento. Esta ação demora vários minutos para concluir.'; +$wb['delete_confirm_txt'] = 'Deseja remover este backup?'; +$wb['delete_pending_txt'] = 'Já existe uma remoção de backup em andamento.'; +$wb['filesize_txt'] = 'Tamanho do arquivo'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_blacklist.lng b/interface/web/mail/lib/lang/br_mail_blacklist.lng index 4c52e77d23c0807962afd79eb20b2211bd08e14c..14c323c3420a4429d5de83543f1aaefd5384dc93 100644 --- a/interface/web/mail/lib/lang/br_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/br_mail_blacklist.lng @@ -1,9 +1,9 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['source_txt'] = 'Lista negra'; +$wb['source_txt'] = 'Lista Negra'; $wb['recipient_txt'] = 'Destinatário'; $wb['active_txt'] = 'Ativo'; -$wb['source_error_notempty'] = 'Endereço está em branco.'; +$wb['source_error_notempty'] = 'Destinatário está em branco.'; $wb['type_txt'] = 'Tipo'; $wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_blacklist_list.lng b/interface/web/mail/lib/lang/br_mail_blacklist_list.lng index d561cea6b69c63107fadddfd05621a1403102479..319a3540166b756a41c756c904c0f69481688cb6 100644 --- a/interface/web/mail/lib/lang/br_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/br_mail_blacklist_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Lista Negra'; +$wb['list_head_txt'] = 'Lista negra'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; -$wb['source_txt'] = 'e-mail'; +$wb['source_txt'] = 'Endereço de e-mail'; $wb['type_txt'] = 'Tipo'; $wb['recipient_txt'] = 'Destinatário'; -$wb['add_new_record_txt'] = 'Adicionar novo e-mail à lista'; +$wb['add_new_record_txt'] = 'Adicionar novo registro'; $wb['access_txt'] = 'acesso'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_content_filter.lng b/interface/web/mail/lib/lang/br_mail_content_filter.lng index dc85d4e78eed6fb9e1deff3f491a727ec72202fe..b0a7c15b12f3c62406460583e410633d9a19b3ef 100644 --- a/interface/web/mail/lib/lang/br_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/br_mail_content_filter.lng @@ -1,9 +1,9 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['type_txt'] = 'Filtro'; -$wb['pattern_txt'] = 'Padrão de expressão regular.'; -$wb['data_txt'] = 'Data'; +$wb['pattern_txt'] = 'Padrão da expressão regular'; +$wb['data_txt'] = 'Dados'; $wb['action_txt'] = 'Ação'; $wb['active_txt'] = 'Ativo'; -$wb['pattern_error_empty'] = 'Padrão da expressão regular está em branco'; +$wb['pattern_error_empty'] = 'Padrão da expressão regular está em branco.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_content_filter_list.lng b/interface/web/mail/lib/lang/br_mail_content_filter_list.lng index 4d35bd6352a3ff3bc83e112e772067d3f1df5266..65674a903d34f837fada7e587fd47e213bd0e0f4 100644 --- a/interface/web/mail/lib/lang/br_mail_content_filter_list.lng +++ b/interface/web/mail/lib/lang/br_mail_content_filter_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Cabeçalhos postfix e body checks'; +$wb['list_head_txt'] = 'Verificações de cabeçalho e corpo de e-mail - Postfix'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['pattern_txt'] = 'Padrão'; diff --git a/interface/web/mail/lib/lang/br_mail_domain.lng b/interface/web/mail/lib/lang/br_mail_domain.lng index 87cdd1287cfbf03aab1b6fdc5e56ff2b8f7f02dc..0bdb473095f8ba0d364612e4a71b7462c8c3ac6c 100644 --- a/interface/web/mail/lib/lang/br_mail_domain.lng +++ b/interface/web/mail/lib/lang/br_mail_domain.lng @@ -3,21 +3,21 @@ $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['type_txt'] = 'Tipo'; $wb['active_txt'] = 'Ativo'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'DomÃnio duplicado'; -$wb['domain_error_regex'] = 'Nome de domÃnio inválido'; -$wb['client_txt'] = 'Cliente'; -$wb['limit_maildomain_txt'] = 'O limite de contas de e-mail para este domÃnio foi alcançado.'; -$wb['policy_txt'] = 'Filtro anti-spam'; -$wb['no_policy'] = '- desabilitado -'; -$wb['dkim_txt'] = 'habilitar DKIM'; +$wb['dkim_txt'] = 'Habilitar DKIM'; $wb['dkim_private_txt'] = 'Chave privada DKIM'; -$wb['dkim_public_txt'] = 'Somente chave pública/nfor DKIM'; +$wb['dkim_public_txt'] = 'Chave pública DKIMapenas para informação'; $wb['dkim_generate_txt'] = 'Gerar chave privada DKIM'; $wb['dkim_dns_txt'] = 'Registro dns'; -$wb['dkim_private_key_error'] = 'Chave privada DKIM inválida'; -$wb['dkim_selector_txt'] = 'Seletor DKIM'; -$wb['dkim_selector_error'] = 'Seletor DKIM é inválido. Use apenas caracteres minúsculos e alfanuméricos (\'az\' ou \'0-9\') até o máximo de 63 caracteres'; -$wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; +$wb['dkim_private_key_error'] = 'A chave privada DKIM é inválida.'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; +$wb['domain_error_unique'] = 'O domÃnio está duplicado.'; +$wb['domain_error_regex'] = 'O domÃnio é inválido.'; +$wb['dkim_settings_txt'] = 'DomÃnio de e-mail identificado por chaves de domÃnio (DKIM)'; +$wb['client_txt'] = 'Cliente'; +$wb['limit_maildomain_txt'] = 'O limite de domÃnios de e-mail para esta conta foi alcançado.'; +$wb['policy_txt'] = 'Filtro anti-spam'; +$wb['no_policy'] = '-desabilitado-'; $wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.'; +$wb['dkim_selector_txt'] = 'Seletor DKIM'; +$wb['dkim_selector_error'] = 'Seletor DKIM é inválido. Utilize apenas caracteres alfanuméricos em minúsculas (a-z ou 0-9) e no máximo 63 caracteres.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng index df5fd39b9a82688f2ba1373a36889eea2f9b5e2f..3d4f85af8dfc1110b3bf508e3705dfb76623aff4 100644 --- a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng @@ -1,11 +1,13 @@ <?php $wb['domain_txt'] = 'DomÃnio'; -$wb['destination_txt'] = 'Destino'; +$wb['destination_txt'] = 'Endereço de e-mail de destino'; $wb['active_txt'] = 'Ativo'; -$wb['domain_error_unique'] = 'Já existe uma conta cata tudo para este domÃnio.'; +$wb['domain_error_unique'] = 'Já existe uma conta cata-tudo para este domÃnio.'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; -$wb['domain_error_regex'] = 'O domÃnio contém caracteres inválidos'; -$wb['limit_mailcatchall_txt'] = 'O limite de contas cata tudo para este domÃnio foi alcançado.'; +$wb['domain_error_regex'] = 'O domÃnio é inválido ou contêm caracteres inválidos.'; +$wb['limit_mailcatchall_txt'] = 'O limite de contas cata-tudo para esta conta foi alcançado.'; +$wb['domain_txt'] = 'DomÃnio'; $wb['source_txt'] = 'Origem'; -$wb['destination_error_isemail'] = 'Destino não é um e-mail válido.'; +$wb['destination_error_isemail'] = 'Endereço de e-mail de destino é inválido.'; +$wb['greylisting_txt'] = 'Habilitar greylist'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng index 57c1f3a11ac1012652866f510dd4e987eb7c0ac2..2d5747826ce17e7b8f545ef27b3cb6032936c646 100644 --- a/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Contas cata tudo'; +$wb['list_head_txt'] = 'Conta cata-tudo'; $wb['active_txt'] = 'Ativo'; -$wb['source_txt'] = 'Origem'; -$wb['destination_txt'] = 'Endereço de destino'; +$wb['source_txt'] = 'origem'; +$wb['destination_txt'] = 'Endereço de e-mail de destino'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['add_new_record_txt'] = 'Adicionar nova conta'; diff --git a/interface/web/mail/lib/lang/br_mail_forward.lng b/interface/web/mail/lib/lang/br_mail_forward.lng index 8f9864638d83816ca88f878ddab81b0f1eb74011..5a2400e49b9b215f9cfd68b5a9b1b86341e3e852 100644 --- a/interface/web/mail/lib/lang/br_mail_forward.lng +++ b/interface/web/mail/lib/lang/br_mail_forward.lng @@ -1,13 +1,13 @@ <?php -$wb['email_txt'] = 'e-mail'; -$wb['destination_txt'] = 'e-mail de destino'; +$wb['email_txt'] = 'e-Mail'; +$wb['destination_txt'] = 'Endereço e-mail de destino'; $wb['active_txt'] = 'Ativo'; -$wb['limit_mailforward_txt'] = 'O limite de encaminhamentos para esta conta foi alcançado.'; -$wb['duplicate_mailbox_txt'] = 'Já existe um e-mail com este endereço.'; +$wb['limit_mailforward_txt'] = 'O limite de encaminhamentos de e-mail para esta conta foi alcançado.'; +$wb['duplicate_mailbox_txt'] = 'Já existe um conta de e-mail idêntica.'; $wb['domain_txt'] = 'DomÃnio'; -$wb['source_txt'] = 'Origem'; -$wb['greylisting_txt'] = 'Habilitar greylist'; -$wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; +$wb['source_txt'] = 'Endereço de e-mail de origem'; +$wb['email_error_isemail'] = 'Por favor informe um endereço de e-mail válido.'; $wb['send_as_txt'] = 'Enviar como'; -$wb['send_as_exp'] = 'Permite o alvo enviar e-mails usando este endereço como origem (se o alvo for interno)'; +$wb['send_as_exp'] = 'Permitir o destino enviar e-mails usando este endereço como origem (se o destino for interno)'; +$wb['greylisting_txt'] = 'Habilitar greylist'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_forward_list.lng b/interface/web/mail/lib/lang/br_mail_forward_list.lng index 025ecc00b691caaed20c768c7ef32030a3838de6..166839e2c9a88d51a35593d39e346979bdfb6d4d 100644 --- a/interface/web/mail/lib/lang/br_mail_forward_list.lng +++ b/interface/web/mail/lib/lang/br_mail_forward_list.lng @@ -2,7 +2,7 @@ $wb['list_head_txt'] = 'Encaminhamento de e-mail'; $wb['active_txt'] = 'Ativo'; $wb['source_txt'] = 'Origem'; -$wb['destination_txt'] = 'Destino'; -$wb['email_txt'] = 'e-mail'; -$wb['add_new_record_txt'] = 'Adicionar novo encaminhamento'; +$wb['destination_txt'] = 'Destinatário'; +$wb['email_txt'] = 'e-Mail'; +$wb['add_new_record_txt'] = 'Adicionar novo encaminhamento de e-mail'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_get.lng b/interface/web/mail/lib/lang/br_mail_get.lng index dc9d2fce87ad4360196a448f8964355200e60ec0..f3d055f6d8fb9e37b88a946865aed20bf7cb94a1 100644 --- a/interface/web/mail/lib/lang/br_mail_get.lng +++ b/interface/web/mail/lib/lang/br_mail_get.lng @@ -1,19 +1,19 @@ <?php $wb['server_id_txt'] = 'Servidor'; $wb['type_txt'] = 'Tipo'; -$wb['source_server_txt'] = 'Servidor pop3/imap'; +$wb['source_server_txt'] = 'Servidor POP3/IMAP'; $wb['source_username_txt'] = 'Usuário'; $wb['source_password_txt'] = 'Senha'; -$wb['source_delete_txt'] = 'Remover mensagens da origem após o recebimento'; +$wb['source_delete_txt'] = 'Remover e-mails após recuperação'; +$wb['source_delete_note_txt'] = 'Verifique primeiro se a recuperação de e-mails funciona antes de ativar esta opção.'; +$wb['source_read_all_txt'] = 'Recuperar todos e-mails (inclusive e-mails lidos)'; $wb['destination_txt'] = 'Destino'; $wb['active_txt'] = 'Ativo'; -$wb['limit_fetchmail_txt'] = 'O limite de contas de buscas para esta conta foi alcançado.'; -$wb['source_server_error_isempty'] = 'Servidor está em branco.'; -$wb['source_username_error_isempty'] = 'Usuário está em branco.'; -$wb['source_password_error_isempty'] = 'Senha está em branco.'; -$wb['destination_error_isemail'] = 'Destino não selecionado.'; -$wb['source_server_error_regex'] = 'Servidor pop3/imap não é um domÃnio válido.'; -$wb['source_read_all_txt'] = 'Receber todos os e-mails (inclusive e-mails lidos)'; -$wb['error_delete_read_all_combination'] = 'Combinação ilegal de opções. Você não pode usar \'Apagar e-mails após recebimento\' = não junto com \'Receber todos os e-mail\' = sim.'; -$wb['source_delete_note_txt'] = 'Por favor, verifique se o e-mail do para recepção está operacional, antes de ativar esta configuração.'; +$wb['limit_fetchmail_txt'] = 'O limite de registros de busca de e-mails para esta conta foi alcançado.'; +$wb['source_server_error_isempty'] = 'O servidor está em branco.'; +$wb['source_username_error_isempty'] = 'O usuário está em branco.'; +$wb['source_password_error_isempty'] = 'A senha está em branco.'; +$wb['destination_error_isemail'] = 'Nenhum destino selecionado.'; +$wb['source_server_error_regex'] = 'O servidor POP3/IMAP é inválido.'; +$wb['error_delete_read_all_combination'] = 'Combinação ilegal nas opções. Não pode ser utilizado "Remover e-mails após recuperação" = "não" e "Recuperar todos e-mail" = "sim".'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_get_list.lng b/interface/web/mail/lib/lang/br_mail_get_list.lng index 07d28d0bd8e58a089dc4d474456225ead762dece..84b8bbd33e9a99810396e5fc6b87a0103f56eb1a 100644 --- a/interface/web/mail/lib/lang/br_mail_get_list.lng +++ b/interface/web/mail/lib/lang/br_mail_get_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Busca de mensagens de um servidor POP3/IMAP'; +$wb['list_head_txt'] = 'Busca de e-mails de servidores externos - POP3/IMAP'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['source_server_txt'] = 'Servidor externo'; diff --git a/interface/web/mail/lib/lang/br_mail_mailinglist.lng b/interface/web/mail/lib/lang/br_mail_mailinglist.lng index a34dca7f35a65222ed8ab152108ccea42097d891..87f5bcbb641e2e6ce4e713b8cafb75daea4f2714 100644 --- a/interface/web/mail/lib/lang/br_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/br_mail_mailinglist.lng @@ -1,22 +1,22 @@ <?php -$wb['limit_mailmailinglist_txt'] = 'Limite alcançado'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['listname_error_empty'] = 'Nome da lista está em branco.'; -$wb['domain_error_regex'] = 'DomÃnio é inválido.'; -$wb['email_in_use_txt'] = 'e-mail está em uso'; +$wb['mailinglist_txt'] = 'Lista de e-mail'; +$wb['limit_mailmailinglist_txt'] = 'O limite foi alcançado.'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; +$wb['listname_error_empty'] = 'O nome da lista está em branco.'; +$wb['domain_error_regex'] = 'O domÃnio é inválido.'; +$wb['email_in_use_txt'] = 'O e-mail já está em uso.'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; -$wb['listname_txt'] = 'Nome da lista'; +$wb['listname_txt'] = 'Lista'; $wb['client_txt'] = 'Cliente'; -$wb['email_txt'] = 'e-mail'; +$wb['email_txt'] = 'e-Mail'; $wb['password_txt'] = 'Senha'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['listname_error_unique'] = 'Já existe uma lista com o mesmo nome neste servidor. Por favor, insira outro nome.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['listname_error_unique'] = 'Já existe uma lista de e-mails idêntica para este servidor. Por favor escolha um nome diferente.'; $wb['email_error_isemail'] = 'Endereço de e-mail é inválido.'; -$wb['mailinglist_txt'] = 'Lista de e-mails'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng index 08fd204fbba37183d94172feb98567558711c2be..d7dcf02c012e2f4d2cd4a1bd9f2c854341a58599 100644 --- a/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng @@ -1,5 +1,5 @@ <?php $wb['list_head_txt'] = 'Lista de e-mails'; $wb['domain_txt'] = 'DomÃnio'; -$wb['listname_txt'] = 'Nome'; +$wb['listname_txt'] = 'Nome da lista'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_relay_recipient.lng b/interface/web/mail/lib/lang/br_mail_relay_recipient.lng index 0ce921b1a1efa90b40dfd5da394a41d016dcfc32..637788ce48baca6f1c7a6926e5c966eabf846326 100644 --- a/interface/web/mail/lib/lang/br_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/br_mail_relay_recipient.lng @@ -3,7 +3,7 @@ $wb['server_id_txt'] = 'Servidor'; $wb['source_txt'] = 'Destinatário de retransmissão'; $wb['recipient_txt'] = 'Destinatário'; $wb['active_txt'] = 'Ativo'; -$wb['source_error_notempty'] = 'Endereço está em branco.'; +$wb['source_error_notempty'] = 'Destinatário de retransmissão está em branco.'; $wb['type_txt'] = 'Tipo'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros para esta conta foi alcançado.'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng index b6ca775e5e0424d3f047086c76aba61aa40ff30b..d96bab59ebc78a3a20854ec9e89cae2ed9b34371 100644 --- a/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng +++ b/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng @@ -2,8 +2,8 @@ $wb['list_head_txt'] = 'Destinatários de retransmissão'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; -$wb['source_txt'] = 'Remetente'; +$wb['source_txt'] = 'Endereço do destinatário'; $wb['recipient_txt'] = 'Destinatário'; -$wb['add_new_record_txt'] = 'Adicionar novo destinatário'; +$wb['add_new_record_txt'] = 'Adicionar novo destinatário de retransmissão'; $wb['access_txt'] = 'acesso'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_spamfilter.lng b/interface/web/mail/lib/lang/br_mail_spamfilter.lng index 3e7201b95d2a1c1a5b3ed68f887978dfad8d58d4..e38894fde375486c82c657d50397a481400d3c1c 100644 --- a/interface/web/mail/lib/lang/br_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/br_mail_spamfilter.lng @@ -1,17 +1,17 @@ <?php -$wb['email_txt'] = 'E-mail'; +$wb['email_txt'] = 'e-Mail'; $wb['spam_rewrite_score_int_txt'] = 'Pontuação de reescrita'; -$wb['spam_redirect_score_int_txt'] = 'Pontuação de redirecionamento'; +$wb['spam_redirect_score_int_txt'] = 'Redirecionar pontuação'; $wb['spam_delete_score_int_txt'] = 'Remover pontuação'; $wb['spam_rewrite_subject_txt'] = 'Reescrever assunto'; $wb['spam_redirect_maildir_txt'] = 'Redirecionar conta de e-mail'; $wb['active_txt'] = 'Ativo'; -$wb['spam_rewrite_txt'] = 'Reescrever assunto da mensagem depois desta pontuação.'; -$wb['spam_redirect_txt'] = 'Redirecione esta mensagem depois desta pontuação para esta conta de e-mail'; -$wb['spam_delete_txt'] = 'Remover esta mensagem depois desta pontuação.'; -$wb['disable_txt'] = 'Dica: Para desabilitar uma opção de filtro, configure a pontuação como 0.00.'; +$wb['spam_rewrite_txt'] = 'Reescrever assunto do e-mail acima desta pontuação.'; +$wb['spam_redirect_txt'] = 'Redirecionar e-mail acima desta pontuação para a conta de e-mail selecionada.'; +$wb['spam_delete_txt'] = 'Remover e-mail acima desta pontuação.'; +$wb['disable_txt'] = 'Dica: Para desabilitar uma opção de filtragem, configure a pontuação para 0.00'; $wb['email_error_isemail'] = 'Endereço de e-mail é inválido.'; -$wb['email_error_unique'] = 'Já existem registros iguais de filtros anti-spam para este e-mail.'; -$wb['spam_redirect_maildir_purge_txt'] = 'Remover Maildir depois'; -$wb['days_txt'] = 'Dias'; +$wb['email_error_unique'] = 'Já existe um filtro anti-spam igual para este endereço de e-mail.'; +$wb['spam_redirect_maildir_purge_txt'] = 'Remover diretório de e-mail após'; +$wb['days_txt'] = 'dias.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng index 40c680da72f1252a341b63fd0a1864fc213ab91e..51044a3beca5723a41319788b1a2d626bef69519 100644 --- a/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng @@ -1,8 +1,8 @@ <?php $wb['list_head_txt'] = 'Filtro anti-spam'; $wb['active_txt'] = 'Ativo'; -$wb['server_id_txt'] = 'Servidor'; -$wb['server_name_txt'] = 'Nome'; -$wb['email_txt'] = 'e-mail'; -$wb['add_new_record_txt'] = 'Adicionar novo filtro anti-spam'; +$wb['server_id_txt'] = 'ID do servidor'; +$wb['server_name_txt'] = 'Nome do servidor'; +$wb['email_txt'] = 'e-Mail'; +$wb['add_new_record_txt'] = 'Adicionar filtro anti-spam'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_transport.lng b/interface/web/mail/lib/lang/br_mail_transport.lng index 7b080493c2014e35187b7ee594e840dea04d2aec..cf59e244bbb4fb22f8c676d4ef0e2e4840067940 100644 --- a/interface/web/mail/lib/lang/br_mail_transport.lng +++ b/interface/web/mail/lib/lang/br_mail_transport.lng @@ -3,9 +3,9 @@ $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['destination_txt'] = 'Destino'; $wb['type_txt'] = 'Tipo'; -$wb['mx_txt'] = 'Sem MX lookup'; +$wb['mx_txt'] = 'Sem pesquisa MX'; $wb['sort_order_txt'] = 'Ordenar por'; $wb['active_txt'] = 'Ativo'; -$wb['limit_mailrouting_txt'] = 'O limite de transportes para esta conta foi alcançado.'; +$wb['limit_mailrouting_txt'] = 'O limite de rotas de e-mail para esta conta foi alcançado.'; $wb['transport_txt'] = 'Transporte'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_transport_list.lng b/interface/web/mail/lib/lang/br_mail_transport_list.lng index 1e824b345aa398dab72842a57ff74548deaee89e..4597742bef7b3eb3f60268b476f241c01ce6db09 100644 --- a/interface/web/mail/lib/lang/br_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/br_mail_transport_list.lng @@ -1,6 +1,6 @@ <?php -$wb['list_head_txt'] = 'Transporte de e-mails'; -$wb['active_txt'] = 'Ativa'; +$wb['list_head_txt'] = 'Roteamento avançado de e-mail'; +$wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['transport_txt'] = 'Transporte'; diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng index a786566277f1b6ef13de16713847e8b2e27c839c..8e3edd6950c29b2420f8f10d5f4dc54cbbb023f7 100644 --- a/interface/web/mail/lib/lang/br_mail_user.lng +++ b/interface/web/mail/lib/lang/br_mail_user.lng @@ -1,65 +1,75 @@ <?php -$wb['custom_mailfilter_txt'] = 'Fórmula de filtro de e-mail'; -$wb['email_txt'] = 'e-mail'; +$wb['custom_mailfilter_txt'] = 'Modelo de filtro de e-mail personalizado'; +$wb['email_txt'] = 'e-Mail'; $wb['cryptpwd_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['active_txt'] = 'Ativo'; $wb['email_error_isemail'] = 'Endereço de e-mail é inválido.'; $wb['email_error_unique'] = 'Endereço de e-mail duplicado.'; +$wb['autoresponder_subject_txt'] = 'Assunto do e-mail'; +$wb['autoresponder_subject'] = 'Resposta Automática'; $wb['autoresponder_text_txt'] = 'Texto'; -$wb['autoresponder_txt'] = 'Autoresposta'; -$wb['no_domain_perm'] = 'Sem permissão para este domÃnio.'; -$wb['error_no_pwd'] = 'Senha está em branco.'; -$wb['quota_error_isint'] = 'O tamanho do e-mail deve ser um número.'; -$wb['quota_txt'] = 'Cota'; +$wb['autoresponder_txt'] = 'Ativo'; +$wb['autoresponder_start_date_txt'] = 'Iniciar em'; +$wb['autoresponder_start_date_ispast'] = 'O campo "Iniciar em" não pode ser menor que a data atual.'; +$wb['autoresponder_end_date_txt'] = 'Terminar em'; +$wb['autoresponder_end_date_isgreater'] = 'O campo "Terminar em" deve ser configurado e não pode ser menor ou igual a data atual.'; +$wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; +$wb['error_no_pwd'] = 'A senha está em branco.'; +$wb['quota_error_isint'] = 'O tamanho da conta de e-mail deve ser um número.'; +$wb['quota_txt'] = 'Cota (0 para ilimitado)'; $wb['server_id_txt'] = 'ID do servidor'; $wb['password_txt'] = 'Senha'; -$wb['maildir_txt'] = 'Caixa Postal'; +$wb['password_click_to_set_txt'] = 'Clique para configurar'; +$wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Habilitar recebimento'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Habilitar greylist'; $wb['access_txt'] = 'Habilitar acesso'; -$wb['policy_txt'] = 'Filtro anti-spam'; -$wb['no_policy'] = '- desabilitado -'; +$wb['policy_txt'] = 'Filtros anti-spam'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'O limite de contas de e-mail para esta conta foi alcançado.'; -$wb['limit_mailquota_txt'] = 'O espaço em disco disponÃvel para criação de contas de e-mail foi alcançado.'; -$wb['disableimap_txt'] = 'Desabilitar imap'; -$wb['disablepop3_txt'] = 'Desabilitar pop3'; -$wb['duplicate_alias_or_forward_txt'] = 'Já existe um apelido ou encaminhamento com este endereço de e-mail.'; -$wb['quota_error_value'] = 'Valor da cota é inválido. Valores válidos são: 0 para ilimitado ou número > 1'; -$wb['autoresponder_start_date_txt'] = 'InÃcio:'; -$wb['autoresponder_start_date_ispast'] = 'A data de inÃcio não pode ser menor que a data atual.'; -$wb['autoresponder_end_date_txt'] = 'Término:'; -$wb['autoresponder_end_date_isgreater'] = 'A data de término não pode ser menor que a data de inÃcio.'; -$wb['move_junk_txt'] = 'Mover spam para o diretório junk'; -$wb['name_txt'] = 'Nome real'; +$wb['limit_mailquota_txt'] = 'O limite de tamanho para as contas de e-mails foi alcançado. O espaço disponÃvel em MB é'; +$wb['disablesmtp_txt'] = 'Desabilitar SMTP (envio)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; +$wb['disableimap_txt'] = 'Desabilitar IMAP'; +$wb['disablepop3_txt'] = 'Desabilitar POP3'; +$wb['duplicate_alias_or_forward_txt'] = 'Já existe um alias ou encaminhamento para este endereço de e-mail.'; +$wb['quota_error_value'] = 'Valor da cota é inválido. Valores permitidos são: 0 para ilimitado ou números > 1.'; +$wb['move_junk_txt'] = 'Mover e-mails marcados como spam para o diretório junk.'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; +$wb['name_txt'] = 'Nome'; $wb['name_optional_txt'] = '(Opcional)'; -$wb['autoresponder_active'] = 'Ativar autoresposta'; +$wb['autoresponder_active'] = 'Habilitar auto-resposta'; $wb['cc_txt'] = 'Enviar cópia para'; -$wb['cc_error_isemail'] = 'O campo \"Enviar cópia para\" deve conter um endereço de e-mail válido'; +$wb['sender_cc_txt'] = 'Enviar cópia oculta (BCC) para'; +$wb['cc_error_isemail'] = 'O campo "Enviar cópia para" contém um endereço de e-mail inválido.'; +$wb['sender_cc_error_isemail'] = 'O campo "Enviar cópia oculta para" contém um endereço de e-mail inválido.'; $wb['domain_txt'] = 'DomÃnio'; $wb['now_txt'] = 'Agora'; -$wb['login_error_unique'] = 'O acesso já está em uso.'; -$wb['login_error_regex'] = 'Caracteres válidos são: \'A-Z\', \'a-z\', \'0-9\', \'.\', \'_\' e \'-\'.'; -$wb['login_txt'] = 'Acesso (opcional)'; -$wb['error_login_email_txt'] = 'Este acesso não é permitido. Por favor, insira um usuário diferente ou use o endereço de e-mail.'; -$wb['autoresponder_subject_txt'] = 'Assunto do e-mail'; -$wb['autoresponder_subject'] = 'Resposta de ausência temporária'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['email_error_isascii'] = 'Por favor não use caracteres \"unicode\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; -$wb['cc_note_txt'] = '(Múltiplos e-mails separados por vÃrgulas)'; -$wb['disablesmtp_txt'] = 'Desabilitar smtp (envio)'; -$wb['autoresponder_start_date_is_required'] = 'Data de inÃcio deve ser configurada quando \'autoresposta\' é habilitada.'; -$wb['sender_cc_txt'] = 'Enviar cópia para'; -$wb['sender_cc_error_isemail'] = 'O campo \'Enviar cópia para\' não contém um endereço de e-mail válido'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias do backup'; +$wb['login_error_unique'] = 'O acesso já foi realizado.'; +$wb['login_error_regex'] = 'Caracteres válidos são "A-Z", "a-z", "0-9", ".", "_" e "-".'; +$wb['login_txt'] = 'Acesso'; +$wb['error_login_email_txt'] = 'Este acesso não é permitido. Por favor, forneça um nome de usuário ou endereço de e-mail diferente para acessar.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['no_backup_txt'] = 'Sem backup'; $wb['daily_backup_txt'] = 'Diário'; $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; -$wb['sender_cc_note_txt'] = '(Múltiplos e-mails separados por vÃrgulas)'; -$wb['password_click_to_set_txt'] = 'Configurar'; +$wb['email_error_isascii'] = 'Por favor, não use caracteres especiais para a senha. Isto poderá causar problemas no cliente de e-mail.'; +$wb['cc_note_txt'] = '(separar múltiplos endereços de e-mails com vÃrgulas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user_filter.lng b/interface/web/mail/lib/lang/br_mail_user_filter.lng index 7dca140ceeb7f80402b0c1f3060fa00e6699eb38..54ae96d6928405c3340ae39329810eee1308092f 100644 --- a/interface/web/mail/lib/lang/br_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/br_mail_user_filter.lng @@ -4,23 +4,23 @@ $wb['action_txt'] = 'Ação'; $wb['target_txt'] = 'Pasta'; $wb['active_txt'] = 'Ativo'; $wb['rulename_error_empty'] = 'Nome está em branco.'; -$wb['searchterm_is_empty'] = 'Termo de busca está em branco.'; +$wb['searchterm_is_empty'] = 'Termo de pesquisa está em branco.'; $wb['source_txt'] = 'Origem'; -$wb['target_error_regex'] = 'O alvo não pode conter os caracteres: \'a-z\', \'0-9\', \'-\', \'.\', \'_\', e \'{espaço}\'.'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; +$wb['target_error_regex'] = 'O alvo pode conter apenas os caracteres: "a-z", "0-9", "-", ".", "_", e {espaço}'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail foi alcançado.'; $wb['subject_txt'] = 'Assunto'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Para'; -$wb['contains_txt'] = 'Contém'; +$wb['contains_txt'] = 'Contêm'; $wb['is_txt'] = 'é'; -$wb['begins_with_txt'] = 'Começa com'; -$wb['ends_with_txt'] = 'Termina com'; -$wb['delete_txt'] = 'Remover'; +$wb['begins_with_txt'] = 'Iniciando com'; +$wb['ends_with_txt'] = 'Terminando com'; $wb['move_stop_txt'] = 'Mover para'; +$wb['delete_txt'] = 'Remover'; $wb['header_txt'] = 'Cabeçalho'; -$wb['size_over_txt'] = 'Tamanho máximo do e-mail (KB)'; -$wb['size_under_txt'] = 'Tamanho mÃnimo do e-mail (KB)'; -$wb['localpart_txt'] = 'Local'; +$wb['size_over_txt'] = 'Tamanho do e-mail acima de (KB)'; +$wb['size_under_txt'] = 'Tamanho do e-mail abaixo de (KB)'; +$wb['localpart_txt'] = 'Parte local'; $wb['domain_txt'] = 'DomÃnio'; $wb['keep_txt'] = 'Manter'; $wb['reject_txt'] = 'Rejeitar'; diff --git a/interface/web/mail/lib/lang/br_mail_user_filter_list.lng b/interface/web/mail/lib/lang/br_mail_user_filter_list.lng index feae1f4bb7cacb05a6f984dec9d76d16ab86aff0..516478f9f62694be2773e131f5a0ef5ed2c9e04b 100644 --- a/interface/web/mail/lib/lang/br_mail_user_filter_list.lng +++ b/interface/web/mail/lib/lang/br_mail_user_filter_list.lng @@ -3,5 +3,5 @@ $wb['rulename_txt'] = 'Nome'; $wb['add_new_record_txt'] = 'Adicionar novo filtro'; $wb['page_txt'] = 'Página'; $wb['page_of_txt'] = 'de'; -$wb['delete_confirmation'] = 'Tem certeza que gostaria de remover este filtro?'; +$wb['delete_confirmation'] = 'Você tem certeza que deseja remover este filtro?'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user_list.lng b/interface/web/mail/lib/lang/br_mail_user_list.lng index 3cd9c51740c34a920ef77ae282a5241c6e4dd9a6..01db69051535d1874697803d23101253d97e723c 100644 --- a/interface/web/mail/lib/lang/br_mail_user_list.lng +++ b/interface/web/mail/lib/lang/br_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nome real'; $wb['login_txt'] = 'acesso'; $wb['postfix_txt'] = 'Recebendo'; $wb['disablesmtp_txt'] = 'SMTP (envio)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user_stats_list.lng b/interface/web/mail/lib/lang/br_mail_user_stats_list.lng index 370ce3520fca56f77e343e703fa2d4b3d2153aea..f0305edac35ee7140875616202fb96301d735812 100644 --- a/interface/web/mail/lib/lang/br_mail_user_stats_list.lng +++ b/interface/web/mail/lib/lang/br_mail_user_stats_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Tráfego de e-mail'; -$wb['email_txt'] = 'e-mail'; +$wb['email_txt'] = 'e-Mail'; $wb['this_month_txt'] = 'Este mês'; $wb['last_month_txt'] = 'Último mês'; $wb['this_year_txt'] = 'Este ano'; diff --git a/interface/web/mail/lib/lang/br_mail_whitelist.lng b/interface/web/mail/lib/lang/br_mail_whitelist.lng index 344338700363159164b496e82bc4aca9499613a8..4d3eb1e21945db5c2a33063949571c4e0b40d66b 100644 --- a/interface/web/mail/lib/lang/br_mail_whitelist.lng +++ b/interface/web/mail/lib/lang/br_mail_whitelist.lng @@ -1,9 +1,9 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['source_txt'] = 'Lista Branca'; +$wb['source_txt'] = 'Endereço - lista branca'; $wb['recipient_txt'] = 'Destinatário'; $wb['active_txt'] = 'Ativo'; -$wb['source_error_notempty'] = 'Endereço em Branco.'; +$wb['source_error_notempty'] = 'Endereço de e-mail está em branco.'; $wb['type_txt'] = 'Tipo'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros para esta conta foi alcançado.'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_whitelist_list.lng b/interface/web/mail/lib/lang/br_mail_whitelist_list.lng index 40eced2d2cf68a92511133ea6a1ec2f646791181..0c7d3c717d349782912b8274d46e5321b1305573 100644 --- a/interface/web/mail/lib/lang/br_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/br_mail_whitelist_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Lista branca'; +$wb['list_head_txt'] = 'Filtros de e-mail - lista branca'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; -$wb['source_txt'] = 'e-mails na lista branca'; +$wb['source_txt'] = 'Endereços de e-mail - lista branca'; $wb['type_txt'] = 'Tipo'; $wb['recipient_txt'] = 'Destinatário'; -$wb['add_new_record_txt'] = 'Adicionar novo registro à lista'; +$wb['add_new_record_txt'] = 'Adicionar novo registro'; $wb['access_txt'] = 'acesso'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng index df01dd30bab7280bb35aba5b6c5efe97d21fbbf0..ec3dc5f66e81748cb82714bf6bee594cd5687cb0 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng @@ -1,11 +1,11 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['wb_txt'] = 'wb'; +$wb['wb_txt'] = 'Lista branca/negra'; $wb['rid_txt'] = 'Usuário'; -$wb['email_txt'] = 'Endereço de e-mail'; +$wb['email_txt'] = 'e-Mail'; $wb['priority_txt'] = 'Prioridade'; $wb['active_txt'] = 'Ativo'; -$wb['limit_spamfilter_wblist_txt'] = 'O limite de registros na lista branca/negra para esta conta foi alcançado.'; +$wb['limit_spamfilter_wblist_txt'] = 'O limite de filtros anti-spam "lista branca ou negra" para esta conta foi alcançado.'; $wb['10 - highest'] = '10 - alta'; $wb['5 - medium'] = '5 - média'; $wb['1 - lowest'] = '1 - baixa'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng index 527a1b43d91cdf5bdd9b4f4b79976b02b351f432..624cebfc51fb5e75064fabba693f3ee89bc6242b 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Filtro anti-spam (lista negra) '; +$wb['list_head_txt'] = 'Filtro anti-spam - lista negra'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['priority_txt'] = 'Prioridade'; $wb['rid_txt'] = 'Usuário'; -$wb['email_txt'] = 'Endereço de e-mail na lista negra'; -$wb['add_new_record_txt'] = 'Adicionar novo registro à lista'; +$wb['email_txt'] = 'Endereço de e-mail - lista negra'; +$wb['add_new_record_txt'] = 'Adicionar novo registro'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_config.lng b/interface/web/mail/lib/lang/br_spamfilter_config.lng index 9a12279a4a1b7b1ee66ce0635b86a1e053559a20..6182e8b788d21183f9824395912f48dbe14748d3 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_config.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_config.lng @@ -1,20 +1,20 @@ <?php -$wb['getmail_config_dir_txt'] = 'Caminho de configuração getmail '; +$wb['getmail_config_dir_txt'] = 'Caminho das configurações do getmail'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['netmask_txt'] = 'Máscara de rede'; +$wb['netmask_txt'] = 'Máscara'; $wb['gateway_txt'] = 'Gateway'; -$wb['hostname_txt'] = 'Nome do servidor'; -$wb['nameservers_txt'] = 'Servidor de nomes'; +$wb['hostname_txt'] = 'Nome do host'; +$wb['nameservers_txt'] = 'Servidor(es) dns'; $wb['module_txt'] = 'Módulo do servidor'; -$wb['maildir_path_txt'] = 'Caminho do Maildir'; -$wb['homedir_path_txt'] = 'Caminho do Homedir'; -$wb['mailuser_uid_txt'] = 'Usuário de e-mail (UID)'; -$wb['mailuser_gid_txt'] = 'Grupo de e-mail (GID)'; -$wb['mailuser_name_txt'] = 'Nome do usuário de e-mail'; -$wb['mailuser_group_txt'] = 'Grupo do usuário de e-mail'; -$wb['relayhost_txt'] = 'Host Relay'; -$wb['relayhost_user_txt'] = 'Usuário host relay'; -$wb['relayhost_password_txt'] = 'Senha host relay'; -$wb['mailbox_size_limit_txt'] = 'Tamanho da conta de e-mail'; -$wb['message_size_limit_txt'] = 'Tamanho da mensagem'; +$wb['maildir_path_txt'] = 'Caminho do maildir'; +$wb['homedir_path_txt'] = 'Caminho do homedir'; +$wb['mailuser_uid_txt'] = 'UID do mailuser'; +$wb['mailuser_gid_txt'] = 'GID do mailuser'; +$wb['mailuser_name_txt'] = 'Nome do mailuser'; +$wb['mailuser_group_txt'] = 'Grupo do mailuser'; +$wb['relayhost_txt'] = 'Host de retransmissão'; +$wb['relayhost_user_txt'] = 'Usuário de retransmissão'; +$wb['relayhost_password_txt'] = 'Senha do host de retransmissão'; +$wb['mailbox_size_limit_txt'] = 'Limite da conta de e-mail'; +$wb['message_size_limit_txt'] = 'Limite do tamanho da mensagem'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_config_list.lng b/interface/web/mail/lib/lang/br_spamfilter_config_list.lng index 300e210b15748fb439291e6eef8c727dc9451147..6d4c1cf0e1ff4aced723addfadd5c90ee73f7981 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_config_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Configurações do servidor'; +$wb['list_head_txt'] = 'Configuração do Servidor'; $wb['server_name_txt'] = 'Servidor'; -$wb['server_id_txt'] = 'ID do servidor'; +$wb['server_id_txt'] = 'ID do Servidor'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy.lng b/interface/web/mail/lib/lang/br_spamfilter_policy.lng index 998f36d8fa776b612faeb3d95ac9a01f169c4fbc..476b27e5652bedc9f7914e1e76a59140442aca42 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_policy.lng @@ -1,38 +1,51 @@ <?php -$wb['policy_name_txt'] = 'Nome da regra'; -$wb['virus_lover_txt'] = 'Permitir vÃrus'; -$wb['spam_lover_txt'] = 'Permitir spam'; -$wb['banned_files_lover_txt'] = 'Permitir arquivos banidos'; -$wb['bad_header_lover_txt'] = 'Permitir cabeçalho inválido'; -$wb['bypass_virus_checks_txt'] = 'Ignorar verificação de vÃrus'; -$wb['bypass_banned_checks_txt'] = 'Ignorar verificação de arquivos banidos'; -$wb['bypass_header_checks_txt'] = 'Ignorar verificação de cabeçalho inválido'; -$wb['virus_quarantine_to_txt'] = 'Encaminhar o vÃrus para o e-mail'; -$wb['spam_quarantine_to_txt'] = 'Encaminhar o spam para o e-mail'; +$wb['policy_name_txt'] = 'Nome da polÃtica'; +$wb['virus_lover_txt'] = 'Receber vÃrus'; +$wb['spam_lover_txt'] = 'Receber spam'; +$wb['banned_files_lover_txt'] = 'Receber arquivos banidos'; +$wb['bad_header_lover_txt'] = 'Receber cabeçalho inválido'; +$wb['bypass_virus_checks_txt'] = 'Ignorar verificações de vÃrus'; +$wb['bypass_banned_checks_txt'] = 'Ignorar verificações de arquivos banidos'; +$wb['bypass_header_checks_txt'] = 'Ignorar verificações de cabeçalho inválido'; +$wb['virus_quarantine_to_txt'] = 'Encaminhar vÃrus para o e-mail'; +$wb['spam_quarantine_to_txt'] = 'Encaminhar spam para o e-mail'; $wb['banned_quarantine_to_txt'] = 'Encaminhar arquivos banidos para o e-mail'; $wb['bad_header_quarantine_to_txt'] = 'Encaminhar cabeçalho inválido para o e-mail'; $wb['clean_quarantine_to_txt'] = 'Encaminhar mensagens/arquivos em quarentena para o e-mail'; -$wb['other_quarantine_to_txt'] = 'Encaminhar para outro e-mail'; +$wb['other_quarantine_to_txt'] = 'Encaminhar mensagens/arquivos em quarentena para outro e-mail'; $wb['spam_tag_level_txt'] = 'NÃvel 1 de marcação anti-spam'; $wb['spam_tag2_level_txt'] = 'NÃvel 2 de marcação anti-spam'; $wb['spam_kill_level_txt'] = 'NÃvel máximo de marcação anti-spam'; -$wb['spam_dsn_cutoff_level_txt'] = 'NÃvel de corte de dns anti-spam'; -$wb['spam_quarantine_cutoff_level_txt'] = 'NÃvel de corte de quarentena anti-spam'; -$wb['spam_modifies_subj_txt'] = 'Modificar assunto de mensagem com spam'; -$wb['spam_subject_tag_txt'] = 'Marcação de assunto spam 1'; -$wb['spam_subject_tag2_txt'] = 'Marcação de assunto spam 2'; -$wb['addr_extension_virus_txt'] = 'Adicionar extensão de vÃrus'; -$wb['addr_extension_spam_txt'] = 'Adicionar extensão de spam'; -$wb['addr_extension_banned_txt'] = 'Adicionar extensão de arquivos banidos'; -$wb['addr_extension_bad_header_txt'] = 'Adicionar extensão de cabeçalho inválido'; -$wb['warnvirusrecip_txt'] = 'Aviso de destinatário de vÃrus.'; -$wb['warnbannedrecip_txt'] = 'Aviso de destinatário de arquivos banidos.'; -$wb['warnbadhrecip_txt'] = 'Aviso de destinatário de cabeçalho é inválido.'; +$wb['spam_dsn_cutoff_level_txt'] = 'NÃvel de corte dsn anti-spam'; +$wb['spam_quarantine_cutoff_level_txt'] = 'NÃvel de corte para quarentena anti-spam'; +$wb['spam_modifies_subj_txt'] = 'Modificar assunto de mensagens marcadas como spam'; +$wb['spam_subject_tag_txt'] = 'Marcar assunto - SPAM 1'; +$wb['spam_subject_tag2_txt'] = 'Marcar assunto - SPAM 2'; +$wb['addr_extension_virus_txt'] = 'Adicionar extensão caso detecte vÃrus'; +$wb['addr_extension_spam_txt'] = 'Adicionar extensão caso detecte SPAM'; +$wb['addr_extension_banned_txt'] = 'Adicionar extensão caso detecte arquivo banido'; +$wb['addr_extension_bad_header_txt'] = 'Adicionar extensão caso detecte cabeçalho inválido'; +$wb['warnvirusrecip_txt'] = 'Aviso de vÃrus para o destinatário'; +$wb['warnbannedrecip_txt'] = 'Aviso de arquivo banido para destinatário'; +$wb['warnbadhrecip_txt'] = 'Aviso cabeçalho inválido para destinatário'; $wb['newvirus_admin_txt'] = 'Administrador para novo vÃrus'; $wb['virus_admin_txt'] = 'Administrador para vÃrus'; -$wb['banned_admin_txt'] = 'Administrador para arquivos banidos'; -$wb['bad_header_admin_txt'] = 'Administrador para cabeçalhos inválidos'; +$wb['banned_admin_txt'] = 'Administrador para arquivo banido'; +$wb['bad_header_admin_txt'] = 'Administrador para cabeçalho inválido'; $wb['spam_admin_txt'] = 'Administrador para spam'; -$wb['message_size_limit_txt'] = 'Tamanho máximo da mensagem'; -$wb['banned_rulenames_txt'] = 'Regras de banimento'; -?> +$wb['message_size_limit_txt'] = 'Limite de tamanho da mensagem'; +$wb['banned_rulenames_txt'] = 'Nome da regra para arquivo banido'; +$wb['rspamd_greylisting_txt'] = 'Habilitar greylist'; +$wb['rspamd_spam_greylisting_level_txt'] = 'NÃvel da greylist'; +$wb['rspamd_spam_tag_level_txt'] = 'NÃvel da marcação anti-spam'; +$wb['rspamd_spam_tag_method_txt'] = 'Método da marcação anti-spam'; +$wb['rspamd_spam_kill_level_txt'] = 'NÃvel para rejeição de spam'; +$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_cancel_txt'] = 'Cancelar'; + +$wb['amavis_settings_txt'] = 'Configurações'; +$wb['amavis_taglevel_txt'] = 'NÃvel de marcação'; +$wb['amavis_quarantine_txt'] = 'Quarentena'; +$wb['amavis_other_txt'] = 'Outro'; +$wb['add_header_txt'] = 'Adicionar cabeçalho'; +$wb['rewrite_subject_txt'] = 'Reescrever assunto'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng index 38d91f16d8afb682e4959b70d3d7af7eee77a077..269862fe99412f09c56c8a0b5443b02ee27e1653 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'PolÃticas anti-spam'; +$wb['list_head_txt'] = 'PolÃtica anti-spam'; $wb['policy_name_txt'] = 'Nome'; -$wb['virus_lover_txt'] = 'Permitir vÃrus'; -$wb['spam_lover_txt'] = 'Permitir spam'; -$wb['banned_files_lover_txt'] = 'Permitir arquivos banidos'; -$wb['bad_header_lover_txt'] = 'Permitir cabeçalho inválido'; +$wb['virus_lover_txt'] = 'Receber vÃrus'; +$wb['spam_lover_txt'] = 'Receber spam'; +$wb['banned_files_lover_txt'] = 'Receber arquivos banidos'; +$wb['bad_header_lover_txt'] = 'Receber cabeçalho inválido'; $wb['add_new_record_txt'] = 'Adicionar registro'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_users.lng b/interface/web/mail/lib/lang/br_spamfilter_users.lng index 2c33cd3552c1306f4c423a2246c249aa4ad1aedb..3b34351adbf5531d4eade5bd57545b7daa573c71 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_users.lng @@ -2,7 +2,7 @@ $wb['server_id_txt'] = 'Servidor'; $wb['priority_txt'] = 'Prioridade'; $wb['policy_id_txt'] = 'PolÃtica'; -$wb['email_txt'] = 'e-mail (padrão)'; +$wb['email_txt'] = 'e-Mail (padrão)'; $wb['fullname_txt'] = 'Nome'; $wb['local_txt'] = 'Local'; $wb['email_error_notempty'] = 'Endereço de e-mail está em branco.'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_users_list.lng b/interface/web/mail/lib/lang/br_spamfilter_users_list.lng index cf1f4900f92b170af0c10446426cfc35bf09ce97..fe3feb25cde7f161aed91bb6e1be74b058a112e2 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_users_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Usuários de filtro anti-spam'; +$wb['list_head_txt'] = 'Filtros anti-spam para contas de e-mail'; $wb['local_txt'] = 'Local'; $wb['server_id_txt'] = 'Servidor'; $wb['priority_txt'] = 'Prioridade'; -$wb['policy_id_txt'] = 'PolÃticas'; +$wb['policy_id_txt'] = 'PolÃtica'; $wb['fullname_txt'] = 'Nome'; -$wb['email_txt'] = 'e-mail'; -$wb['add_new_record_txt'] = 'Adicionar novo usuário'; +$wb['email_txt'] = 'e-Mail'; +$wb['add_new_record_txt'] = 'Adicionar novo filtro'; ?> diff --git a/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng index 0161d716aed23093855d38b86e11d1117e604a78..bcb9491cf0725e6c19f12a8d73b7fdf1ad6731e2 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng @@ -1,8 +1,8 @@ <?php $wb['server_id_txt'] = 'Servidor'; -$wb['wb_txt'] = 'wb'; -$wb['rid_txt'] = 'Usuário'; -$wb['email_txt'] = 'e-mail'; +$wb['wb_txt'] = 'Lista branca/negra'; +$wb['rid_txt'] = 'Usário'; +$wb['email_txt'] = 'e-Mail'; $wb['priority_txt'] = 'Prioridade'; $wb['active_txt'] = 'Ativo'; $wb['limit_spamfilter_wblist_txt'] = 'O limite de registros na lista branca/negra para esta conta foi alcançado.'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng index 8ef65dbfa23322fc22a8ce6e041c636221142640..e6d48491ee4a2e1a2f002819de4f69ca6df5011b 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Lista branca (anti-spam)'; +$wb['list_head_txt'] = 'Filtros anti-spam - Lista Branca'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['priority_txt'] = 'Prioridade'; $wb['rid_txt'] = 'Usuário'; -$wb['email_txt'] = 'e-mail na lista branca'; -$wb['add_new_record_txt'] = 'Adicionar novo e-mail'; +$wb['email_txt'] = 'Lista Branca de e-mails'; +$wb['add_new_record_txt'] = 'Adicionar registro'; ?> diff --git a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng old mode 100755 new mode 100644 index a756443205585dd2e4940cb372ba26d0a3100a04..ee156b23a75928127cfad38206d329709f1c73c4 --- a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Cota para contas de e-mail'; +$wb['list_head_txt'] = 'Cota da conta de e-mail'; $wb['quota_txt'] = 'Cota'; $wb['name_txt'] = 'Nome'; $wb['email_txt'] = 'Endereço de e-mail'; $wb['used_txt'] = 'Espaço utilizado'; -$wb['percentage_txt'] = 'Percentual utilizado %'; +$wb['percentage_txt'] = 'Utilizado %'; ?> diff --git a/interface/web/mail/lib/lang/br_xmpp_domain.lng b/interface/web/mail/lib/lang/br_xmpp_domain.lng index 1a9a42f0c1efdecbcb5d14a0dfb9f569205777da..1fd96ba13201149c3f47851e62e81ee69fe0e684 100644 --- a/interface/web/mail/lib/lang/br_xmpp_domain.lng +++ b/interface/web/mail/lib/lang/br_xmpp_domain.lng @@ -5,31 +5,31 @@ $wb['domain_txt'] = 'DomÃnio'; $wb['type_txt'] = 'Tipo'; $wb['active_txt'] = 'Ativo'; $wb['client_txt'] = 'Cliente'; -$wb['management_method_txt'] = 'Gerenciamento de contas de usuários'; +$wb['management_method_txt'] = 'Gerenciar contas de usuário'; $wb['public_registration_txt'] = 'Habilitar registro público'; $wb['registration_url_txt'] = 'URL de registro'; $wb['registration_message_txt'] = 'Mensagem de registro'; -$wb['domain_admins_txt'] = 'Administradores de domÃnio (JIDs)'; -$wb['use_pubsub_txt'] = 'Habilitar Pubsub'; -$wb['use_proxy_txt'] = 'Habilitar proxy Bytestream'; +$wb['domain_admins_txt'] = 'Administradores de domÃnios (JIDs)'; +$wb['use_pubsub_txt'] = 'Habilitar pubsub'; +$wb['use_proxy_txt'] = 'Habilitar proxy bytestream'; $wb['use_anon_host_txt'] = 'Habilitar host anônimo'; -$wb['use_vjud_txt'] = 'Habilitar diretório de usuário VJUD'; -$wb['vjud_opt_mode_txt'] = 'Modo de operação VJUD'; -$wb['use_muc_host_txt'] = 'Habilitar chats multiusuários'; -$wb['muc_name_txt'] = 'Nome na descoberta do MUC'; -$wb['muc_restrict_room_creation_txt'] = 'Permissão para criar salas de chat'; -$wb['muc_admins_txt'] = 'Administradores de MUC (JIDs)'; -$wb['use_pastebin_txt'] = 'Habilitar Pastebin'; -$wb['pastebin_expire_after_txt'] = 'Colagens expiram após (horas)'; -$wb['pastebin_trigger_txt'] = 'Gatilho Pastebin'; -$wb['use_http_archive_txt'] = 'Habilitar arquivo HTTP em salas de chat'; -$wb['http_archive_show_join_txt'] = 'Exibir mensagens de participação em arquivos'; -$wb['http_archive_show_status_txt'] = 'Exibir estado de mudança em arquivos'; -$wb['use_status_host_txt'] = 'Habilitar estado XML do host'; -$wb['cant_change_domainname_txt'] = 'O nome domÃnio XMPP existente não pode ser modificado.'; -$wb['about_registration_url_txt'] = 'Link para o página de registro.'; -$wb['about_registration_message_txt'] = 'Descrição sobre seu processo de registro de conta.'; -$wb['no_corresponding_maildomain_txt'] = 'O domÃnio de e-mail correspondente para gerenciamento de usuário não foi encontrado. Por favor crie o domÃnio de e-mail primeiro.'; +$wb['use_vjud_txt'] = 'Habilitar diretório de usuário (VJUD)'; +$wb['vjud_opt_mode_txt'] = 'Modo opcional do VJUD'; +$wb['use_muc_host_txt'] = 'Habilitar chat multiusuário (MUC)'; +$wb['muc_name_txt'] = 'Nome no serviço de descoberta do MUC'; +$wb['muc_restrict_room_creation_txt'] = 'Permissão para adicionar salas de chat'; +$wb['muc_admins_txt'] = 'Administradores MUC (JIDs)'; +$wb['use_pastebin_txt'] = 'Habilitar pastebin'; +$wb['pastebin_expire_after_txt'] = 'Patas expira após (horas)'; +$wb['pastebin_trigger_txt'] = 'Desencadear pastebin'; +$wb['use_http_archive_txt'] = 'Habilitar arquivos HTTP em salas de chat'; +$wb['http_archive_show_join_txt'] = 'Exibir mensagens de ingresso no arquivo'; +$wb['http_archive_show_status_txt'] = 'Exibir estado da mudanças no arquivo'; +$wb['use_status_host_txt'] = 'Habilitar estado do XML do host'; +$wb['cant_change_domainname_txt'] = 'O nome existente do domÃnio xmpp não pode ser alterado.'; +$wb['about_registration_url_txt'] = 'Ligar ao seu formulário de registro.'; +$wb['about_registration_message_txt'] = 'Descrição sobre o processo de registro da sua conta.'; +$wb['no_corresponding_maildomain_txt'] = 'O domÃnio de e-mail correspondente para gerenciamento de usuários não foi encontrado. Por favor, crie um domÃnio de e-mail primeiro.'; $wb['ssl_state_txt'] = 'Estado'; $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; @@ -38,25 +38,25 @@ $wb['ssl_country_txt'] = 'PaÃs'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_email_txt'] = 'Endereço de e-mail'; $wb['ssl_txt'] = 'SSL'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Empresa\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'PaÃs\' está em branco.'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' está em branco.'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'PaÃs\' é inválido. São caracteres válidos: \'A-Z\'.'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "PaÃs" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; +$wb['ssl_state_error_regex'] = 'Campo "Estado" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_locality_error_regex'] = 'Campo "Cidade" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_organisation_error_regex'] = 'Campo "Empresa" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'Campo "Departamento" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_country_error_regex'] = 'Campo "PaÃs" é inválido. São caracteres válidos: "A-Z".'; $wb['none_txt'] = 'Nenhum'; -$wb['save_certificate_txt'] = 'Salvar certificado'; -$wb['create_certificate_txt'] = 'Adicionar certificado'; -$wb['delete_certificate_txt'] = 'Remover certificado'; -$wb['ssl_error_isemail'] = 'Por favor, insira um e-mail válido para gerar o certificado SSL.'; +$wb['save_certificate_txt'] = 'Salvar Certificado'; +$wb['create_certificate_txt'] = 'Adicionar Certificado'; +$wb['delete_certificate_txt'] = 'Remover Certificado'; +$wb['ssl_error_isemail'] = 'Por favor, insira um endereço de e-mail válido para geração do certificado SSL.'; $wb['limit_xmppdomain_txt'] = 'O limite de domÃnios xmpp para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_xmpp_domain_list.lng b/interface/web/mail/lib/lang/br_xmpp_domain_list.lng index ab8f3a90874e3cc5b0a50502611fe7e525b8676f..e0ff3a6fc6bf060f26bbad4387eb7191d033fc18 100644 --- a/interface/web/mail/lib/lang/br_xmpp_domain_list.lng +++ b/interface/web/mail/lib/lang/br_xmpp_domain_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'DomÃnio XMPP'; +$wb['list_head_txt'] = 'DomÃnios xmpp'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['add_new_record_txt'] = 'Adicionar novo domÃnio'; diff --git a/interface/web/mail/lib/lang/br_xmpp_user.lng b/interface/web/mail/lib/lang/br_xmpp_user.lng index 8f2306814f270ac72d55b608372d2f67cddd0dce..5e7628dab2c5fe32c666427af40cbf5d2978e1ef 100644 --- a/interface/web/mail/lib/lang/br_xmpp_user.lng +++ b/interface/web/mail/lib/lang/br_xmpp_user.lng @@ -1,15 +1,15 @@ <?php -$wb['list_head_txt'] = 'Usuários XMPP'; +$wb['list_head_txt'] = 'Contas de usuários xmpp'; $wb['jid_txt'] = 'ID do Jabber'; $wb['active_txt'] = 'Ativo'; $wb['cryptpwd_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['error_no_pwd'] = 'Senha está em branco.'; $wb['password_txt'] = 'Senha'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; -$wb['limit_xmpp_user_txt'] = 'O limite de usuários xmpp para esta conta foi alcançando.'; +$wb['limit_xmpp_user_txt'] = 'O limite de usuários xmpp para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_xmpp_user_list.lng b/interface/web/mail/lib/lang/br_xmpp_user_list.lng index 13d71a05a8e0439333afd1636a3ca453c9798715..0aefe11709c211178f71c0eb4c0a4ba28d522b71 100644 --- a/interface/web/mail/lib/lang/br_xmpp_user_list.lng +++ b/interface/web/mail/lib/lang/br_xmpp_user_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Contas de usuário XMPP'; +$wb['list_head_txt'] = 'Contas de usuários xmpp'; $wb['jid_txt'] = 'ID do Jabber'; $wb['is_domain_admin_txt'] = 'Administrador do domÃnio'; $wb['is_muc_admin_txt'] = 'Administrador MUC'; diff --git a/interface/web/mail/lib/lang/ca.lng b/interface/web/mail/lib/lang/ca.lng index 1665346a8229117d70e7129747ffa0d8698c7cd7..0531f19bd0e5ca604c5d63922990664da48012bc 100644 --- a/interface/web/mail/lib/lang/ca.lng +++ b/interface/web/mail/lib/lang/ca.lng @@ -45,4 +45,6 @@ $wb['Mailbox traffic'] = 'Trafic de la boite courriels'; $wb['Domain Alias'] = 'Alias de domaine'; $wb['Relay Recipients'] = 'Destinataires de relais'; $wb['Mailbox quota'] = 'Quota courriel'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng index 7e82c34ca2b351e8582e37748c847cf14dcc64fa..feafd436f6bb47963d8429b11ae4ae80ab686458 100644 --- a/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nom de domaine invalide, ou contient des caractère $wb['limit_mailcatchall_txt'] = 'Le nombre maximal de comptes collecteurs pour votre compte a été atteint.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'La destination n\'est pas valide.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ca_mail_user.lng b/interface/web/mail/lib/lang/ca_mail_user.lng index 096572b5e003ea8bb1f60998b94de06c6b6b1486..7fd4263e976aaa94d92480bd5c28401c4e977aa5 100644 --- a/interface/web/mail/lib/lang/ca_mail_user.lng +++ b/interface/web/mail/lib/lang/ca_mail_user.lng @@ -16,9 +16,10 @@ $wb['server_id_txt'] = 'ID Serveur'; $wb['password_txt'] = 'Mot de passe'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Activer la réception'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Activer l\'accès'; $wb['policy_txt'] = 'Filtre antispam'; -$wb['no_policy'] = '- inactif -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Le nombre maximal de boites courriel pour votre compte est atteint..'; $wb['limit_mailquota_txt'] = 'Lespace maximal pour les boites courriel est atteint. Lespace maximal disponible est de '; $wb['disableimap_txt'] = 'Désactiver IMAP'; @@ -30,6 +31,9 @@ $wb['autoresponder_end_date_txt'] = 'Terminer le'; $wb['autoresponder_end_date_isgreater'] = 'La date de fin doit être saisie et doit être ultérieure à la date de début.'; $wb['quota_error_value'] = 'Valeur de quota invalide. Les valeurs de quota autorisées sont : 0 pour illimité ou nombres > 1'; $wb['move_junk_txt'] = 'Déplacer le spam vers le dossier Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nom véritable'; $wb['name_optional_txt'] = '(Optionnel)'; $wb['autoresponder_active'] = 'Activer le répondeur automatique'; @@ -48,9 +52,11 @@ $wb['repeat_password_txt'] = 'Retaper le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['disablesmtp_txt'] = 'Désactiver SMTP (envoi)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Séparer chaque adresses par une virgule)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; @@ -60,6 +66,10 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/ca_mail_user_filter.lng b/interface/web/mail/lib/lang/ca_mail_user_filter.lng index 14b80ee07b28c5872b66bf88c70526ced7be0154..8744b2ab79209f4a27b1d36681be930a0bde220a 100644 --- a/interface/web/mail/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ca_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Le nombre max de filtres courriel est atteint.'; $wb['subject_txt'] = 'Sujet'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Pour'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contient'; $wb['is_txt'] = 'Est'; $wb['begins_with_txt'] = 'Commence par'; diff --git a/interface/web/mail/lib/lang/ca_mail_user_list.lng b/interface/web/mail/lib/lang/ca_mail_user_list.lng index c3b79e38be69c3449abce2b75051960a6bb4d375..8d6ae9c30e35c2be86956722f61310480eb44937 100644 --- a/interface/web/mail/lib/lang/ca_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ca_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nom véritable'; $wb['login_txt'] = 'Nom d\'utilisateur'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ca_spamfilter_policy.lng b/interface/web/mail/lib/lang/ca_spamfilter_policy.lng index d07b382ddf7781c993f3382dddc875e4e7738c00..7b593f0a1697c9b78dc1f64dd0da707abf33de0f 100644 --- a/interface/web/mail/lib/lang/ca_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ca_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin mauvais entête'; $wb['spam_admin_txt'] = 'Admin SPAM'; $wb['message_size_limit_txt'] = 'Limite de taille de message'; $wb['banned_rulenames_txt'] = 'Noms des règles bannir'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng index d0f6157cb4291c525d8b049a249fc664a5c63792..040a6d0de8d29e595de36e0987cdbbb36eb2daec 100644 --- a/interface/web/mail/lib/lang/cz.lng +++ b/interface/web/mail/lib/lang/cz.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'PÅ™ezdÃvky e-mailových domén'; $wb['Relay Recipients'] = 'Relay adresáti'; $wb['Statistics'] = 'Statistiky'; $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_backup_list.lng b/interface/web/mail/lib/lang/cz_mail_backup_list.lng index 91ea1ad49f00bb49edcb5a92658d928ca3f0abd1..d4f941a4cdfd75b4ba2975f613a5eba31b6844c3 100644 --- a/interface/web/mail/lib/lang/cz_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/cz_mail_backup_list.lng @@ -1,16 +1,16 @@ <?php -$wb['list_head_txt'] = 'StávajÃcà zálohy'; +$wb['list_head_txt'] = 'Dostupné zálohy'; $wb['date_txt'] = 'Datum'; $wb['backup_type_txt'] = 'Typ'; $wb['filename_txt'] = 'Záloha souborů'; $wb['restore_backup_txt'] = 'Obnovit'; -$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes to be completed.'; -$wb['restore_confirm_txt'] = 'Restoring may overwrite existing files in your mailbox. Do you really want to restore this backup?'; -$wb['download_pending_txt'] = 'There is already a pending backup download job.'; -$wb['restore_pending_txt'] = 'There is already a pending backup restore job.'; +$wb['restore_info_txt'] = 'Obnovenà zálohy bylo zahájeno. DokonÄenà této akce může trvat nÄ›kolik minut.'; +$wb['restore_confirm_txt'] = 'Obnovenà může pÅ™epsat existujÃcà soubory ve vašà poÅ¡tovnà schránce. Opravdu chcete tuto zálohu obnovit ?'; +$wb['download_pending_txt'] = 'Již existuje ÄekajÃcà úloha pro staženà zálohy.'; +$wb['restore_pending_txt'] = 'Již existuje ÄekajÃcà úloha pro obnovu zálohy.'; $wb['delete_backup_txt'] = 'Smazat zálohu'; $wb['delete_info_txt'] = 'Bylo zahájeno odstranÄ›nà zálohy. Tato akce může trvat nÄ›kolik minut než bude dokonÄena.'; $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?'; -$wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; +$wb['delete_pending_txt'] = 'Již existuje ÄekajÃcà úloha pro odstranÄ›nà zálohy.'; $wb['filesize_txt'] = 'Velikost souboru'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng index ab4006df0c6d1c7da5063606e6e790e18e214b24..d0ae7c7e4b6952da35f4a18d0de9bcda5137b538 100644 --- a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Chybné doménové jméno nebo doména obsahuje chy $wb['limit_mailcatchall_txt'] = 'Byl dosažen maximálnà poÄet košů úÄtů pro Váš úÄet.'; $wb['source_txt'] = 'Zdroj'; $wb['destination_error_isemail'] = 'CÃlová e-mailová adresa nenà platná.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng index c697e4cffc851800484cd6bec1806483845b8dde..835f2918c1dc2589745fe9c8cea89367dd523c53 100644 --- a/interface/web/mail/lib/lang/cz_mail_user.lng +++ b/interface/web/mail/lib/lang/cz_mail_user.lng @@ -20,9 +20,10 @@ $wb['server_id_txt'] = 'Server_id'; $wb['password_txt'] = 'Heslo'; $wb['maildir_txt'] = 'E-mailový adresář'; $wb['postfix_txt'] = 'Povolit pÅ™Ãjem'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Povolit pÅ™Ãstup'; $wb['policy_txt'] = 'Spamový filtr'; -$wb['no_policy'] = '- nepovoleno -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Byl dosažen maximálnà poÄet mailboxů pro Váš úÄet.'; $wb['limit_mailquota_txt'] = 'Dosažen maximálnà prostor pro mailboxy. Max. dostupné mÃsto v MB je'; $wb['disableimap_txt'] = 'Zakázat IMAP'; @@ -30,6 +31,9 @@ $wb['disablepop3_txt'] = 'Zakázat POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Alias nebo pÅ™esmÄ›rovánà s touto adresou již existuje.'; $wb['quota_error_value'] = 'Chybná hodnota kvóty. Povolené hodnoty jsou: 0 pro neomezeno nebo ÄÃsla > 1'; $wb['move_junk_txt'] = 'PÅ™esunout e-maily detekované jako spam do adresáře Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'SkuteÄné jméno'; $wb['name_optional_txt'] = '(volitelné)'; $wb['autoresponder_active'] = 'Povolit automatický odpovÃdaÄ'; @@ -49,7 +53,9 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(PÅ™i posÃlánà kopià na vÃce e-mailových adres, oddÄ›lte Äárkami.)'; -$wb['disablesmtp_txt'] = 'Zakázat SMTP (pouze odesÃlánÃ)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['greylisting_txt'] = 'Povolit greylisting'; $wb['sender_cc_txt'] = 'Odeslat odchozà kopii na'; @@ -60,6 +66,10 @@ $wb['no_backup_txt'] = 'Žádná záloha'; $wb['daily_backup_txt'] = 'DennÃ'; $wb['weekly_backup_txt'] = 'TýdennÃ'; $wb['monthly_backup_txt'] = 'MÄ›sÃÄnÃ'; -$wb['sender_cc_note_txt'] = '(PÅ™i posÃlánà kopià na vÃce e-mailových adres, oddÄ›lte Äárkami.) '; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Pro nastavenà klikni zde'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_user_list.lng b/interface/web/mail/lib/lang/cz_mail_user_list.lng index e4e224159950bc77f08171e01f271988e71d3857..dcca69d8fe62d5adaf0b20364706005ee25cf55b 100644 --- a/interface/web/mail/lib/lang/cz_mail_user_list.lng +++ b/interface/web/mail/lib/lang/cz_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'SkuteÄný název'; $wb['login_txt'] = 'PÅ™ihlášenÃ'; $wb['postfix_txt'] = 'PÅ™Ãjem'; $wb['disablesmtp_txt'] = 'SMTP (odesÃlánÃ)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng index c5765e807f561f242aab4e3114cb85887f780475..b8b8a2e78f17c837831a66c797aedf34eec3d8fb 100644 --- a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Å patná hlaviÄka admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Limit velikosti zprávy'; $wb['banned_rulenames_txt'] = 'Název pravidel zabanované'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/de.lng b/interface/web/mail/lib/lang/de.lng index 91418972dd0c69f73d0d4f1aba6d1d2e218f0ced..e0f1e7cd3b30e0022f142cada3ef0a713c2182d3 100644 --- a/interface/web/mail/lib/lang/de.lng +++ b/interface/web/mail/lib/lang/de.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globale Filter'; $wb['Domain Alias'] = 'E-Mail Domain Alias'; $wb['Relay Recipients'] = 'Relay Empfänger'; $wb['Mailbox quota'] = 'E-Mail Konto Speichernutzung'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_domain_catchall.lng b/interface/web/mail/lib/lang/de_mail_domain_catchall.lng index 9f37e56697126ed078d799f3c9ce4faeed8155c1..bef241e0ea6aabea07f902ff7529ac431de75c08 100644 --- a/interface/web/mail/lib/lang/de_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/de_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ungültiger Domainname oder ungültige Zeichen im D $wb['limit_mailcatchall_txt'] = 'Die maximale Anzahl an Catchall Einträgen für Ihr Konto wurde erreicht.'; $wb['source_txt'] = 'Quelle'; $wb['destination_error_isemail'] = 'Das Ziel ist keine gültige E-Mail Adresse.'; +$wb['greylisting_txt'] = 'Aktiviere Greylisting'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_user.lng b/interface/web/mail/lib/lang/de_mail_user.lng index 2c230e34ffafb6f9fb39aff0106e9fc7b37fcf40..a69d97e361a365cee8b6ef8eb0ad28171b8207dd 100644 --- a/interface/web/mail/lib/lang/de_mail_user.lng +++ b/interface/web/mail/lib/lang/de_mail_user.lng @@ -17,13 +17,17 @@ $wb['server_id_txt'] = 'Server ID'; $wb['password_txt'] = 'Passwort'; $wb['maildir_txt'] = 'E-Mail Verzeichnis'; $wb['postfix_txt'] = 'Aktiviere Empfang'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Aktiviere Greylisting'; $wb['access_txt'] = 'Aktiviere Zugriff'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- nicht aktiviert -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Die maximale Anzahl an E-Mailkonten für Ihr Konto wurde erreicht.'; $wb['limit_mailquota_txt'] = 'Der maximale Speicherplatz für Ihr E-Mail Konto wurde erreicht. Der maximal verfügbare Speicher in MB ist'; $wb['disablesmtp_txt'] = 'SMTP (Mailversand) deaktivieren'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'IMAP deaktivieren'; $wb['disablepop3_txt'] = 'POP3 deaktivieren'; $wb['password_strength_txt'] = 'Passwortkomplexität'; @@ -34,6 +38,9 @@ $wb['autoresponder_start_date_ispast'] = 'Startdatum kann nicht in der Vergangen $wb['autoresponder_end_date_txt'] = 'Endet am'; $wb['autoresponder_end_date_isgreater'] = 'Enddatum muss angegeben werden und muss später als das Startdatum sein.'; $wb['move_junk_txt'] = 'Spam E-Mails in das Junk Verzeichnis verschieben'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Name'; $wb['name_optional_txt'] = '(optional)'; $wb['autoresponder_active'] = 'Autoresponder aktivieren'; @@ -57,9 +64,12 @@ $wb['daily_backup_txt'] = 'taeglich'; $wb['weekly_backup_txt'] = 'woechentlich'; $wb['monthly_backup_txt'] = 'monatlich'; $wb['cc_note_txt'] = '(Mehrere E-Mail-Adressen mit Kommas trennen)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; -$wb['sender_cc_txt'] = 'Send outgoing BCC to'; -$wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_txt'] = 'Kopie ausgehender Emails senden an (BCC)'; +$wb['sender_cc_error_isemail'] = '-Kopie ausgehender Emails senden an- Feld enthält keine gültige Emailadresse'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_user_list.lng b/interface/web/mail/lib/lang/de_mail_user_list.lng index 5eeff280c2a3365b1e1d4a7a6e5d921a5e3f0e91..255b25612f0aaf77538cdd8c22eec31fc87fed95 100644 --- a/interface/web/mail/lib/lang/de_mail_user_list.lng +++ b/interface/web/mail/lib/lang/de_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Anmelden'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/de_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/de_spamfilter_blacklist.lng index 6c08e33c79ce0e12a20d693d7f7c7efa46010950..63205a5ec18a0c9c8d7f86b8e08ea764bfe358b2 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_blacklist.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_blacklist.lng @@ -6,7 +6,7 @@ $wb['email_txt'] = 'E-Mail Adresse'; $wb['priority_txt'] = 'Priorität'; $wb['active_txt'] = 'Aktiv'; $wb['limit_spamfilter_wblist_txt'] = 'Die maximale Anzahl an White- oder Blacklist Einträgen für ihr Konto wurde erreicht.'; -$wb['10 - highest'] = '10 - höchste'; +$wb['10 - highest'] = '10 - höchste'; $wb['5 - medium'] = '5 - normal'; $wb['1 - lowest'] = '1 - niedrigste'; ?> diff --git a/interface/web/mail/lib/lang/de_spamfilter_policy.lng b/interface/web/mail/lib/lang/de_spamfilter_policy.lng index 32acca46860822f960c1d03ce316e047a29a3afc..1036fbf91c8f09bb6a263b729b39c72dfb5c92b1 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad Header Administrator'; $wb['spam_admin_txt'] = 'SPAM Administrator'; $wb['message_size_limit_txt'] = 'Nachrichtengrößen Limit'; $wb['banned_rulenames_txt'] = 'Banned Richtliniennamen'; +$wb['rspamd_greylisting_txt'] = 'Greylisting nutzen'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting-Level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM-Markierungslevel'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM-Markierungsmethode'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM-Reject-Level'; +$wb['btn_save_txt'] = 'Speichern'; +$wb['btn_cancel_txt'] = 'Abbrechen'; +$wb['amavis_settings_txt'] = 'Einstellungen'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantäne'; +$wb['amavis_other_txt'] = 'Sonstiges'; +$wb['add_header_txt'] = 'Header hinzufügen'; +$wb['rewrite_subject_txt'] = 'Betreff ändern'; ?> diff --git a/interface/web/mail/lib/lang/de_spamfilter_users.lng b/interface/web/mail/lib/lang/de_spamfilter_users.lng index 8528677c29f1892316bb645df27200ec03a162bc..9322c804664200e59122b34b0ab1f1e2d57bf722 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_users.lng @@ -7,7 +7,7 @@ $wb['fullname_txt'] = 'Name'; $wb['local_txt'] = 'Lokal'; $wb['email_error_notempty'] = 'Die E-Mail-Adresse darf nicht leer sein.'; $wb['fullname_error_notempty'] = 'Der Name darf nicht leer sein.'; -$wb['10 - highest'] = '10 - höchste'; +$wb['10 - highest'] = '10 - höchste'; $wb['5 - medium'] = '5 - normal'; $wb['1 - lowest'] = '1 - niedrigste'; ?> diff --git a/interface/web/mail/lib/lang/de_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/de_spamfilter_whitelist.lng index 7a953fa6cb172f76693b02f8441c1391b11e096a..fc6be5baeda96e91732ecdf682ac783636db552e 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_whitelist.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_whitelist.lng @@ -2,11 +2,11 @@ $wb['server_id_txt'] = 'Server'; $wb['wb_txt'] = 'wb'; $wb['rid_txt'] = 'Benutzer'; -$wb['email_txt'] = 'E-Mail'; +$wb['email_txt'] = 'E-Mail Adresse'; $wb['priority_txt'] = 'Priorität'; $wb['active_txt'] = 'Aktiv'; $wb['limit_spamfilter_wblist_txt'] = 'Die maximale Anzahl an White- oder Blacklist Einträgen für Ihr Konto wurde erreicht.'; -$wb['10 - highest'] = '10 - höchste'; +$wb['10 - highest'] = '10 - höchste'; $wb['5 - medium'] = '5 - normal'; $wb['1 - lowest'] = '1 - niedrigste'; ?> diff --git a/interface/web/mail/lib/lang/de_user_quota_stats_list.lng b/interface/web/mail/lib/lang/de_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/dk.lng b/interface/web/mail/lib/lang/dk.lng index 7330253c23385ff1b231c6baa9fc530d43fc673e..3fe8d568ae39076d9d2268ddc46f945cd8955c6d 100644 --- a/interface/web/mail/lib/lang/dk.lng +++ b/interface/web/mail/lib/lang/dk.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Global Filtere'; $wb['Domain Alias'] = 'Domæne Alias'; $wb['Relay Recipients'] = 'Relay Modtagere'; $wb['Mailbox quota'] = 'Postboks kvota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng b/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng index 0cdcad2098a2ed022ceebc9474d487c36511638d..8c0be4977599589207235c7a56a99e9a326182f7 100644 --- a/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ugyldigt domæne navn eller domæne, indeholder ugy $wb['limit_mailcatchall_txt'] = 'Max. antal af e-mail catchall konti for din konto er nÃ¥et.'; $wb['source_txt'] = 'Kilde'; $wb['destination_error_isemail'] = 'Destinationen er ikke en gyldig e-mail adresse.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_user.lng b/interface/web/mail/lib/lang/dk_mail_user.lng index fb846da19950a1d91eb746a783188fec4c084188..04196d6b29011205d481a692024fec4dc4bf8292 100644 --- a/interface/web/mail/lib/lang/dk_mail_user.lng +++ b/interface/web/mail/lib/lang/dk_mail_user.lng @@ -22,17 +22,24 @@ $wb['server_id_txt'] = 'Server ID'; $wb['password_txt'] = 'Adgangskode'; $wb['maildir_txt'] = 'Mailmappe'; $wb['postfix_txt'] = 'Aktiver modtagelse'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Aktiver adgang'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- ikke aktiveret -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Max. antal af mailbokse for din konto er nÃ¥et.'; $wb['limit_mailquota_txt'] = 'Max. plads for postkasser er nÃ¥et. Max. tilgængelig plads i MB er'; $wb['disablesmtp_txt'] = 'Deaktiver SMTP (afsending)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'Deaktiver IMAP'; $wb['disablepop3_txt'] = 'Deaktiver POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Der er allerede et alias eller forward for denne e-mail adresse.'; $wb['quota_error_value'] = 'Ugyldig kvote værdi. Tilladte værdier er: 0 for ubegrænset eller tal > 1'; $wb['move_junk_txt'] = 'Flyt Spam E-mails til Junk mappe.'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Navn'; $wb['name_optional_txt'] = '(Valgfri)'; $wb['autoresponder_active'] = 'Aktiver autosvarer'; @@ -50,7 +57,6 @@ $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; $wb['email_error_isascii'] = 'Undlad venligst at bruge specielle Unicode-tegn for din adgangskode Dette kan føre til problemer med din mail-klient.'; $wb['cc_note_txt'] = '(Adskil flere e-mail adresser med kommaer)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; @@ -61,5 +67,9 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_user_filter.lng b/interface/web/mail/lib/lang/dk_mail_user_filter.lng index d43af17ffb11cffe672b573c75ccec3ad2fa3bf7..ef8be2a0c97f46b8aa3ae9442f41ad8c45db9ea6 100644 --- a/interface/web/mail/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/dk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nÃ¥et.'; $wb['subject_txt'] = 'Emne'; $wb['from_txt'] = 'Fra'; $wb['to_txt'] = 'Til'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Indeholder'; $wb['is_txt'] = 'Er'; $wb['begins_with_txt'] = 'Begynder med'; diff --git a/interface/web/mail/lib/lang/dk_mail_user_list.lng b/interface/web/mail/lib/lang/dk_mail_user_list.lng index ac07bb92b3a426d2e826fc69d16a4db0ea656799..fc3afb7c4629822f7517e5029ec38d290c5d6d90 100644 --- a/interface/web/mail/lib/lang/dk_mail_user_list.lng +++ b/interface/web/mail/lib/lang/dk_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Navn'; $wb['login_txt'] = 'Log ind'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/dk_spamfilter_policy.lng b/interface/web/mail/lib/lang/dk_spamfilter_policy.lng index b225eb48ac99a1a1d57ce7e577448a90a28d9854..97b02923d82718f6fc748c1812408b0c4aea10ad 100644 --- a/interface/web/mail/lib/lang/dk_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/dk_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Meddelelses størrelse grænse'; $wb['banned_rulenames_txt'] = 'Bandlyste reglnavne'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/el.lng b/interface/web/mail/lib/lang/el.lng index f8cadc62f009b1763e9c1ce6e0d7efc720834792..cb873eac2a3ab46f81813deaba0405598f169b4d 100644 --- a/interface/web/mail/lib/lang/el.lng +++ b/interface/web/mail/lib/lang/el.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Καθολικά ΦίλτÏα'; $wb['Domain Alias'] = 'Ψευδώνυμο Domain'; $wb['Relay Recipients'] = 'ΠαÏαλήπτες Relay'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_domain_catchall.lng b/interface/web/mail/lib/lang/el_mail_domain_catchall.lng index 43c0bdf5658a522b34f3badebc2ddec1849d5c5d..b04b43cfcce3e4f179a14d74e02ac30c82dc5d63 100644 --- a/interface/web/mail/lib/lang/el_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/el_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Μη ÎγκÏÏ…Ïο όνομα domain ή το όν $wb['limit_mailcatchall_txt'] = 'Το μÎγιστο πλήθος των email catchall για τον λογαÏιασμό σας, Îχει εξαντληθεί.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_user.lng b/interface/web/mail/lib/lang/el_mail_user.lng index a097470ad7a0b921a0ac92cf7c253f6a800fbd23..b273f6b8145af328adfd6aa6a5d8d3a11181f3ab 100644 --- a/interface/web/mail/lib/lang/el_mail_user.lng +++ b/interface/web/mail/lib/lang/el_mail_user.lng @@ -20,10 +20,11 @@ $wb['server_id_txt'] = 'Aerver_id'; $wb['password_txt'] = 'Συνθηματικό'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'ΕνεÏγοποίηση Λήψης'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'ΕνεÏγοποίηση Î Ïόσβασης'; $wb['policy_txt'] = 'ΦίλτÏο Spam'; -$wb['no_policy'] = '- ανενεÏγή -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Έχετε φτάσει το μÎγιστο πλήθος των θυÏίδων για τον λογαÏιασμό σας.'; $wb['limit_mailquota_txt'] = 'Έχετε φτάσει στο μÎγεστο χώÏο της θυÏίδα σας.Ο μÎγιστος διαθÎσιμος χώÏος σε MB είναι'; $wb['disableimap_txt'] = 'ΑπενεÏγοποίηση IMAP'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'ΑπενεÏγοποίηση POP3'; $wb['duplicate_alias_or_forward_txt'] = 'ΥπάÏχει ήδη Îνα ψευδωνÏμο ή μία Ï€Ïοώθηση με αυτή τη διεÏθυνση email.'; $wb['quota_error_value'] = 'Μη ÎγκυÏη τιμή οÏίου χώÏου. ΕπιτÏεπόμενες τιμÎÏ‚ είναι: 0 για απεÏιόÏιστο ή αÏιθμοί > 1'; $wb['move_junk_txt'] = 'Μετακίνηση των Spam Emails στο φάκελο Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Î Ïαγματικό Όνομα'; $wb['name_optional_txt'] = '(Î ÏοαιÏετικό)'; $wb['autoresponder_active'] = 'ΕνεÏγοποίηση αυτόματης απάντησης'; @@ -48,10 +52,12 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; $wb['backup_interval_txt'] = 'Backup interval'; @@ -60,6 +66,10 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_user_list.lng b/interface/web/mail/lib/lang/el_mail_user_list.lng index 98cf9c200d20674753cef1e36743669f3952069a..4a532251869e15e54415ac9a63c08e543265f4f1 100644 --- a/interface/web/mail/lib/lang/el_mail_user_list.lng +++ b/interface/web/mail/lib/lang/el_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Î Ïαγματικό Όνομα'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/el_spamfilter_policy.lng b/interface/web/mail/lib/lang/el_spamfilter_policy.lng index 4ab7291697d37d7932f3a1ce950b641116258d46..0eed35023946f2d04adb1c1fd50ccc0c6a150d71 100644 --- a/interface/web/mail/lib/lang/el_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/el_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'ÎŒÏιο μεγÎθους μηνÏματος'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/el_user_quota_stats_list.lng b/interface/web/mail/lib/lang/el_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/en.lng b/interface/web/mail/lib/lang/en.lng index e5f9e678c79eda6a4741562f06f1b337cfedeaef..22c67a286b0d3d7d40ab647f87aa0b067a5d9e0b 100644 --- a/interface/web/mail/lib/lang/en.lng +++ b/interface/web/mail/lib/lang/en.lng @@ -48,4 +48,5 @@ $wb['Global Filters'] = 'Global Filters'; $wb['Domain Alias'] = 'Domain Alias'; $wb["Relay Recipients"] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; -?> \ No newline at end of file +$wb['add_header_txt'] = 'Header (adds "X-Spam: Yes")'; +$wb['rewrite_subject_txt'] = 'Subject (adds "***SPAM***" at the beginning)'; diff --git a/interface/web/mail/lib/lang/en_mail_domain_catchall.lng b/interface/web/mail/lib/lang/en_mail_domain_catchall.lng index 1f1726e54094dfe36f6979ee4b534abbc4105457..a8c294846ee1c70364527ad9f851b753b6daa298 100644 --- a/interface/web/mail/lib/lang/en_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/en_mail_domain_catchall.lng @@ -4,9 +4,10 @@ $wb["destination_txt"] = 'Destination Email'; $wb["active_txt"] = 'Active'; $wb["domain_error_unique"] = "There is already a Catchall record for this domain."; $wb["no_domain_perm"] = "You have no permission for this domain."; -$wb["domain_error_regex"] = 'Invalid domain name od domain contains invalid characters.'; +$wb["domain_error_regex"] = 'Invalid domain name or domain contains invalid characters.'; $wb["limit_mailcatchall_txt"] = 'The max. number of email catchall accounts for your account is reached.'; $wb['domain_txt'] = 'Domain'; $wb["source_txt"] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng index 4174081b53973e16de703a77fcfc4816c139814b..ed6b6e3bd326669b25b117563e86a31eefcc89f8 100644 --- a/interface/web/mail/lib/lang/en_mail_user.lng +++ b/interface/web/mail/lib/lang/en_mail_user.lng @@ -13,8 +13,7 @@ $wb["autoresponder_txt"] = 'Active'; $wb["autoresponder_start_date_txt"] = 'Start on'; $wb["autoresponder_start_date_ispast"] = 'Start date cannot be in the past.'; $wb["autoresponder_end_date_txt"] = 'End by'; -$wb["autoresponder_end_date_isgreater"] = 'End date must be set and be later than start date.'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; +$wb["autoresponder_end_date_isgreater"] = 'End date must be later than start date.'; $wb["no_domain_perm"] = 'You have no permission for this domain.'; $wb["error_no_pwd"] = 'Password is empty.'; $wb["quota_error_isint"] = 'Mailbox size must be a number.'; @@ -23,19 +22,26 @@ $wb["server_id_txt"] = 'Aerver_id'; $wb["password_txt"] = 'Password'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb["maildir_txt"] = 'Maildir'; -$wb["postfix_txt"] = 'Enable receiving'; +$wb['postfix_txt'] = 'Enable receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb["access_txt"] = 'Enable access'; $wb["policy_txt"] = 'Spamfilter'; -$wb["no_policy"] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb["limit_mailbox_txt"] = 'The max. number of mailboxes for your account is reached.'; $wb["limit_mailquota_txt"] = 'The max space for mailboxes is reached. The max. available space in MB is'; -$wb["disablesmtp_txt"] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb["disableimap_txt"] = 'Disable IMAP'; $wb["disablepop3_txt"] = 'Disable POP3'; $wb["duplicate_alias_or_forward_txt"] = 'There is already an alias or forward with this email address.'; $wb["quota_error_value"] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; -$wb["move_junk_txt"] = 'Move Spam Emails to Junk directory.'; +$wb["move_junk_txt"] = 'Move Spam Emails to Junk folder.'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb["name_txt"] = 'Name'; $wb["name_optional_txt"] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -61,5 +67,9 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_user_filter.lng b/interface/web/mail/lib/lang/en_mail_user_filter.lng index e78f808efa8a4a8df9e9d889581b57e6199ad790..462ee6d93653f8fd07abf97f2f7b82d23b053f39 100644 --- a/interface/web/mail/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/en_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb["limit_mailfilter_txt"] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/en_mail_user_list.lng b/interface/web/mail/lib/lang/en_mail_user_list.lng index c7b0a43ad20c7b928fe1fd075549e11461d74f99..bf905ed40ac64cd90ebd0ba86e38559c2ed64c8f 100644 --- a/interface/web/mail/lib/lang/en_mail_user_list.lng +++ b/interface/web/mail/lib/lang/en_mail_user_list.lng @@ -1,12 +1,13 @@ <?php -$wb["list_head_txt"] = 'Mailbox'; -$wb["email_txt"] = 'Email'; -$wb["autoresponder_txt"] = 'Autoresponder'; -$wb["add_new_record_txt"] = 'Add new Mailbox'; -$wb["name_txt"] = 'Realname'; -$wb["login_txt"] = 'Login'; -$wb["postfix_txt"] = 'Receiving'; -$wb["disablesmtp_txt"] = 'SMTP (sending)'; -$wb["disableimap_txt"] = 'IMAP'; -$wb["disablepop3_txt"] = 'POP3'; -?> \ No newline at end of file +$wb['list_head_txt'] = 'Mailbox'; +$wb['email_txt'] = 'Email'; +$wb['autoresponder_txt'] = 'Autoresponder'; +$wb['add_new_record_txt'] = 'Add new Mailbox'; +$wb['name_txt'] = 'Realname'; +$wb['login_txt'] = 'Login'; +$wb['postfix_txt'] = 'Receiving'; +$wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; +$wb['disableimap_txt'] = 'IMAP'; +$wb['disablepop3_txt'] = 'POP3'; +?> diff --git a/interface/web/mail/lib/lang/en_spamfilter_policy.lng b/interface/web/mail/lib/lang/en_spamfilter_policy.lng index 2e0f05d6c0019511862054456e91a503b60a29af..af1aac5d7f6d3172de2d07e1b215a25d173b01b3 100644 --- a/interface/web/mail/lib/lang/en_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/en_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb["bad_header_admin_txt"] = 'Bad header admin'; $wb["spam_admin_txt"] = 'SPAM admin'; $wb["message_size_limit_txt"] = 'Message size limit'; $wb["banned_rulenames_txt"] = 'Banned rulenames'; -?> +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; + +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_user_quota_stats_list.lng b/interface/web/mail/lib/lang/en_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es.lng b/interface/web/mail/lib/lang/es.lng old mode 100755 new mode 100644 index 797aeeeb60db992af2a0f93ac0a6cfb3f7b85897..fdf4e5b00dc53d9b1ff7fa0d0de35c425a54499f --- a/interface/web/mail/lib/lang/es.lng +++ b/interface/web/mail/lib/lang/es.lng @@ -45,4 +45,6 @@ $wb['Tag-Level'] = 'Nivel de etiqueta'; $wb['User / Domain'] = 'Usuario / Dominio'; $wb['Users'] = 'Usuarios'; $wb['Whitelist'] = 'Lista blanca'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/es_backup_stats_list.lng b/interface/web/mail/lib/lang/es_backup_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_alias.lng b/interface/web/mail/lib/lang/es_mail_alias.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_alias_list.lng b/interface/web/mail/lib/lang/es_mail_alias_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_aliasdomain.lng b/interface/web/mail/lib/lang/es_mail_aliasdomain.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/es_mail_aliasdomain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_backup_list.lng b/interface/web/mail/lib/lang/es_mail_backup_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_blacklist.lng b/interface/web/mail/lib/lang/es_mail_blacklist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_blacklist_list.lng b/interface/web/mail/lib/lang/es_mail_blacklist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_content_filter.lng b/interface/web/mail/lib/lang/es_mail_content_filter.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_content_filter_list.lng b/interface/web/mail/lib/lang/es_mail_content_filter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_domain.lng b/interface/web/mail/lib/lang/es_mail_domain.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/es_mail_domain_admin_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng old mode 100755 new mode 100644 index 48ead68ac16742c12d73f9ab35b8413d1159e029..68e03c8c3712d4e5730303d782022fc2fd31bcc6 --- a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_txt'] = 'Dominio'; $wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \\"recoge-todo\\" para correo permitidos para su cuenta.'; $wb['no_domain_perm'] = 'No tiene permisos para usar este dominio.'; $wb['source_txt'] = 'Origen'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_domain_list.lng b/interface/web/mail/lib/lang/es_mail_domain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_forward.lng b/interface/web/mail/lib/lang/es_mail_forward.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_forward_list.lng b/interface/web/mail/lib/lang/es_mail_forward_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_get.lng b/interface/web/mail/lib/lang/es_mail_get.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_get_list.lng b/interface/web/mail/lib/lang/es_mail_get_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_mailinglist.lng b/interface/web/mail/lib/lang/es_mail_mailinglist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/es_mail_mailinglist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_relay_recipient.lng b/interface/web/mail/lib/lang/es_mail_relay_recipient.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/es_mail_relay_recipient_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_spamfilter.lng b/interface/web/mail/lib/lang/es_mail_spamfilter.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/es_mail_spamfilter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_transport.lng b/interface/web/mail/lib/lang/es_mail_transport.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_transport_list.lng b/interface/web/mail/lib/lang/es_mail_transport_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_user.lng b/interface/web/mail/lib/lang/es_mail_user.lng old mode 100755 new mode 100644 index 93c2095e1c75f5bc208a7288ef46ba35b973896b..6757df0854e68d5f47114734fce062c7130227ed --- a/interface/web/mail/lib/lang/es_mail_user.lng +++ b/interface/web/mail/lib/lang/es_mail_user.lng @@ -4,7 +4,6 @@ $wb['active_txt'] = 'Habilitado'; $wb['autoresponder_active'] = 'Activar auto respuesta'; $wb['autoresponder_end_date_isgreater'] = 'Debe indicar la fecha de finalización y esta debe ser mayor a la de inicio.'; $wb['autoresponder_end_date_txt'] = 'Finaliza el'; -$wb['autoresponder_start_date_is_required'] = 'Cuando se activa la auto respuesta se debe definir una fecha de inicio.'; $wb['autoresponder_start_date_ispast'] = 'La fecha de inicio no puede estar en el pasado.'; $wb['autoresponder_start_date_txt'] = 'Comienza el'; $wb['autoresponder_subject'] = 'Estoy fuera de la oficina'; @@ -22,6 +21,9 @@ $wb['daily_backup_txt'] = 'Diariamente'; $wb['disableimap_txt'] = 'Deshabilitar IMAP'; $wb['disablepop3_txt'] = 'Deshabilitar POP3'; $wb['disablesmtp_txt'] = 'Deshabilitar SMTP (envÃo)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['domain_txt'] = 'Dominio'; $wb['duplicate_alias_or_forward_txt'] = 'Ya existe un alias o reenvÃo con esta dirección de correo.'; $wb['email_error_isascii'] = 'Por favor, no use caracteres unicode especiales en su contraseña. Esto puede conllevar a errores en su cliente de correo.'; @@ -40,11 +42,14 @@ $wb['login_txt'] = 'Iniciar Sesión'; $wb['maildir_txt'] = 'Dirección de correo'; $wb['monthly_backup_txt'] = 'Mensualmente'; $wb['move_junk_txt'] = 'Mover correo basura (spam) a la carpeta Basura (Junk).'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_optional_txt'] = '(Opcional)'; $wb['name_txt'] = 'Nombre'; $wb['no_backup_txt'] = 'Sin copia de seguridad'; $wb['no_domain_perm'] = 'Usted no tiene permisos para gestionar este dominio.'; -$wb['no_policy'] = '- deshabilitado -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['now_txt'] = 'Ahora'; $wb['password_match_txt'] = 'Las contraseñas coinciden.'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; @@ -52,14 +57,19 @@ $wb['password_strength_txt'] = 'Seguridad de la contraseña'; $wb['password_txt'] = 'Contraseña'; $wb['policy_txt'] = 'Filtro de spam'; $wb['postfix_txt'] = 'Habilitar recepción'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['quota_error_isint'] = 'La cuota debe ser un número.'; $wb['quota_error_value'] = 'La cuota es inválida. Los valores permitidos son: 0 para cuota ilimitada o una cantidad superior a 1'; $wb['quota_txt'] = 'Cuota (0 para ilimitada)'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['sender_cc_error_isemail'] = 'El campo -Enviar copia a- no contiene una dirección de correo válida'; -$wb['sender_cc_note_txt'] = '(Separe múltiples cuentas de correo con comas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['sender_cc_txt'] = 'Enviar copia saliente a'; $wb['server_id_txt'] = 'id_del_servidor'; $wb['weekly_backup_txt'] = 'Semanalmente'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/es_mail_user_filter.lng b/interface/web/mail/lib/lang/es_mail_user_filter.lng old mode 100755 new mode 100644 index 94100ef7a3c6a3d38f01eb68a970d295236791d1..ed221d5cb30a702fa181b27ecf4969f43299e045 --- a/interface/web/mail/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/es_mail_user_filter.lng @@ -25,5 +25,6 @@ $wb['subject_txt'] = 'Asunto'; $wb['target_error_regex'] = 'El destino solo puede contener los siguientes caracteres: a-z, 0-9, -, ., _, y {espacio}'; $wb['target_txt'] = 'Carpeta'; $wb['to_txt'] = 'Para'; +$wb['list_id_txt'] = 'List ID'; $wb['move_to_txt'] = 'Move to'; ?> diff --git a/interface/web/mail/lib/lang/es_mail_user_filter_list.lng b/interface/web/mail/lib/lang/es_mail_user_filter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_user_list.lng b/interface/web/mail/lib/lang/es_mail_user_list.lng old mode 100755 new mode 100644 index 43a09d2808f1b2e2572f579f323bf6d27efa2ef3..19a2129307f9836ef0afa08990f6f057e8080321 --- a/interface/web/mail/lib/lang/es_mail_user_list.lng +++ b/interface/web/mail/lib/lang/es_mail_user_list.lng @@ -4,6 +4,7 @@ $wb['autoresponder_txt'] = 'Auto respuesta'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; $wb['disablesmtp_txt'] = 'SMTP (envÃo)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['email_txt'] = 'Correo'; $wb['list_head_txt'] = 'Buzón'; $wb['login_txt'] = 'Entrar'; diff --git a/interface/web/mail/lib/lang/es_mail_user_stats_list.lng b/interface/web/mail/lib/lang/es_mail_user_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_mail_whitelist_list.lng b/interface/web/mail/lib/lang/es_mail_whitelist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/es_spamfilter_blacklist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/es_spamfilter_blacklist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_config.lng b/interface/web/mail/lib/lang/es_spamfilter_config.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_config_list.lng b/interface/web/mail/lib/lang/es_spamfilter_config_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_policy.lng b/interface/web/mail/lib/lang/es_spamfilter_policy.lng old mode 100755 new mode 100644 index 1cb1d436305bc088cc4ef1df46f5432f5f88d583..b7a168c9834566eba572e3abd0f56089b48c58d7 --- a/interface/web/mail/lib/lang/es_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/es_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['virus_quarantine_to_txt'] = 'Reenviar virus al correo'; $wb['warnbadhrecip_txt'] = 'Avisar al receptor de la cabecera incorrecta.'; $wb['warnbannedrecip_txt'] = 'Avisar al receptor del bloqueo.'; $wb['warnvirusrecip_txt'] = 'Avisar al receptor del virus.'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/es_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/es_spamfilter_policy_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_users.lng b/interface/web/mail/lib/lang/es_spamfilter_users.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_users_list.lng b/interface/web/mail/lib/lang/es_spamfilter_users_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/es_spamfilter_whitelist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/es_spamfilter_whitelist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_user_quota_stats_list.lng b/interface/web/mail/lib/lang/es_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_xmpp_domain.lng b/interface/web/mail/lib/lang/es_xmpp_domain.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/es_xmpp_domain_admin_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_xmpp_domain_list.lng b/interface/web/mail/lib/lang/es_xmpp_domain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_xmpp_user.lng b/interface/web/mail/lib/lang/es_xmpp_user.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/es_xmpp_user_list.lng b/interface/web/mail/lib/lang/es_xmpp_user_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi.lng b/interface/web/mail/lib/lang/fi.lng old mode 100755 new mode 100644 index 3738c7fd64154b1ca086d9fc5afa49a9cfff1b6f..78a4328336db951c351d5385aaa78d7370c3ba90 --- a/interface/web/mail/lib/lang/fi.lng +++ b/interface/web/mail/lib/lang/fi.lng @@ -45,4 +45,6 @@ $wb['Server'] = 'Palvelin'; $wb['Domain Alias'] = 'Aliasverkkotunnus'; $wb['Relay Recipients'] = 'Välityksen vastaanottajat'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_alias.lng b/interface/web/mail/lib/lang/fi_mail_alias.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_alias_list.lng b/interface/web/mail/lib/lang/fi_mail_alias_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_blacklist.lng b/interface/web/mail/lib/lang/fi_mail_blacklist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_blacklist_list.lng b/interface/web/mail/lib/lang/fi_mail_blacklist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_content_filter.lng b/interface/web/mail/lib/lang/fi_mail_content_filter.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_content_filter_list.lng b/interface/web/mail/lib/lang/fi_mail_content_filter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_domain.lng b/interface/web/mail/lib/lang/fi_mail_domain.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng b/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng old mode 100755 new mode 100644 index f835f5667a8fa4f6f268f21b28a7c123c7bb0761..085a116c2c76ae262b97e7220c6e9a8813965eae --- a/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Vääränlainen verkkotunnus tai se sisältää kie $wb['limit_mailcatchall_txt'] = 'Käyttäjätunnuksella on jo sallittu määrä CatchAll-tunnuksia.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/fi_mail_domain_catchall_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_domain_list.lng b/interface/web/mail/lib/lang/fi_mail_domain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_forward.lng b/interface/web/mail/lib/lang/fi_mail_forward.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_forward_list.lng b/interface/web/mail/lib/lang/fi_mail_forward_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_get.lng b/interface/web/mail/lib/lang/fi_mail_get.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_get_list.lng b/interface/web/mail/lib/lang/fi_mail_get_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_spamfilter.lng b/interface/web/mail/lib/lang/fi_mail_spamfilter.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/fi_mail_spamfilter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_transport.lng b/interface/web/mail/lib/lang/fi_mail_transport.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_transport_list.lng b/interface/web/mail/lib/lang/fi_mail_transport_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_user.lng b/interface/web/mail/lib/lang/fi_mail_user.lng old mode 100755 new mode 100644 index 8f94f0158f55ef5c7a056e45220f53e3e26201ff..ed3635c1ae8d7337f189604609e5cab5709e91f8 --- a/interface/web/mail/lib/lang/fi_mail_user.lng +++ b/interface/web/mail/lib/lang/fi_mail_user.lng @@ -15,10 +15,11 @@ $wb['server_id_txt'] = 'Palvelimen tunnus'; $wb['password_txt'] = 'Salasana'; $wb['maildir_txt'] = 'Postikansio'; $wb['postfix_txt'] = 'Salli vastaanotto'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Salli yhteys'; $wb['policy_txt'] = 'Roskapostisuodatin'; -$wb['no_policy'] = '- ei käytössä -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Tilisi sallittu postilaatikoiden määrä on ylitetty.'; $wb['limit_mailquota_txt'] = 'Tilisi sallittu postilaatikoiden koko on ylitetty. Vapaa tila megatavuina on'; $wb['disableimap_txt'] = 'Estä IMAP'; @@ -31,6 +32,9 @@ $wb['autoresponder_start_date_ispast'] = 'Aloituspäivä ei voi olla menneisyyde $wb['autoresponder_end_date_txt'] = 'Lopetuspäivä'; $wb['autoresponder_end_date_isgreater'] = 'Lopetuspäivän pitää olla myöhempi kuin aloituspäivä.'; $wb['move_junk_txt'] = 'Siirrä roskapostit Junk-kansioon'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Oikea nimi'; $wb['name_optional_txt'] = '(Valinnainen)'; $wb['autoresponder_active'] = 'Ota lomavastaaja käyttöön'; @@ -56,10 +60,17 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_user_filter.lng b/interface/web/mail/lib/lang/fi_mail_user_filter.lng old mode 100755 new mode 100644 index 1a4e7218a2807cf2f2e6ea293cbdfeb7880ab1c2..1238dc86fd79bc1a85fbf911121b65fabcc04488 --- a/interface/web/mail/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/fi_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/fi_mail_user_filter_list.lng b/interface/web/mail/lib/lang/fi_mail_user_filter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_user_list.lng b/interface/web/mail/lib/lang/fi_mail_user_list.lng old mode 100755 new mode 100644 index ee3f2cec4599f0a3cd03681a6e676b594c78336b..fefb8b0b79a1691af9bb13ad984cb8f2c4b91d0e --- a/interface/web/mail/lib/lang/fi_mail_user_list.lng +++ b/interface/web/mail/lib/lang/fi_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Oikea nimi'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_user_stats_list.lng b/interface/web/mail/lib/lang/fi_mail_user_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_whitelist.lng b/interface/web/mail/lib/lang/fi_mail_whitelist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_mail_whitelist_list.lng b/interface/web/mail/lib/lang/fi_mail_whitelist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/fi_spamfilter_blacklist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/fi_spamfilter_blacklist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_config.lng b/interface/web/mail/lib/lang/fi_spamfilter_config.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_config_list.lng b/interface/web/mail/lib/lang/fi_spamfilter_config_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_policy.lng b/interface/web/mail/lib/lang/fi_spamfilter_policy.lng old mode 100755 new mode 100644 index 8f61ba411b64d7bc3b9541af4d39f086e488c7fa..4f720210773d06530551f13ae152049ebf461591 --- a/interface/web/mail/lib/lang/fi_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/fi_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Otsikkovirhetunnisteiden ylläpitäjä'; $wb['spam_admin_txt'] = 'Roskapostitunnisteiden ylläpitäjä'; $wb['message_size_limit_txt'] = 'Viestin kokoraja'; $wb['banned_rulenames_txt'] = 'Estojen sääntönimet'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/fi_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/fi_spamfilter_policy_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_users.lng b/interface/web/mail/lib/lang/fi_spamfilter_users.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_users_list.lng b/interface/web/mail/lib/lang/fi_spamfilter_users_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/fi_spamfilter_whitelist.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/fi_spamfilter_whitelist_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fi_user_quota_stats_list.lng b/interface/web/mail/lib/lang/fi_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/fr.lng b/interface/web/mail/lib/lang/fr.lng index 3437d371003e1c6036001e26c0c099a0211a8a5a..a70f08029586cbe971d32de21e57c56fc90c2dcd 100644 --- a/interface/web/mail/lib/lang/fr.lng +++ b/interface/web/mail/lib/lang/fr.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Alias de domaine'; $wb['Relay Recipients'] = 'Destinataires de relais'; $wb['Mailbox quota'] = 'Mailbox quota'; $wb['Email'] = 'Email'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng index b7c4b607601e0f4d9a0df31ec12bb3939330e246..199cd47224810f26214d75b82615ddb4b8ec5bfc 100644 --- a/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nom de domaine invalide, ou contient des caractère $wb['limit_mailcatchall_txt'] = 'Le nombre maximal de comptes collecteurs pour votre compte a été atteint.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid e-mail address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_user.lng b/interface/web/mail/lib/lang/fr_mail_user.lng index bb54c2e0c0f65e2da328f75dde4c2e46ac27a810..cce8f0a8a16c1dfac899912fd074e08966bc26f6 100644 --- a/interface/web/mail/lib/lang/fr_mail_user.lng +++ b/interface/web/mail/lib/lang/fr_mail_user.lng @@ -16,9 +16,10 @@ $wb['server_id_txt'] = 'ID Serveur'; $wb['password_txt'] = 'Mot de passe'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Activer la réception'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Activer l’accès'; $wb['policy_txt'] = 'Filtre antispam'; -$wb['no_policy'] = '- inactif -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Le nombre maximal de boîtes aux lettres pour votre compte est atteint..'; $wb['limit_mailquota_txt'] = 'Lespace maximal pour les boîtes aux lettres est atteint. Lespace maximal disponible est de '; $wb['disableimap_txt'] = 'Désactiver IMAP'; @@ -30,6 +31,9 @@ $wb['autoresponder_end_date_txt'] = 'Terminer le'; $wb['autoresponder_end_date_isgreater'] = 'La date de fin doit être saisie et doit être ultérieure à la date de début.'; $wb['quota_error_value'] = 'Valeur de quota invalide. Les valeurs de quota autorisées sont : 0 pour illimité ou nombres > 1'; $wb['move_junk_txt'] = 'Déplacer le spam vers le dossier Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nom véritable'; $wb['name_optional_txt'] = '(Optionnel)'; $wb['autoresponder_active'] = 'Activer le répondeur automatique'; @@ -48,9 +52,11 @@ $wb['repeat_password_txt'] = 'Répéter le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['disablesmtp_txt'] = 'Désactiver SMTP (envoi)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['email_error_isascii'] = 'Merci de ne pas utiliser de caractères spéciaux Unicode dans votre mot de passe. Ceci pourrait engendrer des problèmes avec votre client mail.'; $wb['cc_note_txt'] = '(Séparer les adresses e-mail multiples par des virgules)'; -$wb['autoresponder_start_date_is_required'] = 'Une date de démarrage doit être renseignée quand le répondeur automatique est activé.'; $wb['greylisting_txt'] = 'Activer le greylisting'; $wb['sender_cc_txt'] = 'Envoyer une copie des mails sortants à '; $wb['sender_cc_error_isemail'] = 'Le champ -Envoyer une copie des mails sortants à - no contiens pas une adresse e-mail valide'; @@ -60,6 +66,10 @@ $wb['no_backup_txt'] = 'Pas de backup'; $wb['daily_backup_txt'] = 'Journalier'; $wb['weekly_backup_txt'] = 'Hebdomadaire'; $wb['monthly_backup_txt'] = 'Mensuel'; -$wb['sender_cc_note_txt'] = '(Séparer les adresses e-mail multiples par des virgules)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Cliquez pour définir'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_user_filter.lng b/interface/web/mail/lib/lang/fr_mail_user_filter.lng index 49c5076d954656178667b5b42d1a08f192e5f7b5..b5cacf2e98628f05d922532ef14e023f12d9ee08 100644 --- a/interface/web/mail/lib/lang/fr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/fr_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Le nombre max de filtres e-mail est atteint.'; $wb['subject_txt'] = 'Sujet'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Pour'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contient'; $wb['is_txt'] = 'Est'; $wb['begins_with_txt'] = 'Commence par'; diff --git a/interface/web/mail/lib/lang/fr_mail_user_list.lng b/interface/web/mail/lib/lang/fr_mail_user_list.lng index 0d4152913afd3a5fdc046fde44af994bb46f3002..79e999b6396c9366044d90465d9f7f6f6e27b9cd 100644 --- a/interface/web/mail/lib/lang/fr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/fr_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nom véritable'; $wb['login_txt'] = 'Nom d’utilisateur'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/fr_spamfilter_policy.lng b/interface/web/mail/lib/lang/fr_spamfilter_policy.lng index d07b382ddf7781c993f3382dddc875e4e7738c00..7b593f0a1697c9b78dc1f64dd0da707abf33de0f 100644 --- a/interface/web/mail/lib/lang/fr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/fr_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin mauvais entête'; $wb['spam_admin_txt'] = 'Admin SPAM'; $wb['message_size_limit_txt'] = 'Limite de taille de message'; $wb['banned_rulenames_txt'] = 'Noms des règles bannir'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/fr_user_quota_stats_list.lng b/interface/web/mail/lib/lang/fr_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/hr.lng b/interface/web/mail/lib/lang/hr.lng index 882f6d2b7e1174df778c2e01a26dd91c7ed73064..877f8827f5bd5de291022b96528d15afb92109ec 100644 --- a/interface/web/mail/lib/lang/hr.lng +++ b/interface/web/mail/lib/lang/hr.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Alias domena'; $wb['Relay Recipients'] = 'Relay primatelji'; $wb['Mailbox quota'] = 'Mailbox quota'; $wb['Domain'] = 'Domain'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng index 2c8d23e2184db732dd9ae9d3f91696fcf4880e7b..1c8da72ab3ee0107c9b09b518cfc5e6c677a5ba7 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Neispravan naziv domene ili naziv sadrži nedozvolj $wb['limit_mailcatchall_txt'] = 'IskoriÅ¡ten ja maksimalan broj email catchall raÄuna.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_user.lng b/interface/web/mail/lib/lang/hr_mail_user.lng index 8dcfe7a6fa6bf6fea6a2d11290a24123cf10152b..0cb1b91849c50d752b0d3a3ddd9da442d0dc0cea 100644 --- a/interface/web/mail/lib/lang/hr_mail_user.lng +++ b/interface/web/mail/lib/lang/hr_mail_user.lng @@ -10,7 +10,7 @@ $wb['autoresponder_text_txt'] = 'Text'; $wb['autoresponder_txt'] = 'Aktivno'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; $wb['error_no_pwd'] = 'Password is empty.'; $wb['quota_error_isint'] = 'Mailbox size must be a number.'; @@ -20,10 +20,11 @@ $wb['password_txt'] = 'Å ifra'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Enable Receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Enable Access'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'The max. number of mailboxes for your account is reached.'; $wb['limit_mailquota_txt'] = 'The max space for mailboxes is reached. The max. available space in MB is'; $wb['disableimap_txt'] = 'Disable IMAP'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'Disable POP3'; $wb['duplicate_alias_or_forward_txt'] = 'There is already an alias or forward with this email address.'; $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -53,7 +57,10 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; @@ -61,5 +68,9 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_user_list.lng b/interface/web/mail/lib/lang/hr_mail_user_list.lng index 498570c344a4a38e6fe37b2c305b2f82455d441e..1c27b725d3aa161d1d74c60bd6e668a493bf4db2 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Ime'; $wb['login_txt'] = 'Prijava'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/hr_spamfilter_policy.lng b/interface/web/mail/lib/lang/hr_spamfilter_policy.lng index e876330a68c7c365b12bf9a3f3cf6b5a652a6093..683b378c21e0eebc93556c6914165bc708521c02 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/hu.lng b/interface/web/mail/lib/lang/hu.lng index 752f4003a8f4683f53dedc7e4e30c061f443b92b..f3ffa4aef0414529a3048700bb37e983663842fc 100644 --- a/interface/web/mail/lib/lang/hu.lng +++ b/interface/web/mail/lib/lang/hu.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Server'] = 'Server'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng b/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng index 8331f2210178793142f38498dc0c334c8f559f2e..e26795953dc06ac0ae227577a9bdbaaefc06f72b 100644 --- a/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Érvénytelen domain vagy a domain érvénytelen ka $wb['limit_mailcatchall_txt'] = 'Nincs több catchall lehetÅ‘ség.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_user.lng b/interface/web/mail/lib/lang/hu_mail_user.lng index 43720fbd84891039a0fac5cd6a65f9abd7f457dc..610f40b4ba8b0342590967991a9512ae97d19d55 100644 --- a/interface/web/mail/lib/lang/hu_mail_user.lng +++ b/interface/web/mail/lib/lang/hu_mail_user.lng @@ -16,10 +16,11 @@ $wb['password_txt'] = 'Jelszó'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'levelezÅ‘láda'; $wb['postfix_txt'] = 'BejövÅ‘ engedélyezés'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Hozzáférés engelyezés'; $wb['policy_txt'] = 'Spam szűrÅ‘'; -$wb['no_policy'] = '- nem engelyézett -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Nincs több mailbox lehetÅ‘ség.'; $wb['limit_mailquota_txt'] = 'Mailbox tárhely elfogyott.'; $wb['disableimap_txt'] = 'IMAP Tiltás'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlim $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Név'; $wb['name_optional_txt'] = '(Opcionális)'; $wb['autoresponder_active'] = 'Automatikus válasz engedélyezése'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_user_list.lng b/interface/web/mail/lib/lang/hu_mail_user_list.lng index 8bf44e936cee9af091a9fce8c6546b8f84220357..7f1ec6265bc918a376356799e5515aeba5b185cb 100644 --- a/interface/web/mail/lib/lang/hu_mail_user_list.lng +++ b/interface/web/mail/lib/lang/hu_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Név'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/hu_spamfilter_policy.lng b/interface/web/mail/lib/lang/hu_spamfilter_policy.lng index 391d4ab43aee0e05aabd367c850527eebb81e2ea..c2b6b9244c4fd14d4328ae39f9c70f8956c32bdc 100644 --- a/interface/web/mail/lib/lang/hu_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/hu_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Hibás fejléc admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Levél méret limit'; $wb['banned_rulenames_txt'] = 'Tiltószabály nevek'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/hu_user_quota_stats_list.lng b/interface/web/mail/lib/lang/hu_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/id.lng b/interface/web/mail/lib/lang/id.lng index c9acaf27f169e12d7bada6a4f21bc960bc753bf3..3a2b5dfe452b76e838f7b3d4f2cc180861247af2 100644 --- a/interface/web/mail/lib/lang/id.lng +++ b/interface/web/mail/lib/lang/id.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Penyaringan Global'; $wb['Domain Alias'] = 'Alias Domain'; $wb['Relay Recipients'] = 'Penerima Relay'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_domain_catchall.lng b/interface/web/mail/lib/lang/id_mail_domain_catchall.lng index 435856c1059e8900ca00d218853009449be044cd..c380957fdc210a831adacd6059a232378ee4fe79 100644 --- a/interface/web/mail/lib/lang/id_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/id_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nama domain tidak valid atau domain mengandung kara $wb['limit_mailcatchall_txt'] = 'Jumlah maks akun catchall email untuk akun Anda sudah tercapai.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_user.lng b/interface/web/mail/lib/lang/id_mail_user.lng index ba17e373c7d8ca57d9a6c8307fea3c60ff4274e4..e4daf311f334f71992a3d9a3d2040c1197c1c61b 100644 --- a/interface/web/mail/lib/lang/id_mail_user.lng +++ b/interface/web/mail/lib/lang/id_mail_user.lng @@ -21,10 +21,11 @@ $wb['password_txt'] = 'Kata Sandi'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Dapat Menerima'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Dapat Mengakses'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- tidak diaktifkan -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Jumlah maks mailbox untuk akun Anda sudah tercapai.'; $wb['limit_mailquota_txt'] = 'Ruang maks untuk mailbox sudah tercapai. Ruang maks yang tersedia dalam MB adalah'; $wb['disableimap_txt'] = 'Nonaktifkan IMAP'; @@ -32,6 +33,9 @@ $wb['disablepop3_txt'] = 'Nonaktifkan POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Sudah ada alias atau forward untuk alamat email ini.'; $wb['quota_error_value'] = 'Nilai kuota tidak valid. Nilai yang diperbolehkan adalah: 0 untuk tak terbatas atau angka > 1'; $wb['move_junk_txt'] = 'Pindahkan Email Spam ke direktori Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nama Lengkap'; $wb['name_optional_txt'] = '(Opsional)'; $wb['autoresponder_active'] = 'Aktifkan Penjawab Otomatis'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_user_filter.lng b/interface/web/mail/lib/lang/id_mail_user_filter.lng index 0def30d1a8db3e0ee6f1137af335d36edf72a348..93f45979f39348b4af6d623eb201895daee9775e 100644 --- a/interface/web/mail/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/id_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/id_mail_user_list.lng b/interface/web/mail/lib/lang/id_mail_user_list.lng index 49a2afe94372b918bd8a95206bd979e2241ec89b..3127853a0ee41958e728425603b6a7ffe93b37f2 100644 --- a/interface/web/mail/lib/lang/id_mail_user_list.lng +++ b/interface/web/mail/lib/lang/id_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nama Lengkap'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/id_spamfilter_policy.lng b/interface/web/mail/lib/lang/id_spamfilter_policy.lng index afa0ba1a0918c4401d61716d29627b25a0208906..9813dec470d870a8c507f0d343ff9de4c38c335b 100644 --- a/interface/web/mail/lib/lang/id_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/id_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin Bad header'; $wb['spam_admin_txt'] = 'Admin SPAM'; $wb['message_size_limit_txt'] = 'Batasan ukuran pesan'; $wb['banned_rulenames_txt'] = 'Nama aturan Banned'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/id_user_quota_stats_list.lng b/interface/web/mail/lib/lang/id_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/it.lng b/interface/web/mail/lib/lang/it.lng index 715e2efb8e43c73aa3679293b213e4a8f2af527a..15bc87ea3f470e39913aa49780cbe5a356e8a41f 100644 --- a/interface/web/mail/lib/lang/it.lng +++ b/interface/web/mail/lib/lang/it.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Filtri globali'; $wb['Domain Alias'] = 'Alias dominio'; $wb['Relay Recipients'] = 'Destinatari inoltro'; $wb['Mailbox quota'] = 'Quota Casella di Posta'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_domain_catchall.lng b/interface/web/mail/lib/lang/it_mail_domain_catchall.lng index 6ff4cbdf1c9304d990b8092d050d8789bfef08e3..3345bed9c7e646b0cdab80cee00daa478c60a9cf 100644 --- a/interface/web/mail/lib/lang/it_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/it_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Invalid domain name od domain contiene caratteri no $wb['limit_mailcatchall_txt'] = 'The max. number of email catchall accounts raggiunto per il tuo account.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_user.lng b/interface/web/mail/lib/lang/it_mail_user.lng index e6820a03290f57818937c685258922d9488475c3..34b523f5519cc5f2dd6222d9be95123ed0513fb0 100644 --- a/interface/web/mail/lib/lang/it_mail_user.lng +++ b/interface/web/mail/lib/lang/it_mail_user.lng @@ -17,9 +17,10 @@ $wb['password_txt'] = 'password'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Abilita ricezione'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Abilita indirizzo'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- non abilitato -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Hai raggiungo il numero massimo di caselle per il tuo account.'; $wb['limit_mailquota_txt'] = 'Hai raggiunto lo spazio massimo per le tue caselle di posta. Lo spazio massimo in MB è di'; $wb['disableimap_txt'] = 'Disabilita IMAP'; @@ -31,6 +32,9 @@ $wb['autoresponder_start_date_ispast'] = 'La data di avvio no può essere anterg $wb['autoresponder_end_date_txt'] = 'Termina il'; $wb['autoresponder_end_date_isgreater'] = 'La data termine deve essere impostata e successiva al giorno di inizio.'; $wb['move_junk_txt'] = 'Sposta Email di Spam nella cartella di spam Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nome vero'; $wb['name_optional_txt'] = '(Opzionale)'; $wb['autoresponder_active'] = 'Abilita autorisponditore'; @@ -51,6 +55,9 @@ $wb['password_match_txt'] = 'Le passwords coincidono.'; $wb['email_error_isascii'] = 'Non utilizzare caratteri speciali unicode per la password. Potresti avere problemi con il tuo client di psota.'; $wb['cc_note_txt'] = '(Separa indirizzi email multipli con la virgola)'; $wb['disablesmtp_txt'] = 'Disabilita SMTP (trasmissione)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; @@ -61,5 +68,9 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_user_list.lng b/interface/web/mail/lib/lang/it_mail_user_list.lng index 098cb1a1626ecbc0bdd1dbe1983818ad52eea332..87038b875e6ea048cbafe81a0ad6f18b8035ead6 100644 --- a/interface/web/mail/lib/lang/it_mail_user_list.lng +++ b/interface/web/mail/lib/lang/it_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nome reale'; $wb['login_txt'] = 'Accedi'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/it_spamfilter_policy.lng b/interface/web/mail/lib/lang/it_spamfilter_policy.lng index e876330a68c7c365b12bf9a3f3cf6b5a652a6093..683b378c21e0eebc93556c6914165bc708521c02 100644 --- a/interface/web/mail/lib/lang/it_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/it_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/it_user_quota_stats_list.lng b/interface/web/mail/lib/lang/it_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/ja.lng b/interface/web/mail/lib/lang/ja.lng index f8289d49070912e680894b451d301ea189a02fc7..818a3ed126e4c3823692a00db81cb1983f9d3ceb 100644 --- a/interface/web/mail/lib/lang/ja.lng +++ b/interface/web/mail/lib/lang/ja.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'ã‚°ãƒãƒ¼ãƒãƒ«ãƒ•ィルター'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng index cb430fefe650083a1b65cabf1e3b8a298f1626eb..6da7d05c5608ab897af68322f7c5a6e1203a84fd 100644 --- a/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'ドメインåãŒä¸æ£ã§ã™ã€‚ç„¡åŠ¹ãªæ–‡å—ã‚’ $wb['limit_mailcatchall_txt'] = 'ã‚ャッãƒã‚ªãƒ¼ãƒ«ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒæœ€å¤§æ•°ã«é”ã—ãŸãŸã‚ã€ã“ã‚Œä»¥ä¸Šè¿½åŠ ã§ãã¾ã›ã‚“。'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_user.lng b/interface/web/mail/lib/lang/ja_mail_user.lng index 3cd498f27054aabf3dae0b07397145e449b2281d..7b6b48dca49915804de56b50f85551a43d09a65d 100644 --- a/interface/web/mail/lib/lang/ja_mail_user.lng +++ b/interface/web/mail/lib/lang/ja_mail_user.lng @@ -17,10 +17,11 @@ $wb['password_txt'] = 'パスワード'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'メールディレクトリ'; $wb['postfix_txt'] = 'メールをå—ä¿¡ã™ã‚‹'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'アクセスを許å¯ã™ã‚‹'; $wb['policy_txt'] = 'スパムフィルター'; -$wb['no_policy'] = '- 利用ã—ãªã„ -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'ãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ãŒæœ€å¤§æ•°ã«é”ã—ãŸç‚ºã€ã“ã‚Œä»¥ä¸Šè¿½åŠ ã§ãã¾ã›ã‚“。'; $wb['limit_mailquota_txt'] = 'メールボックスãŒä¸€æ¯ã§ã™ã€‚ 上é™ï¼ˆMB):'; $wb['disableimap_txt'] = 'IMAP を無効ã«ã™ã‚‹'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = '容é‡ã®å€¤ãŒä¸æ£ã§ã™ã€‚ 無制é™ã«ã™ã‚‹å ´ $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_user_filter.lng b/interface/web/mail/lib/lang/ja_mail_user_filter.lng index 847640fee4a1f01ccdb0e3af6377026b8b29e1b9..8ee3801cc8d146ab6086a6c66f082dc0d5902a14 100644 --- a/interface/web/mail/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ja_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/ja_mail_user_list.lng b/interface/web/mail/lib/lang/ja_mail_user_list.lng index 0bb531f78596ebc6754618202dd477a7f65aebdd..bf905ed40ac64cd90ebd0ba86e38559c2ed64c8f 100644 --- a/interface/web/mail/lib/lang/ja_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ja_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ja_spamfilter_policy.lng b/interface/web/mail/lib/lang/ja_spamfilter_policy.lng index 89d377a38429c6870ab5fccff09de4cf92cb7cc5..a23f28a7668c21998b91267daefb3e03dbd33502 100644 --- a/interface/web/mail/lib/lang/ja_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ja_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ja_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ja_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/nl.lng b/interface/web/mail/lib/lang/nl.lng index e47cc658114c9dfd015e145fd4a36b3bc24ee6dc..6664809b46c0df078a6b3caa4bd20713bcd694fb 100644 --- a/interface/web/mail/lib/lang/nl.lng +++ b/interface/web/mail/lib/lang/nl.lng @@ -13,7 +13,7 @@ $wb['Spamfilter'] = 'Spamfilter'; $wb['Email Routing'] = 'Email routing'; $wb['Email transport'] = 'Email transport'; $wb['Mailbox'] = 'Mailbox'; -$wb['Autoresponder'] = 'Autoresponder'; +$wb['Autoresponder'] = 'Autobeantwoorden'; $wb['Mail Filter'] = 'Mail filter'; $wb['Custom Rules'] = 'Custom rules'; $wb['Email filter'] = 'E-mail filter'; @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globale filters'; $wb['Domain Alias'] = 'Domein alias'; $wb['Relay Recipients'] = 'Relay ontvangers'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng b/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng index 06ad66c9bee5e0956fc4c12592dda50dae85f405..ee9c1f7678ae28fb04365a245a331d5848c1397f 100644 --- a/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ongeldige domeinnaam of domein bevat ongeldige kara $wb['limit_mailcatchall_txt'] = 'Het max. aantal e-mail catchall accounts voor uw account is bereikt.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_get.lng b/interface/web/mail/lib/lang/nl_mail_get.lng index 5cbeab14e71c65c41eed389fae10e3dda398b44f..738f93e663f6a1cd26fe86fef7cf1941a27f5564 100644 --- a/interface/web/mail/lib/lang/nl_mail_get.lng +++ b/interface/web/mail/lib/lang/nl_mail_get.lng @@ -13,7 +13,7 @@ $wb['source_username_error_isempty'] = 'Gebruikersnaam is niet ingvuld.'; $wb['source_password_error_isempty'] = 'Wachtwoord is niet ingvuld.'; $wb['destination_error_isemail'] = 'Geen bestemming geselecteerd.'; $wb['source_server_error_regex'] = 'Pop3/Imap server is geen geldige domeinnaam.'; -$wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; -$wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; +$wb['source_read_all_txt'] = 'Haal alle berichten op (incl. reeds gelezen)'; +$wb['error_delete_read_all_combination'] = 'Ongeldige combinatie van opties. \\"Verwijder e-mails na ontvangst\\" en \\"Haal alle berichten op (incl. reeds gelezen)\\" werken niet samen.'; +$wb['source_delete_note_txt'] = 'Controleer voor het activeren van deze optie of het ophalen van berichten naar verwachting werkt.'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng index 94dd0183329ea6a9d369f939763c9f70c7e836c7..83002f79aaef705f59ffdc9b0c210799339d451a 100644 --- a/interface/web/mail/lib/lang/nl_mail_user.lng +++ b/interface/web/mail/lib/lang/nl_mail_user.lng @@ -9,7 +9,6 @@ $wb['email_error_unique'] = 'Duplicaat e-mail adres.'; $wb['autoresponder_text_txt'] = 'Tekst'; $wb['autoresponder_txt'] = 'Actief'; $wb['autoresponder_start_date_txt'] = 'Start op'; -$wb['autoresponder_start_date_ispast'] = 'Start datum mag niet in het verleden liggen.'; $wb['autoresponder_end_date_txt'] = 'Eindigt op'; $wb['autoresponder_end_date_isgreater'] = 'Einddatum moet later zijn dan de startdatum.'; $wb['no_domain_perm'] = 'U heeft geen toestemming voor dit domein.'; @@ -21,10 +20,11 @@ $wb['password_txt'] = 'Wachtwoord'; $wb['password_click_to_set_txt'] = 'Klik om in te stellen'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Ontvangen inschakelen'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Greylisting inschakelen'; $wb['access_txt'] = 'Toegang inschakelen'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- niet ingeschakeld -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Het max. aantal mailboxen voor uw account is bereikt.'; $wb['limit_mailquota_txt'] = 'De max. ruimte voor uw mailboxen is bereikt. De max. beschikbare ruimte in MB is'; $wb['disableimap_txt'] = 'Uitschakelen IMAP'; @@ -32,13 +32,16 @@ $wb['disablepop3_txt'] = 'Uitschakelen POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Er is al een alias of forward met dir e-mailadres.'; $wb['quota_error_value'] = 'Ongeldige quota waarde. Toegestane waarden zijn: 0 = ongelimiteerd of nummerieke waarde > 1'; $wb['move_junk_txt'] = 'Verplaats SPAM e-mails naar junk folder'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Echte naam'; $wb['name_optional_txt'] = '(Optioneel)'; -$wb['autoresponder_active'] = 'Inschakelen autoresponder'; +$wb['autoresponder_active'] = 'Inschakelen autobeantwoorden'; $wb['cc_txt'] = 'Stuur kopie naar'; $wb['cc_error_isemail'] = 'Het \\"Stuur kopie naar\\" veld bevat geen geldig e-mail adres'; $wb['domain_txt'] = 'Domain'; -$wb['now_txt'] = 'Now'; +$wb['now_txt'] = 'Nu'; $wb['login_error_unique'] = 'Login is already taken.'; $wb['login_error_regex'] = 'Valid characters are A-Z, a-z, 0-9, ., _ and -.'; $wb['login_txt'] = 'Login (optional)'; @@ -58,8 +61,15 @@ $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; +$wb['autoresponder_start_date_is_required'] = 'Een startdatun is vereist voor het inschakelen van Autobeantwoorden.'; $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan'; $wb['sender_cc_error_isemail'] = 'Het \\"Stuur uitgaande kopie aan\\" veld bevat geen geldig e-mail adres'; -$wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_user_filter.lng b/interface/web/mail/lib/lang/nl_mail_user_filter.lng index 903b61072928c03f49e88a7d56ff92660364116b..95af45d96e51577b7f1c5fd1db3f3fe43889cf27 100644 --- a/interface/web/mail/lib/lang/nl_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/nl_mail_user_filter.lng @@ -7,23 +7,23 @@ $wb['rulename_error_empty'] = 'Naam is niet ingvuld.'; $wb['searchterm_is_empty'] = 'Zoekterm is niet ingvuld.'; $wb['source_txt'] = 'Bron'; $wb['target_error_regex'] = 'Het doel mag alleen de volgende karakters bevatten: a-z, 0-9, -, ., _, en {spatie}'; -$wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; -$wb['subject_txt'] = 'Subject'; -$wb['from_txt'] = 'From'; -$wb['to_txt'] = 'To'; -$wb['contains_txt'] = 'Contains'; +$wb['limit_mailfilter_txt'] = 'Het max. aantal e-mail filters voor uw account is bereikt.'; +$wb['subject_txt'] = 'Onderwerp'; +$wb['from_txt'] = 'Afzender'; +$wb['to_txt'] = 'Bestemming'; +$wb['contains_txt'] = 'Bevat'; $wb['is_txt'] = 'Is'; -$wb['begins_with_txt'] = 'Begins with'; -$wb['ends_with_txt'] = 'Ends with'; -$wb['delete_txt'] = 'Delete'; -$wb['move_stop_txt'] = 'Move to'; +$wb['begins_with_txt'] = 'Begint met'; +$wb['ends_with_txt'] = 'Eindigt in'; +$wb['delete_txt'] = 'Verwijderen'; +$wb['move_stop_txt'] = 'Verplaatsen naar'; $wb['header_txt'] = 'Header'; -$wb['size_over_txt'] = 'Email size over (KB)'; -$wb['size_under_txt'] = 'Email size under (KB)'; +$wb['size_over_txt'] = 'Email grootte bove (KB)'; +$wb['size_under_txt'] = 'Email grootte onder (KB)'; $wb['localpart_txt'] = 'Localpart'; -$wb['domain_txt'] = 'Domain'; -$wb['keep_txt'] = 'Keep'; -$wb['reject_txt'] = 'Reject'; +$wb['domain_txt'] = 'Domein'; +$wb['keep_txt'] = 'Behouden'; +$wb['reject_txt'] = 'Afwijzen'; $wb['stop_txt'] = 'Stop'; -$wb['move_to_txt'] = 'Move to'; +$wb['move_to_txt'] = 'Verplaatsen naar'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_user_list.lng b/interface/web/mail/lib/lang/nl_mail_user_list.lng index e421af0ecc6d674117e75721b808b96c9c70afaa..da872b2c28aa690602ff2106f4137892ee2177a2 100644 --- a/interface/web/mail/lib/lang/nl_mail_user_list.lng +++ b/interface/web/mail/lib/lang/nl_mail_user_list.lng @@ -1,12 +1,13 @@ <?php $wb['list_head_txt'] = 'Mailbox'; $wb['email_txt'] = 'E-mail'; -$wb['autoresponder_txt'] = 'Autoresponder'; +$wb['autoresponder_txt'] = 'Autobeantwoorden'; $wb['add_new_record_txt'] = 'Toevoegen mailbox'; $wb['name_txt'] = 'Echte naam'; $wb['login_txt'] = 'Login'; -$wb['postfix_txt'] = 'Receiving'; +$wb['postfix_txt'] = 'Ontvangen'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/nl_spamfilter_policy.lng b/interface/web/mail/lib/lang/nl_spamfilter_policy.lng index 84d5242da9f0676242a33a2630a5d9d43dc8e471..4a7ab96152fb78be0bd8936d36d3abd53e7f524a 100644 --- a/interface/web/mail/lib/lang/nl_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/nl_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Bericht grootte limiet'; $wb['banned_rulenames_txt'] = 'Verbannen rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/nl_spamfilter_users.lng b/interface/web/mail/lib/lang/nl_spamfilter_users.lng index 4b7144b1f30d6baff0b0c3be6b66fdbcd1186126..697e130b35b684598ec557f33e87614e51ad65b5 100644 --- a/interface/web/mail/lib/lang/nl_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/nl_spamfilter_users.lng @@ -4,7 +4,7 @@ $wb['priority_txt'] = 'Prioriteit'; $wb['policy_id_txt'] = 'Policy'; $wb['email_txt'] = 'E-mail (Patroon)'; $wb['fullname_txt'] = 'Naam'; -$wb['local_txt'] = 'Locaal'; +$wb['local_txt'] = 'Lokaal'; $wb['email_error_notempty'] = 'The email address must not be empty.'; $wb['fullname_error_notempty'] = 'The name must not be empty.'; $wb['10 - highest'] = '10 - highest'; diff --git a/interface/web/mail/lib/lang/nl_user_quota_stats_list.lng b/interface/web/mail/lib/lang/nl_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/pl.lng b/interface/web/mail/lib/lang/pl.lng index 93861b784d051e3bf1f0136b7d2b611ab517c327..17b77019928c2b11d7eb14812ffb29ed7b56f8ee 100644 --- a/interface/web/mail/lib/lang/pl.lng +++ b/interface/web/mail/lib/lang/pl.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globalne filtry'; $wb['Domain Alias'] = 'Alias domeny'; $wb['Relay Recipients'] = 'Odbiorcy przekierowania'; $wb['Mailbox quota'] = 'Użycie skrzynek email'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng b/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng index 3630b954bfe00f3dccaeb2b8d61e9cb53ea7de6d..fad83875ca1b49db9b09a750e13b07c08348e2e6 100644 --- a/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'NieprawidÅ‚owa nazwa domeny. Domena zawiera niedozo $wb['limit_mailcatchall_txt'] = 'Maksymalna ilość kont e-mail catchall dla Twojej domeny zostaÅ‚a przekroczona.'; $wb['source_txt'] = 'ŹródÅ‚o'; $wb['destination_error_isemail'] = 'Cel nie jest poprawnym adresem email.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/pl_mail_user.lng b/interface/web/mail/lib/lang/pl_mail_user.lng index d090fadb2a18e90e114f9c06b6a2749b7389c55d..15ddeca66f883c3d5a8ab11ef518e24cbf199947 100644 --- a/interface/web/mail/lib/lang/pl_mail_user.lng +++ b/interface/web/mail/lib/lang/pl_mail_user.lng @@ -17,10 +17,11 @@ $wb['password_txt'] = 'HasÅ‚o'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Zezwól na odbiór poczty'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Możliwy dostÄ™p'; $wb['policy_txt'] = 'Filtr spamu'; -$wb['no_policy'] = '- brak polityki -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Maksymalna ilość skrzynek pocztowych dla Twojego konta zostaÅ‚a przekroczona.'; $wb['limit_mailquota_txt'] = 'Maksymalna pojemność skrzynki pocztowej zostaÅ‚a przekroczona. Maksymalne dostÄ™pne miejsce w MB to: '; $wb['disableimap_txt'] = 'Wyłącz IMAP'; @@ -32,6 +33,9 @@ $wb['autoresponder_start_date_ispast'] = 'Data uruchomienia nie może być w prz $wb['autoresponder_end_date_txt'] = 'ZakoÅ„cz do'; $wb['autoresponder_end_date_isgreater'] = 'Data zakoÅ„czenia musi być późniejsza od daty rozpoczÄ™cia'; $wb['move_junk_txt'] = 'PrzenoÅ› SPAM do folderu Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nazwa rzeczywista'; $wb['name_optional_txt'] = '(Opcjonalnie)'; $wb['autoresponder_active'] = 'Uruchom autorespondera'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/pl_mail_user_list.lng b/interface/web/mail/lib/lang/pl_mail_user_list.lng index 74ca840e3096f43af809941605be29fbf821fe68..f839a56720d4f1c2cb21b7229db4ffaaca35576d 100644 --- a/interface/web/mail/lib/lang/pl_mail_user_list.lng +++ b/interface/web/mail/lib/lang/pl_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nazwa rzeczywista'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/pl_spamfilter_policy.lng b/interface/web/mail/lib/lang/pl_spamfilter_policy.lng index 8a825b55946b39c68fb62b2fd44339a978b00561..8291102308654357da915677a39d56430e350eb5 100644 --- a/interface/web/mail/lib/lang/pl_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/pl_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin obsÅ‚ugi zÅ‚ych nagÅ‚owków'; $wb['spam_admin_txt'] = 'Admin obsÅ‚ugi spamu'; $wb['message_size_limit_txt'] = 'Limit wielkoÅ›ci wiadomoÅ›ci'; $wb['banned_rulenames_txt'] = 'Zabronione nazwy zasad'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/pl_user_quota_stats_list.lng b/interface/web/mail/lib/lang/pl_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/pt.lng b/interface/web/mail/lib/lang/pt.lng index 7a9a69cf838c9e80ea109927e7d7061df11b93ce..d47eb6183bdcfe5f10c3a579c545034d9649a4c4 100644 --- a/interface/web/mail/lib/lang/pt.lng +++ b/interface/web/mail/lib/lang/pt.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Filtros Globais'; $wb['Domain Alias'] = 'DomÃnios Alias'; $wb['Relay Recipients'] = 'Recipientes de Relay'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng b/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng index 1fde21c02051139d5c116dd393227a1788075fe2..e81afd74b904f757edfe264b9146c95d64099ce3 100644 --- a/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'O nome do domÃnio contém caracteres inválidos'; $wb['limit_mailcatchall_txt'] = 'O número máximo de catchall para este domÃnio foi atingido.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_user.lng b/interface/web/mail/lib/lang/pt_mail_user.lng index aa0e9a0a050a76380d1396ad48a299d0eec2c3b3..9f6227e268ccd7031d32304aecab61c6e134b16f 100644 --- a/interface/web/mail/lib/lang/pt_mail_user.lng +++ b/interface/web/mail/lib/lang/pt_mail_user.lng @@ -17,10 +17,11 @@ $wb['password_txt'] = 'Senha'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Permitir Recepção'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Permitir Acesso'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- desactivado -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'O número máximo de caixas de correio para a conta foi atingido.'; $wb['limit_mailquota_txt'] = 'O espaço em disco disponÃvel para criação de contas foi atingido.'; $wb['disableimap_txt'] = 'Desactivar IMAP'; @@ -32,6 +33,9 @@ $wb['autoresponder_start_date_ispast'] = 'A data de Ãnicio não pode estar no p $wb['autoresponder_end_date_txt'] = 'Termino:'; $wb['autoresponder_end_date_isgreater'] = 'A data de inÃcio deve ser menor que a data de termino.'; $wb['move_junk_txt'] = 'Mover Spam para a pasta JUNK'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_user_filter.lng b/interface/web/mail/lib/lang/pt_mail_user_filter.lng index 42a7481d70fd920312f11f51706a6fe19097e0ac..906c27ecd2d6e523b6b8ec5c255383e1d065f33e 100644 --- a/interface/web/mail/lib/lang/pt_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/pt_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/pt_mail_user_list.lng b/interface/web/mail/lib/lang/pt_mail_user_list.lng index fe89939e2b57a707751e3ee4a03862c843866b35..9f19168fba870fdbbcd0069bac75c18cf00a1502 100644 --- a/interface/web/mail/lib/lang/pt_mail_user_list.lng +++ b/interface/web/mail/lib/lang/pt_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/pt_spamfilter_policy.lng b/interface/web/mail/lib/lang/pt_spamfilter_policy.lng index 1610aebdcaf6814a35a9b5938f55438eed093227..af960c99f610a4800f4e0a323ad8b00d98b5df83 100644 --- a/interface/web/mail/lib/lang/pt_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/pt_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Administrador de Bad header'; $wb['spam_admin_txt'] = 'Administrador SPAM'; $wb['message_size_limit_txt'] = 'Tamanho limite da mensagem'; $wb['banned_rulenames_txt'] = 'Regras de Banimento'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/pt_user_quota_stats_list.lng b/interface/web/mail/lib/lang/pt_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/ro.lng b/interface/web/mail/lib/lang/ro.lng index dbfa06bcc8510e898890dbe6267abf5db66d82b2..0c0e85995eadbea6e8b9024dfcadd4f3d3744ee0 100644 --- a/interface/web/mail/lib/lang/ro.lng +++ b/interface/web/mail/lib/lang/ro.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Filtre Global'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng index 97add765ab27660b2057353b254679e74a66a95f..c0689ca04465f0174fae8f64c43df4ef5d9d7d21 100644 --- a/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'nume de domeniu invalid sau caractere nepermise'; $wb['limit_mailcatchall_txt'] = 'numarul maxim de CATCHALL pe contul dumneavoatra a fost atins'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_user.lng b/interface/web/mail/lib/lang/ro_mail_user.lng index 3f0f8ec479943f3432c6039170a0931e4a051d86..b358960525f11a11af19a916c605706c90a08205 100644 --- a/interface/web/mail/lib/lang/ro_mail_user.lng +++ b/interface/web/mail/lib/lang/ro_mail_user.lng @@ -17,10 +17,11 @@ $wb['password_txt'] = 'Password'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Enable Receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Enable Access'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Numarul maxim de MAILBOX pe contul dumneavoastra a fost atins'; $wb['limit_mailquota_txt'] = 'Spatiul maxim pentru MAILBOX a fost atins.Acesta este '; $wb['disableimap_txt'] = 'Blocheaza IMAP'; @@ -28,10 +29,13 @@ $wb['disablepop3_txt'] = 'Blocheaza POP3'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['duplicate_alias_or_forward_txt'] = 'There is already an alias or forwrd with this email address.'; $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_user_filter.lng b/interface/web/mail/lib/lang/ro_mail_user_filter.lng index 7c5c72ad72a34bca4e01c691e2014f1d0f2a7309..22435d9e91524bfa0167dd2a79a4940e828cc404 100644 --- a/interface/web/mail/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ro_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/ro_mail_user_list.lng b/interface/web/mail/lib/lang/ro_mail_user_list.lng index f55f8647a8222a282d7c6ce6412bfa7a8546fa53..3eda064b75528849f49a29e7856bbe7245aba864 100644 --- a/interface/web/mail/lib/lang/ro_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ro_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ro_spamfilter_policy.lng b/interface/web/mail/lib/lang/ro_spamfilter_policy.lng index 3645b3e1d1c444f8cfc66b514cd7ff847069952b..f77d0f3e5a9f08cedd95c2f319e2fbfbb5b25923 100644 --- a/interface/web/mail/lib/lang/ro_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ro_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = ' header defect admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned nume reguli'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ro_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ro_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/ru.lng b/interface/web/mail/lib/lang/ru.lng index 124441ffa9ee2153460f68e3b3e28325ab8fda8f..1b7995e024a5f4366b544ec2cb74ced8e7664523 100644 --- a/interface/web/mail/lib/lang/ru.lng +++ b/interface/web/mail/lib/lang/ru.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Глобальные фильтры'; $wb['Domain Alias'] = 'ÐлиаÑÑ‹ доменов'; $wb['Relay Recipients'] = 'Relay получатели'; $wb['Mailbox quota'] = 'Квота почтового Ñщика'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng index 60d3ebd326e87ae26ce931316aefa05e1a3c8e25..25349ca4972447406c55fcfa33558bbd548286a7 100644 --- a/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ðекорректное Ð¸Ð¼Ñ Ð´Ð¾Ð¼ÐµÐ½Ð°.'; $wb['limit_mailcatchall_txt'] = 'МакÑимальное чиÑло МакÑ. количеÑтво учётных запиÑей Ñводных почтовых Ñщиков доÑтигнуто.'; $wb['source_txt'] = 'ИÑточник'; $wb['destination_error_isemail'] = 'Ðе выбран получатель или запиÑÑŒ некорректна.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_get.lng b/interface/web/mail/lib/lang/ru_mail_get.lng index 0ce613cd0538cd1f020b538c1b1a111c5e7edc51..b3f2f0b6bf993b5ea160c822947364ff2ef426c2 100644 --- a/interface/web/mail/lib/lang/ru_mail_get.lng +++ b/interface/web/mail/lib/lang/ru_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'ПуÑтой пароль.'; $wb['destination_error_isemail'] = 'Ðе выбран получатель или запиÑÑŒ некорректна.'; $wb['source_server_error_regex'] = 'Ðекорректное доменное Ð¸Ð¼Ñ Ð´Ð»Ñ Ñервера POP3/IMAP.'; $wb['source_read_all_txt'] = 'Получать вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñлектронной почты (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ‹Ðµ пиÑьма)'; -$wb['error_delete_read_all_combination'] = 'ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð². Ð’Ñ‹ не можете иÑпользовать \"Удалить пиÑьма поÑле получениÑ\" = ÐЕТ вмеÑте Ñ \"Получить вÑе пиÑьма\" = ДÐ'; +$wb['error_delete_read_all_combination'] = 'ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð². Ð’Ñ‹ не можете иÑпользовать \\"Удалить пиÑьма поÑле получениÑ\\" = ÐЕТ вмеÑте Ñ \\"Получить вÑе пиÑьма\\" = ДÐ'; $wb['source_delete_note_txt'] = 'ПожалуйÑта, прежде чем активировать Ñтот параметр, убедитеÑÑŒ в том, что Ñборщик почты работает.'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_user.lng b/interface/web/mail/lib/lang/ru_mail_user.lng index 526c976ed594e96e801f5f207754937c54ba729f..a6f8a9fb7e9fb2bdf5afacc03682201d5ffd1be6 100644 --- a/interface/web/mail/lib/lang/ru_mail_user.lng +++ b/interface/web/mail/lib/lang/ru_mail_user.lng @@ -16,10 +16,11 @@ $wb['password_txt'] = 'Пароль'; $wb['password_click_to_set_txt'] = 'Клик Ð´Ð»Ñ ÑƒÑтановки'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Разрешить получение'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Включить Ñерый ÑпиÑок (Greylisting)'; $wb['access_txt'] = 'Включить доÑтуп'; $wb['policy_txt'] = 'Спам-фильтр'; -$wb['no_policy'] = '- не включены -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'ЧиÑло почтовых Ñщиков превышено.'; $wb['limit_mailquota_txt'] = 'МеÑто под почтовые Ñщики превышено. МакÑимально доÑтупно MB'; $wb['password_strength_txt'] = 'СтойкоÑть паролÑ'; @@ -32,6 +33,9 @@ $wb['autoresponder_start_date_ispast'] = 'Дата запуÑка не може $wb['autoresponder_end_date_txt'] = 'ОÑтанавливать'; $wb['autoresponder_end_date_isgreater'] = 'Дата Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть позже даты запуÑка.'; $wb['move_junk_txt'] = 'Перемещать Ñпам в каталог Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Реальное имÑ'; $wb['name_optional_txt'] = '(Опционально)'; $wb['autoresponder_active'] = 'Включить автоответчик'; @@ -58,8 +62,15 @@ $wb['monthly_backup_txt'] = 'ЕжемеÑÑчно'; $wb['email_error_isascii'] = 'ПожалуйÑта, не иÑпользуйте Ñпециальные Ñимволы Юникода Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ паролÑ. Ðто может привеÑти к проблемам Ñ Ð²Ð°ÑˆÐ¸Ð¼ почтовым клиентом.'; $wb['cc_note_txt'] = '(Разделите неÑколько адреÑов Ñлектронной почты запÑтыми)'; $wb['disablesmtp_txt'] = 'Отключить SMTP (отправка)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Дата начала должна быть уÑтановлена когда автоответчик включен.'; $wb['sender_cc_txt'] = 'Отправка иÑходÑщей копии на'; $wb['sender_cc_error_isemail'] = 'Поле -Отправка иÑходÑщей копии на- не Ñодержит дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты'; -$wb['sender_cc_note_txt'] = '(Разделите неÑколько адреÑов Ñлектронной почты запÑтыми)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_user_filter.lng b/interface/web/mail/lib/lang/ru_mail_user_filter.lng index ecc2d25b9de7fad9ee7bc584aea3c7ec8013c1f4..c8306f9838ece9c91db26e241b3ae531bbe04464 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Ðктивно'; $wb['rulename_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; $wb['searchterm_is_empty'] = 'Поле поиÑка пуÑтое.'; $wb['source_txt'] = 'ИÑточник'; -$wb['target_error_regex'] = 'Ðазначение может Ñодержать только Ñледующие Ñимволы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; +$wb['target_error_regex'] = 'Ðазначение может Ñодержать только Ñледующие Ñимволы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'МакÑимальное чиÑло почтовых фильтров доÑтигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/mail/lib/lang/ru_mail_user_list.lng b/interface/web/mail/lib/lang/ru_mail_user_list.lng index 7dad47a416729dd2d16b501d0cd0486169ef46c1..d323d347505ac7f3068a30eef62aabbd5a981b14 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Реальное имÑ'; $wb['login_txt'] = 'Логин'; $wb['postfix_txt'] = 'Получатель'; $wb['disablesmtp_txt'] = 'SMTP (отправка)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ru_spamfilter_policy.lng b/interface/web/mail/lib/lang/ru_spamfilter_policy.lng index 7bae8a0fd0b2ef0b5490bfbb3a1b436a6b5c4a7e..bab0a9ba0c96072796ba75fe397fc1b117d0b636 100644 --- a/interface/web/mail/lib/lang/ru_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ru_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Ðдмин: кривые заголовки'; $wb['spam_admin_txt'] = 'Ðдмин: СПÐМ'; $wb['message_size_limit_txt'] = 'Превышен размер ÑообщениÑ'; $wb['banned_rulenames_txt'] = 'Правила банов'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ru_user_quota_stats_list.lng b/interface/web/mail/lib/lang/ru_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/se.lng b/interface/web/mail/lib/lang/se.lng index 3edc2034d007c8f49e8ee0d6f9eb2da5b37021bb..7a415aa9011c8b1375d81419670403ff2c4b3dc0 100644 --- a/interface/web/mail/lib/lang/se.lng +++ b/interface/web/mail/lib/lang/se.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Global Filters'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng index 7ef1116390f8acddcd7d556415746b566757c5d7..39c6e6c55943bb69f20f95d8aee594becf10e700 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ogiltig domän eller domänen innehÃ¥ller ogiltiga $wb['limit_mailcatchall_txt'] = 'Det maximala antalet catchall-adresser för ditt konto är uppnÃ¥tt.'; $wb['source_txt'] = 'Källa'; $wb['destination_error_isemail'] = 'Destinationen när inte en giltig epostadress.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_user.lng b/interface/web/mail/lib/lang/se_mail_user.lng index a427c5060667499768e461edcbbf127a131f9c9c..f528bb3ef4659c4b8be6028af6f5f9d8e7c678f5 100644 --- a/interface/web/mail/lib/lang/se_mail_user.lng +++ b/interface/web/mail/lib/lang/se_mail_user.lng @@ -17,10 +17,11 @@ $wb['password_txt'] = 'lösenord'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Aktivera mottagning'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Aktivera Ã¥tkomst'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- ej aktiverat -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'The max. number of mailboxes for your account is reached.'; $wb['limit_mailquota_txt'] = 'The max space for mailboxes is reached. The max. available space in MB is'; $wb['disableimap_txt'] = 'Avaktivera IMAP'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlim $wb['autoresponder_start_date_txt'] = 'Starta den'; $wb['autoresponder_start_date_ispast'] = 'Startdatum kan inte vara i det förflutna.'; $wb['autoresponder_end_date_txt'] = 'Sluta den'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'FLytta spamepost till spammappen'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Riktigt namn'; $wb['name_optional_txt'] = '(Frivilligt)'; $wb['autoresponder_active'] = 'Aktivera autosvaret'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_user_list.lng b/interface/web/mail/lib/lang/se_mail_user_list.lng index 65c724c292e92f89f8a89201a8e6768deda8d8bd..4f6a7305d65a86feffd6a223c489a8b1dfc32208 100644 --- a/interface/web/mail/lib/lang/se_mail_user_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Riktigt namn'; $wb['login_txt'] = 'Logga in'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/se_spamfilter_policy.lng b/interface/web/mail/lib/lang/se_spamfilter_policy.lng index e876330a68c7c365b12bf9a3f3cf6b5a652a6093..683b378c21e0eebc93556c6914165bc708521c02 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/sk.lng b/interface/web/mail/lib/lang/sk.lng index 22773a574a1ef64778d0d885701ea0c999d8f414..7b00f9d52c575ad9c4713751c9f83b177c907536 100644 --- a/interface/web/mail/lib/lang/sk.lng +++ b/interface/web/mail/lib/lang/sk.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globálne Filtere'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng b/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng index 38c37544e6411712ded4afd018d5503060885dc4..03c701c6db9edef1841ce6f03cc7d85059d486b9 100644 --- a/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Neplatný názov domény alebo doména obsahuje nep $wb['limit_mailcatchall_txt'] = 'Max. poÄet e-mailových doménových koÅ¡ov pre Váš úÄet je dosiahnutý.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_user.lng b/interface/web/mail/lib/lang/sk_mail_user.lng index 92c6dea5781ef9ba8c34f3a25ff4997e3d4274c8..207be539474755db980d61a9cce7b09d6ccb604a 100644 --- a/interface/web/mail/lib/lang/sk_mail_user.lng +++ b/interface/web/mail/lib/lang/sk_mail_user.lng @@ -17,10 +17,11 @@ $wb['password_txt'] = 'Heslo'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Mailová záložka'; $wb['postfix_txt'] = 'PovoliÅ¥ prÃjem'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'PovoliÅ¥ PrÃstup'; $wb['policy_txt'] = 'Spamfilter'; -$wb['no_policy'] = '- nepovolená -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Max. poÄet poÅ¡tových schránok pre váš úÄet je dosiahnutý.'; $wb['limit_mailquota_txt'] = 'Maximálny priestor pre poÅ¡tové schránky je dosiahnutý. Max. dostupné miesto v MB je'; $wb['disableimap_txt'] = 'DeaktivovaÅ¥ IMAP'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = 'Neplatná hodnota kvóty. Povolené hodnoty sú: 0 p $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,9 +61,16 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_user_filter.lng b/interface/web/mail/lib/lang/sk_mail_user_filter.lng index 20904653c65588524f931debd9eb890d8f5569eb..7546cd6afa278c1cf57224c389335b9ee147f6dc 100644 --- a/interface/web/mail/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/sk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/sk_mail_user_list.lng b/interface/web/mail/lib/lang/sk_mail_user_list.lng index 3d18ad41f6294d25eb1ef526d65f66229ddc037f..3a341f0967ae2c6f45fd4a2ce61b815a7cba005d 100644 --- a/interface/web/mail/lib/lang/sk_mail_user_list.lng +++ b/interface/web/mail/lib/lang/sk_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/sk_spamfilter_policy.lng b/interface/web/mail/lib/lang/sk_spamfilter_policy.lng index b58988d60b992ae6e1935c5f08feb4ad9e57f6a1..6a4d6362595b5df63fa9a54467ff6e7b7e6a3e73 100644 --- a/interface/web/mail/lib/lang/sk_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/sk_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Zlé hlaviÄky admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Limit veľkosti správy'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/sk_user_quota_stats_list.lng b/interface/web/mail/lib/lang/sk_user_quota_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mail/lib/lang/tr.lng b/interface/web/mail/lib/lang/tr.lng index e2deaca006ce30b6fb2e01b73c017c7f53a6b575..52d1868b3eb79a95f935fd6913e74b64bf6ba6a2 100644 --- a/interface/web/mail/lib/lang/tr.lng +++ b/interface/web/mail/lib/lang/tr.lng @@ -4,45 +4,48 @@ $wb['Email Blacklist'] = 'E-posta Kara Listesi'; $wb['Blacklist'] = 'Kara Liste'; $wb['Mail Content Filter'] = 'E-posta İçerik Süzgeci'; $wb['Filter'] = 'Süzgeç'; -$wb['Mail Domain'] = 'E-posta Alan Adı'; -$wb['Domain'] = 'Alan Adı'; +$wb['Mail Domain'] = 'E-posta Etki Alanı'; +$wb['Domain'] = 'Etki Alanı'; $wb['Email Catchall'] = 'E-posta Tümünü Alma'; $wb['Email Forward'] = 'E-posta Yönlendirme'; $wb['Get Email'] = 'E-posta Al'; -$wb['Spamfilter'] = 'Önemsiz Posta Süzgeci'; +$wb['Spamfilter'] = 'Önemsiz İleti Süzgeci'; $wb['Email Routing'] = 'E-posta Yöneltme'; $wb['Email transport'] = 'E-posta Aktarma'; -$wb['Mailbox'] = 'Posta Kutusu'; +$wb['Mailbox'] = 'E-posta Kutusu'; $wb['Autoresponder'] = 'Otomatik Yanıtlayıcı'; -$wb['Mail Filter'] = 'Posta Süzgeci'; +$wb['Mail Filter'] = 'E-posta Süzgeci'; $wb['Custom Rules'] = 'Özel Kurallar'; $wb['Email filter'] = 'E-posta Süzgeci'; $wb['Email Whitelist'] = 'E-posta Beyaz Listesi'; $wb['Whitelist'] = 'Beyaz Liste'; -$wb['Spamfilter blacklist'] = 'Önemsiz Posta Süzgeci Kara Listesi'; -$wb['Spamfilter Config'] = 'Önemsiz Posta Süzgeci Ayarları'; +$wb['Spamfilter blacklist'] = 'Önemsiz İleti Süzgeci Kara Listesi'; +$wb['Blacklist'] = 'Kara Liste'; +$wb['Spamfilter Config'] = 'Önemsiz İleti Süzgeci Ayarları'; $wb['Server'] = 'Sunucu'; -$wb['Spamfilter policy'] = 'Önemsiz Posta Süzgeci Kuralları'; +$wb['Spamfilter policy'] = 'Önemsiz İleti Süzgeci Kuralları'; $wb['Policy'] = 'Kural'; $wb['Quarantine'] = 'Karantina'; $wb['Tag-Level'] = 'Etiket Düzeyi'; $wb['Other'] = 'DiÄŸer'; -$wb['Spamfilter users'] = 'Önemsiz Posta Süzgeci Kullanıcıları'; +$wb['Spamfilter users'] = 'Önemsiz İleti Süzgeci Kullanıcıları'; $wb['Users'] = 'Kullanıcılar'; -$wb['Spamfilter Whitelist'] = 'Önemsiz Posta Beyaz Listesi'; +$wb['Spamfilter Whitelist'] = 'Önemsiz İleti Beyaz Listesi'; +$wb['Whitelist'] = 'Beyaz Liste'; $wb['Email'] = 'E-posta'; $wb['Email Mailbox'] = 'E-posta Kutusu'; $wb['Email Accounts'] = 'E-posta Hesapları'; -$wb['User / Domain'] = 'Kullanıcı / Alan Adı'; +$wb['User / Domain'] = 'Kullanıcı / Etki Alanı'; $wb['Server Settings'] = 'Sunucu Ayarları'; -$wb['Fetchmail'] = 'Posta Alma'; -$wb['Mailbox traffic'] = 'Posta Kutusu TrafiÄŸi'; +$wb['Spamfilter'] = 'Önemsiz İleti Süzgeci'; +$wb['Fetchmail'] = 'E-posta Alma'; +$wb['Mailbox traffic'] = 'E-posta Kutusu TrafiÄŸi'; $wb['Statistics'] = 'İstatistikler'; $wb['Postfix Whitelist'] = 'Postfix Beyaz Liste'; $wb['Postfix Blacklist'] = 'Postfix Kara Liste'; $wb['Content Filter'] = 'İçerik Süzgeci'; $wb['Global Filters'] = 'Genel Süzgeçler'; -$wb['Domain Alias'] = 'Takma Alan Adı'; +$wb['Domain Alias'] = 'Takma Etki Alanı'; $wb['Relay Recipients'] = 'Aktarılan Alıcılar'; -$wb['Mailbox quota'] = 'Posta Kutusu Kotası'; +$wb['Mailbox quota'] = 'E-posta Kutusu Kotası'; ?> diff --git a/interface/web/mail/lib/lang/tr_backup_stats_list.lng b/interface/web/mail/lib/lang/tr_backup_stats_list.lng index 79cd6c9a63589ba43dd7772821c3d63f7b7a8394..125bfc8284c22feda733a6e37db8ae1cdf5a05b4 100644 --- a/interface/web/mail/lib/lang/tr_backup_stats_list.lng +++ b/interface/web/mail/lib/lang/tr_backup_stats_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Backup Stats'; -$wb['active_txt'] = 'Active'; -$wb['domain_txt'] = 'Email'; -$wb['backup_count_txt'] = 'Backup count'; -$wb['backup_server_txt'] = 'Server'; -$wb['backup_interval_txt'] = 'Interval / cnt.'; -$wb['backup_size_txt'] = 'Backupsize'; +$wb['list_head_txt'] = 'Yedekleme İstatistikleri'; +$wb['active_txt'] = 'Etkin'; +$wb['domain_txt'] = 'E-posta'; +$wb['backup_count_txt'] = 'Yedek Sayısı'; +$wb['backup_server_txt'] = 'Sunucu'; +$wb['backup_interval_txt'] = 'Sıklık / Sayı'; +$wb['backup_size_txt'] = 'Yedek Boyutu'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_alias.lng b/interface/web/mail/lib/lang/tr_mail_alias.lng index d3fd3f1271fd5bc078118526b82644db4c11dc64..ea440b2e63004a783c017a9c6580106493e34cd8 100644 --- a/interface/web/mail/lib/lang/tr_mail_alias.lng +++ b/interface/web/mail/lib/lang/tr_mail_alias.lng @@ -4,14 +4,14 @@ $wb['destination_txt'] = 'Hedef'; $wb['active_txt'] = 'Etkin'; $wb['email_error_isemail'] = 'E-posta adresi geçersiz.'; $wb['email_error_unique'] = 'Bu e-posta adresi zaten var'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; $wb['destination_error_isemail'] = 'Hedef e-posta adresi geçersiz.'; $wb['limit_mailalias_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma e-posta adresi sayısına ulaÅŸtınız.'; -$wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir posta kutusu zaten var'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['duplicate_mailbox_txt'] = 'Bu adresi kullanan bir e-posta kutusu zaten var'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['duplicate_email_alias_txt'] = 'Bu takma e-posta adresi zaten var.'; $wb['source_txt'] = 'Takma Ad'; -$wb['send_as_txt'] = 'Send as'; -$wb['send_as_exp'] = 'Allow target to send mail using this alias as origin'; -$wb['greylisting_txt'] = 'Enable greylisting'; +$wb['send_as_txt'] = 'Gönderen'; +$wb['send_as_exp'] = 'Hedef bu adresi kaynak olarak göstererek e-posta gönderebilsin'; +$wb['greylisting_txt'] = 'Gri Liste Kullanılsın'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng b/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng index d39c6f46a37f0b0371ff5b82e704c811792ec878..f6cd98261b171071ea21f50418bf7f2f892f660b 100644 --- a/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng @@ -2,10 +2,10 @@ $wb['source_txt'] = 'Kaynak'; $wb['destination_txt'] = 'Hedef'; $wb['active_txt'] = 'Etkin'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; -$wb['limit_mailaliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma alan adı sayısına ulaÅŸtınız.'; -$wb['source_destination_identical_txt'] = 'Kaynak ve Hedef alan adları aynı.'; -$wb['source_error_empty'] = 'Kaynak alan adı boÅŸ olamaz.'; -$wb['source_error_unique'] = 'Bu kaynak alan adı zaten var.'; -$wb['source_error_regex'] = 'Kaynak alan adı geçersiz.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; +$wb['limit_mailaliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['source_destination_identical_txt'] = 'Kaynak ve Hedef etki alanları aynı.'; +$wb['source_error_empty'] = 'Kaynak etki alanı boÅŸ olamaz.'; +$wb['source_error_unique'] = 'Bu kaynak etki alanı zaten var.'; +$wb['source_error_regex'] = 'Kaynak etki alanı geçersiz.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng index a6d3dfc3b98ad4a51a12e0ca5187e4bf19b0fef3..7cbc3aef9e72b8dae796c55eeaef9d56306d3cd1 100644 --- a/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng @@ -1,7 +1,8 @@ <?php -$wb['list_head_txt'] = 'Takma Alan Adı'; +$wb['list_head_txt'] = 'Takma Etki Alanı'; $wb['active_txt'] = 'Etkin'; $wb['source_txt'] = 'Kaynak'; $wb['destination_txt'] = 'Hedef'; -$wb['add_new_record_txt'] = 'Takma Alan Adı Ekle'; +$wb['source_txt'] = 'Kaynak'; +$wb['add_new_record_txt'] = 'Takma Etki Alanı Ekle'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_backup_list.lng b/interface/web/mail/lib/lang/tr_mail_backup_list.lng index 73286a0737103be7877ad8d6c3f4aaa669042224..1a5ae7227b7ecc08956e808a98d1cac7b900889c 100644 --- a/interface/web/mail/lib/lang/tr_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_backup_list.lng @@ -1,16 +1,16 @@ <?php -$wb['list_head_txt'] = 'Existing backups'; -$wb['date_txt'] = 'Date'; -$wb['backup_type_txt'] = 'Type'; -$wb['filename_txt'] = 'Backup file'; -$wb['restore_backup_txt'] = 'Restore'; -$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes to be completed.'; -$wb['restore_confirm_txt'] = 'Restoring may overwrite existing files in your mailbox. Do you really want to restore this backup?'; -$wb['download_pending_txt'] = 'There is already a pending backup download job.'; -$wb['restore_pending_txt'] = 'There is already a pending backup restore job.'; -$wb['delete_backup_txt'] = 'Delete Backup'; -$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.'; -$wb['delete_confirm_txt'] = 'Really delete this backup?'; -$wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; -$wb['filesize_txt'] = 'Filesize'; +$wb['list_head_txt'] = 'Var Olan Yedekler'; +$wb['date_txt'] = 'Tarih'; +$wb['backup_type_txt'] = 'Tür'; +$wb['filename_txt'] = 'Yedek Dosyası'; +$wb['restore_backup_txt'] = 'Geri Yükle'; +$wb['restore_info_txt'] = 'Yedekten geri yükleme iÅŸlemi baÅŸlatıldı. Bu iÅŸlemin tamamlanması bir kaç dakika sürebilir.'; +$wb['restore_confirm_txt'] = 'Geri yükleme iÅŸlemi sırasında e-posta kutunuzda var olan iletilerin üzerine yazılabilir. Bu yedeÄŸi geri yüklemek istediÄŸinize emin misiniz?'; +$wb['download_pending_txt'] = 'Zaten bekleyen bir yedekleme indirme iÅŸlemi var.'; +$wb['restore_pending_txt'] = 'Zaten bekleyen bir yedek geri yükleme iÅŸlemi var.'; +$wb['delete_backup_txt'] = 'YedeÄŸi Sil'; +$wb['delete_info_txt'] = 'YedeÄŸi silme iÅŸlemi baÅŸlatıldı. Bu iÅŸlemin tamamlanması bir kaç dakika sürebilir.'; +$wb['delete_confirm_txt'] = 'Bu yedeÄŸi silmek istediÄŸinize emin misiniz?'; +$wb['delete_pending_txt'] = 'Zaten bekleyen bir yedek silme iÅŸlemi var.'; +$wb['filesize_txt'] = 'Dosya Boyutu'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_blacklist.lng b/interface/web/mail/lib/lang/tr_mail_blacklist.lng index ecdca0b1a5b390899b2c0ffe20c58d43475bdf4b..381a11fa98c2f651fd77a823bff5c88e4cb0ebda 100644 --- a/interface/web/mail/lib/lang/tr_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/tr_mail_blacklist.lng @@ -4,6 +4,6 @@ $wb['source_txt'] = 'Kara Listedeki Adres'; $wb['recipient_txt'] = 'Alıcı'; $wb['active_txt'] = 'Etkin'; $wb['source_error_notempty'] = 'Adres boÅŸ olamaz.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta süzgeci sayısına ulaÅŸtınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng b/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng index b9bf6ff92c1ee35879b86c488eb8294d810629d3..9446569f4f48683b7b057b44c89d4d61b1846d33 100644 --- a/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'E-posta Kara Listesi'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['source_txt'] = 'Kara Listedeki Adres'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['recipient_txt'] = 'Alıcı'; $wb['add_new_record_txt'] = 'Kara Liste Kaydı Ekle'; $wb['access_txt'] = 'EriÅŸim'; diff --git a/interface/web/mail/lib/lang/tr_mail_content_filter.lng b/interface/web/mail/lib/lang/tr_mail_content_filter.lng index f13b01a680adeec05acb4472a1504c3941a43ac8..df2d4d5c431278891289998d15333408d3600e85 100644 --- a/interface/web/mail/lib/lang/tr_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/tr_mail_content_filter.lng @@ -1,9 +1,9 @@ <?php $wb['server_id_txt'] = 'Sunucu'; $wb['type_txt'] = 'Süzgeç'; -$wb['pattern_txt'] = 'Kurallı İfade Deseni'; +$wb['pattern_txt'] = 'Kurallı İfade Örüntüsü'; $wb['data_txt'] = 'Veri'; $wb['action_txt'] = 'İşlem'; $wb['active_txt'] = 'Etkin'; -$wb['pattern_error_empty'] = 'Desen boÅŸ olamaz.'; +$wb['pattern_error_empty'] = 'Örüntü boÅŸ olamaz.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain.lng b/interface/web/mail/lib/lang/tr_mail_domain.lng index 4ee4aa50fa54f3a56fbd8ad649f1fd5bba1f2454..3e7d9cc4122771cb73fdcf4d7e212007959b37fb 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain.lng @@ -1,23 +1,23 @@ <?php $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['type_txt'] = 'Tip'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['type_txt'] = 'Tür'; $wb['active_txt'] = 'Etkin'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Bu alan adı zaten var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Bu etki alanı zaten var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_maildomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alan adı sayısına ulaÅŸtınız.'; -$wb['policy_txt'] = 'Önemsiz Posta Süzgeci'; +$wb['limit_maildomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['policy_txt'] = 'Önemsiz İleti Süzgeci'; $wb['no_policy'] = '- devre dışı -'; -$wb['dkim_txt'] = 'enable DKIM'; -$wb['dkim_private_txt'] = 'DKIM Private-key'; -$wb['dkim_public_txt'] = 'DKIM Public-key\nfor information only'; -$wb['dkim_generate_txt'] = 'Generate DKIM Private-key'; -$wb['dkim_dns_txt'] = 'DNS-Record'; -$wb['dkim_private_key_error'] = 'Invalid DKIM-Private key'; -$wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; -$wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -$wb['dkim_selector_txt'] = 'DKIM-Selector'; -$wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; +$wb['dkim_txt'] = 'DKIM Kullanılsın'; +$wb['dkim_private_txt'] = 'Özel DKIM Anahtarı'; +$wb['dkim_public_txt'] = 'Herkese açık DKIM anahtarı' . "\n" . 'yalnız bilgilendirme için'; +$wb['dkim_generate_txt'] = 'Özel DKIM Anahtarı Üret'; +$wb['dkim_dns_txt'] = 'DNS Kaydı'; +$wb['dkim_private_key_error'] = 'Özel DKIM Anahtarı Geçersiz'; +$wb['dkim_settings_txt'] = 'DomainKeys Tanımlı E-posta (DKIM)'; +$wb['error_not_allowed_server_id'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamaz.'; +$wb['dkim_selector_txt'] = 'DKIM Seçici'; +$wb['dkim_selector_error'] = 'DKIM seçici geçersiz. En fazla 63 karakter uzunluÄŸunda, yalnız küçük İngilizce harf ve rakamları kullanın (a-z ya da 0-9)'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng index 7d56618eef6a061be68efceb10bd2017e711ccdf..f6937ab382c8b1dd5cc2896a8a4e86129268951d 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'E-posta Alan Adı'; +$wb['list_head_txt'] = 'E-posta Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['add_new_record_txt'] = 'Alan Adı Ekle'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['add_new_record_txt'] = 'Etki Alanı Ekle'; $wb['active_txt'] = 'Etkin'; $wb['sys_groupid_txt'] = 'Müşteri'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng index 037d2ad16e295bba7ff12cbe315b68584a130356..bcdf6298469c4abae5b2785636387d18a12f73cd 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng @@ -1,11 +1,12 @@ <?php -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['destination_txt'] = 'Hedef'; $wb['active_txt'] = 'Etkin'; -$wb['domain_error_unique'] = 'Bu alan adı için zaten bir tümünü al kayıdı var.'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz ya da geçersiz karakterler içeriyor.'; +$wb['domain_error_unique'] = 'Bu etki alanı için zaten bir tümünü al kayıdı var.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz ya da geçersiz karakterler içeriyor.'; $wb['limit_mailcatchall_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla tümünü al hesabı sayısına ulaÅŸtınız.'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['source_txt'] = 'Kaynak'; $wb['destination_error_isemail'] = 'Hedef e-posta adresi geçersiz.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng index 596e2dbdaed1447bb1ec374a2be070da081e9370..45a59fe831c628121c0b0305cc989e8a31bc391c 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng @@ -2,8 +2,8 @@ $wb['list_head_txt'] = 'E-posta Tümünü Al Hesabı'; $wb['active_txt'] = 'Etkin'; $wb['source_txt'] = 'Kaynak'; -$wb['destination_txt'] = 'Hedef e-posta adresi'; +$wb['destination_txt'] = 'Hedef E-posta Adresi'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Tümünü Al Hesabı Ekle'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain_list.lng b/interface/web/mail/lib/lang/tr_mail_domain_list.lng index 7a4a1f2b64a1c25e7451f57942e55aad2a4b9f6f..06a44455ebea967a1250c3cb7c51e73e93d409c4 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'E-posta Alan Adı'; +$wb['list_head_txt'] = 'E-posta Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['add_new_record_txt'] = 'Alan Adı Ekle'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['add_new_record_txt'] = 'Etki Alanı Ekle'; $wb['active_txt'] = 'Etkin'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_forward.lng b/interface/web/mail/lib/lang/tr_mail_forward.lng index f96a0e4c070a1230606778be23f5fa806360a584..2352cd945f1922157886698000a7d5637f5681d0 100644 --- a/interface/web/mail/lib/lang/tr_mail_forward.lng +++ b/interface/web/mail/lib/lang/tr_mail_forward.lng @@ -3,11 +3,11 @@ $wb['email_txt'] = 'E-posta'; $wb['destination_txt'] = 'Hedef E-posta'; $wb['active_txt'] = 'Etkin'; $wb['limit_mailforward_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta yönlendirme sayısına ulaÅŸtınız.'; -$wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir posta kutusu zaten var'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir e-posta kutusu zaten var'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['source_txt'] = 'Kaynak E-posta'; -$wb['email_error_isemail'] = 'Please enter a valid email address.'; -$wb['send_as_txt'] = 'Send as'; -$wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)'; -$wb['greylisting_txt'] = 'Enable greylisting'; +$wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.'; +$wb['send_as_txt'] = 'Gönderen'; +$wb['send_as_exp'] = 'Hedef bu adresi kaynak olarak göstererek e-posta gönderebilsin (hedef iç kullanıcı ise)'; +$wb['greylisting_txt'] = 'Gri Liste Kullanılsın'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_get.lng b/interface/web/mail/lib/lang/tr_mail_get.lng index b82b6c8c9a7f441d3bfc9da60b17ae97232b0f4f..2ad34342658f2d25e7bb4ac2cceb4c79f799679d 100644 --- a/interface/web/mail/lib/lang/tr_mail_get.lng +++ b/interface/web/mail/lib/lang/tr_mail_get.lng @@ -1,6 +1,6 @@ <?php $wb['server_id_txt'] = 'Sunucu'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['source_server_txt'] = 'POP3/IMAP Sunucusu'; $wb['source_username_txt'] = 'Kullanıcı Adı'; $wb['source_password_txt'] = 'Parola'; @@ -9,11 +9,11 @@ $wb['source_delete_note_txt'] = 'Lütfen bu seçeneÄŸi etkinleÅŸtirmeden önce, $wb['source_read_all_txt'] = 'Tüm e-postalar alınsın (okunmuÅŸlar dahil)'; $wb['destination_txt'] = 'Hedef'; $wb['active_txt'] = 'Etkin'; -$wb['limit_fetchmail_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla posta alma kaydı sayısına ulaÅŸtınız.'; +$wb['limit_fetchmail_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta alma kaydı sayısına ulaÅŸtınız.'; $wb['source_server_error_isempty'] = 'Sunucu boÅŸ olamaz.'; $wb['source_username_error_isempty'] = 'Kullanıcı adı boÅŸ olamaz.'; $wb['source_password_error_isempty'] = 'Parola boÅŸ olamaz.'; $wb['destination_error_isemail'] = 'Hedef seçilmemiÅŸ.'; -$wb['source_server_error_regex'] = 'POP3/IMAP Sunucu alan adı geçersiz.'; -$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \\"E-postalar alındıktan sonra silinsin\\" = Hayır iken \\"Tüm e-postalar alınsın\\" = Evet olamaz'; +$wb['source_server_error_regex'] = 'POP3/IMAP Sunucu etki alanı geçersiz.'; +$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. "E-postalar Alındıktan Sonra Silinsin" seçeneÄŸi devre dışı iken "Tüm E-postalar Alınsın" seçeneÄŸi etkin olamaz'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_mailinglist.lng b/interface/web/mail/lib/lang/tr_mail_mailinglist.lng index 17bfab31dcfce0b251f4a1ae22498a25bcf208be..4bd52db75e65b96c2fa8320e8408ee60e215e288 100644 --- a/interface/web/mail/lib/lang/tr_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/tr_mail_mailinglist.lng @@ -1,19 +1,19 @@ <?php -$wb['mailinglist_txt'] = 'Posta Listesi'; +$wb['mailinglist_txt'] = 'E-posta Listesi'; $wb['limit_mailmailinglist_txt'] = 'Sınıra ulaşıldı'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; $wb['listname_error_empty'] = 'Liste adı boÅŸ olamaz.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; $wb['email_in_use_txt'] = 'E-posta kullanımda'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['listname_txt'] = 'Liste Adı'; $wb['client_txt'] = 'Müşteri'; $wb['email_txt'] = 'E-posta'; $wb['password_txt'] = 'Parola'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/mail/lib/lang/tr_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/tr_mail_mailinglist_list.lng index c605dd2442b4e0903c92639c5dd453378572f3e8..8070d1983df96b84048048cc9a9284fa244d1bcd 100644 --- a/interface/web/mail/lib/lang/tr_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_mailinglist_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Posta Listesi'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['list_head_txt'] = 'E-posta Listesi'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['listname_txt'] = 'Liste Adı'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng b/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng index 90153f8c4dc0944f2677bd129f074e702292caf0..a7d83620cb8bc5054d44f3cfbe8d0015c16d8f7e 100644 --- a/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng @@ -4,6 +4,6 @@ $wb['source_txt'] = 'Aktarılan Alıcı'; $wb['recipient_txt'] = 'Alıcı'; $wb['active_txt'] = 'Etkin'; $wb['source_error_notempty'] = 'Adres boÅŸ olamaz.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta süzgeci sayısına ulaÅŸtınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_spamfilter.lng b/interface/web/mail/lib/lang/tr_mail_spamfilter.lng index be63f712007019d7c8a10ea4e885fe432ac1ed10..6a708982f1bd8ab960a80cef9e4a972cc81de67a 100644 --- a/interface/web/mail/lib/lang/tr_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/tr_mail_spamfilter.lng @@ -7,11 +7,11 @@ $wb['spam_rewrite_subject_txt'] = 'Konuyu yeniden yaz'; $wb['spam_redirect_maildir_txt'] = 'Mail kutusuna yönlendir'; $wb['active_txt'] = 'Etkin'; $wb['spam_rewrite_txt'] = 'Bu puanın üzerindeki e-posta konusunu yeniden yaz.'; -$wb['spam_redirect_txt'] = 'Bu puanın üzerindeki e-postayı seçilmiÅŸ posta kutusuna yönlendir.'; +$wb['spam_redirect_txt'] = 'Bu puanın üzerindeki e-postayı seçilmiÅŸ e-posta kutusuna yönlendir.'; $wb['spam_delete_txt'] = 'Bu puanın üzerindeki e-postayı sil.'; $wb['disable_txt'] = 'İpucu: Bir süzgeç seçeneÄŸini devre dışı bırakmak için, puanı 0.00 olarak yazın.'; $wb['email_error_isemail'] = 'E-posta adresi geçersiz.'; -$wb['email_error_unique'] = 'Bu e-posta adresi için önemiz posta süzgeci kaydı zaten var.'; -$wb['spam_redirect_maildir_purge_txt'] = 'Posta klasörü'; +$wb['email_error_unique'] = 'Bu e-posta adresi için önemiz e-posta süzgeci kaydı zaten var.'; +$wb['spam_redirect_maildir_purge_txt'] = 'E-posta Klasörü'; $wb['days_txt'] = ' gün aralıklarla temizlensin.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng index 90981ad8fe48984c13ffde8e724205c408e6a4af..6901f541bd06a5d9988301bbb588f8bdbbe9f755 100644 --- a/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Önemsiz Posta Süzgeci'; +$wb['list_head_txt'] = 'Önemsiz İleti Süzgeci'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['server_name_txt'] = 'server_name'; $wb['email_txt'] = 'E-posta'; -$wb['add_new_record_txt'] = 'Önemsiz Posta Süzgeci Ekle'; +$wb['add_new_record_txt'] = 'Önemsiz İleti Süzgeci Ekle'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_transport.lng b/interface/web/mail/lib/lang/tr_mail_transport.lng index f268fd5475855bd3e7421835c312dc07f903f83b..0b417703924b126b2dcfbf5a46fd13d30861844c 100644 --- a/interface/web/mail/lib/lang/tr_mail_transport.lng +++ b/interface/web/mail/lib/lang/tr_mail_transport.lng @@ -1,8 +1,8 @@ <?php $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['destination_txt'] = 'Hedef'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['mx_txt'] = 'MX taraması yok'; $wb['sort_order_txt'] = 'Sıralama'; $wb['active_txt'] = 'Etkin'; diff --git a/interface/web/mail/lib/lang/tr_mail_transport_list.lng b/interface/web/mail/lib/lang/tr_mail_transport_list.lng index f9608f64dc35d9caa40cb6c14fe492ded3396d6f..75c5962ece69a6c4c88686e74bd0b0eca04ed4e9 100644 --- a/interface/web/mail/lib/lang/tr_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_transport_list.lng @@ -2,7 +2,7 @@ $wb['list_head_txt'] = 'GeliÅŸmiÅŸ E-posta Yöneltme'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['transport_txt'] = 'Aktarım'; $wb['sort_order_txt'] = 'Sıralama'; $wb['add_new_record_txt'] = 'Yöneltme Ekle'; diff --git a/interface/web/mail/lib/lang/tr_mail_user.lng b/interface/web/mail/lib/lang/tr_mail_user.lng index 6853b9619dcde8e4aa54da0f3ead62e825298334..203338047a225c8e594cd4ff1bfd3397ebc6fa4b 100644 --- a/interface/web/mail/lib/lang/tr_mail_user.lng +++ b/interface/web/mail/lib/lang/tr_mail_user.lng @@ -1,65 +1,75 @@ <?php -$wb['custom_mailfilter_txt'] = 'Özel posta süzgeci'; +$wb['custom_mailfilter_txt'] = 'Özel E-posta Süzgeci'; $wb['email_txt'] = 'E-posta'; $wb['cryptpwd_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['active_txt'] = 'Etkin'; $wb['email_error_isemail'] = 'E-posta adresi geçersiz.'; $wb['email_error_unique'] = 'Bu e-posta adresi zaten var.'; $wb['autoresponder_subject_txt'] = 'E-posta Konusu'; -$wb['autoresponder_subject'] = 'Ofis dışında yanıtı'; +$wb['autoresponder_subject'] = 'Ofis Dışında Yanıtı'; $wb['autoresponder_text_txt'] = 'Metin'; $wb['autoresponder_txt'] = 'Etkin'; $wb['autoresponder_start_date_txt'] = 'BaÅŸlangıç'; $wb['autoresponder_start_date_ispast'] = 'BaÅŸlangıç zamanı geçmiÅŸte olamaz.'; $wb['autoresponder_end_date_txt'] = 'BitiÅŸ'; $wb['autoresponder_end_date_isgreater'] = 'BitiÅŸ zamanı baÅŸlangıç zamanından sonra olmalıdır.'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; $wb['error_no_pwd'] = 'Parola boÅŸ olamaz.'; -$wb['quota_error_isint'] = 'Posta kutusunun boyutu bir sayı olmalıdır.'; +$wb['quota_error_isint'] = 'E-posta kutusunun boyutu bir sayı olmalıdır.'; $wb['quota_txt'] = 'Kota (sınırsız için 0 yazın)'; -$wb['server_id_txt'] = 'Sunucu kodu'; +$wb['server_id_txt'] = 'Sunucu Kodu'; $wb['password_txt'] = 'Parola'; -$wb['maildir_txt'] = 'Posta Klasörü'; +$wb['password_click_to_set_txt'] = 'Ayarlamak için tıklayın'; +$wb['maildir_txt'] = 'E-posta Klasörü'; $wb['postfix_txt'] = 'Alım Etkin'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; +$wb['greylisting_txt'] = 'Gri Liste Kullanılsın'; $wb['access_txt'] = 'EriÅŸim Etkin'; -$wb['policy_txt'] = 'Önemsiz Posta Süzgeci'; -$wb['no_policy'] = '- devre dışı -'; -$wb['limit_mailbox_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla posta kutusu sayısına ulaÅŸtınız.'; -$wb['limit_mailquota_txt'] = 'Posta kutularınız için kullanabileceÄŸiniz en fazla boyuta ulaÅŸtınız. Kullanılabilecek alan MB:'; +$wb['policy_txt'] = 'Önemsiz İleti Süzgeci'; +$wb['inherit_policy'] = '- Inherit domain setting -'; +$wb['limit_mailbox_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta kutusu sayısına ulaÅŸtınız.'; +$wb['limit_mailquota_txt'] = 'E-posta kutularınız için kullanabileceÄŸiniz en fazla boyuta ulaÅŸtınız. Kullanılabilecek alan MB:'; $wb['disablesmtp_txt'] = 'SMTP Kullanılmasın (gönderim)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'IMAP Kullanılmasın'; $wb['disablepop3_txt'] = 'POP3 Kullanılmasın'; $wb['duplicate_alias_or_forward_txt'] = 'Bu e-posta adresi zaten takma ya da yönlendirilmiÅŸ.'; $wb['quota_error_value'] = 'Kota deÄŸeri geçersiz. DeÄŸer sınırsız için 0 ya da 1 deÄŸerinden büyük olmalı'; -$wb['move_junk_txt'] = 'Önemsiz Epostalar Junk Klasörüne Taşınsın'; +$wb['move_junk_txt'] = 'Önemsiz İletiler Junk Klasörüne Taşınsın'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Ad'; $wb['name_optional_txt'] = '(İsteÄŸe baÄŸlı)'; $wb['autoresponder_active'] = 'Otoyanıtlayıcı kullanılsın'; $wb['cc_txt'] = 'Kopyası ÅŸuraya gönderilsin'; +$wb['sender_cc_txt'] = 'Gidenin Gizli Kopyası Åžuraya Gönderilsin'; $wb['cc_error_isemail'] = 'Kopyası ÅŸuraya gönderilsin alanına geçerli bir e-posta adresi yazılmalı'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['sender_cc_error_isemail'] = 'Gidenin gizli kopyası ÅŸuraya gönderilsin alanındaki e-posta adresi geçersiz'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['now_txt'] = 'Åžimdi'; $wb['login_error_unique'] = 'Kullanıcı adı zaten var.'; $wb['login_error_regex'] = 'Kullanılabilecek karakterler: A-Z, a-z, 0-9, ., _ ve -.'; -$wb['login_txt'] = 'Kullanıcı adı (isteÄŸe baÄŸlı)'; +$wb['login_txt'] = 'Kullanıcı Adı (İsteÄŸe BaÄŸlı)'; $wb['error_login_email_txt'] = 'Bu kullanıcı adı kullanılamaz. Lütfen farklı bir kullanıcı adı yazın ya da e-posta adresini kullanın.'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; +$wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; +$wb['backup_copies_txt'] = 'Yedek kopyalarının sayısı'; +$wb['no_backup_txt'] = 'Yedek yok'; +$wb['daily_backup_txt'] = 'Günlük'; +$wb['weekly_backup_txt'] = 'Haftalık'; +$wb['monthly_backup_txt'] = 'Aylık'; $wb['email_error_isascii'] = 'E-posta istemcinizde sorun yaÅŸamamak için lütfen parolanızda dile özel unikod karakterler kullanmayın.'; $wb['cc_note_txt'] = '(Birden çok e-posta adresini virgül ile ayırarak yazın)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; -$wb['password_click_to_set_txt'] = 'Click to set'; -$wb['greylisting_txt'] = 'Enable greylisting'; -$wb['sender_cc_txt'] = 'Send outgoing BCC to'; -$wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['backup_interval_txt'] = 'Backup interval'; -$wb['backup_copies_txt'] = 'Number of backup copies'; -$wb['no_backup_txt'] = 'No backup'; -$wb['daily_backup_txt'] = 'Daily'; -$wb['weekly_backup_txt'] = 'Weekly'; -$wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; +$wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; +$wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; +$wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; +$wb['tooltip_purge_junk_days_txt'] = '0 = disabled'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_user_filter.lng b/interface/web/mail/lib/lang/tr_mail_user_filter.lng index 8897a9d18b472f2968e2389d3da6f9f5fa4bb06d..ba55be63dcb89295da8d59729da755fad6bd1e02 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_filter.lng @@ -7,7 +7,7 @@ $wb['rulename_error_empty'] = 'Ad boÅŸ olamaz.'; $wb['searchterm_is_empty'] = 'Aranacak ifade boÅŸ olamaz.'; $wb['source_txt'] = 'Kaynak'; $wb['target_error_regex'] = 'Hedef için yalnız ÅŸu karakterler kullanılabilir: a-z, 0-9, -, ., _, ve {boÅŸluk}'; -$wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla posta süzgeci sayısına ulaÅŸtınız.'; +$wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta süzgeci sayısına ulaÅŸtınız.'; $wb['subject_txt'] = 'Konu'; $wb['from_txt'] = 'Kimden'; $wb['to_txt'] = 'Kime'; @@ -25,5 +25,5 @@ $wb['domain_txt'] = 'Etki alanı'; $wb['keep_txt'] = 'Tut'; $wb['reject_txt'] = 'Reddet'; $wb['stop_txt'] = 'Durdur'; -$wb['move_to_txt'] = 'Move to'; +$wb['move_to_txt'] = 'Åžuraya Taşı'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_user_list.lng b/interface/web/mail/lib/lang/tr_mail_user_list.lng index 6310ce40380f0c9e29f593a113b5a188bc61b76b..3137af8928a14502773a295e15049d2a13f46133 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_list.lng @@ -1,12 +1,13 @@ <?php -$wb['list_head_txt'] = 'Posta Kutusu'; +$wb['list_head_txt'] = 'E-posta Kutusu'; $wb['email_txt'] = 'E-posta'; $wb['autoresponder_txt'] = 'Otomatik Yanıtlayıcı'; -$wb['add_new_record_txt'] = 'Posta Kutusu Ekle'; +$wb['add_new_record_txt'] = 'E-posta Kutusu Ekle'; $wb['name_txt'] = 'Gerçek Ad'; $wb['login_txt'] = 'Oturum Aç'; -$wb['postfix_txt'] = 'Receiving'; +$wb['postfix_txt'] = 'Alınıyor'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_user_stats_list.lng b/interface/web/mail/lib/lang/tr_mail_user_stats_list.lng index 326f69f69872780e41522a8be0f0fbd9aec5be2d..b28a9f09b99749eb50f8c5fb9b9ffecd90516c74 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_stats_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_stats_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Posta TrafiÄŸi'; +$wb['list_head_txt'] = 'E-posta TrafiÄŸi'; $wb['email_txt'] = 'E-posta'; $wb['this_month_txt'] = 'Bu ay'; $wb['last_month_txt'] = 'Geçen ay'; diff --git a/interface/web/mail/lib/lang/tr_mail_whitelist.lng b/interface/web/mail/lib/lang/tr_mail_whitelist.lng index 84df2143c03de32641274f3083ad03cbc7302029..c6272a9ede18c272efb8036cc8b7022ffebec0f4 100644 --- a/interface/web/mail/lib/lang/tr_mail_whitelist.lng +++ b/interface/web/mail/lib/lang/tr_mail_whitelist.lng @@ -4,6 +4,6 @@ $wb['source_txt'] = 'Beyaz Listedeki Adres'; $wb['recipient_txt'] = 'Alıcı'; $wb['active_txt'] = 'Etkin'; $wb['source_error_notempty'] = 'Adres boÅŸ olamaz.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta süzgeci sayısına ulaÅŸtınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng b/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng index 7809a24fe87d858e17cc2e51d7313549dfe81f5f..736b395ca0af6e7e2fc73758217cfa17918cd3f0 100644 --- a/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'E-posta Beyaz Listesi'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['source_txt'] = 'Beyaz Listedeki Adres'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['recipient_txt'] = 'Alıcı'; $wb['add_new_record_txt'] = 'Beyaz Liste Kaydı Ekle'; $wb['access_txt'] = 'EriÅŸim'; diff --git a/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng index 1e0f673474eca86e236788bc45068a24d22bd648..40e3c5fb141dd0f6ee767b0ed4931ed5bb507da3 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Önemsiz Posta Kara Listesi'; +$wb['list_head_txt'] = 'Önemsiz İleti Kara Listesi'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['priority_txt'] = 'Öncelik'; diff --git a/interface/web/mail/lib/lang/tr_spamfilter_config.lng b/interface/web/mail/lib/lang/tr_spamfilter_config.lng index 7ccd927773807dc6772dfb3b155a6bc52a5c1af2..93f14174832d3917f1622a4debb11e8fe7d1c6c8 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_config.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_config.lng @@ -6,15 +6,15 @@ $wb['gateway_txt'] = 'AÄŸ Geçidi'; $wb['hostname_txt'] = 'Sunucu Adı'; $wb['nameservers_txt'] = 'Ad Sunucuları'; $wb['module_txt'] = 'Sunucu Modülü'; -$wb['maildir_path_txt'] = 'Posta Klasörü Yolu'; +$wb['maildir_path_txt'] = 'E-posta Klasörü Yolu'; $wb['homedir_path_txt'] = 'Kullanıcı Klasörü Yolu'; -$wb['mailuser_uid_txt'] = 'Posta Kullanıcısı UID'; -$wb['mailuser_gid_txt'] = 'Posta Kullanıcısı GID'; -$wb['mailuser_name_txt'] = 'Posta Kullanıcısı Adı'; -$wb['mailuser_group_txt'] = 'Posta Kullanıcısı Grubu'; +$wb['mailuser_uid_txt'] = 'E-posta Kullanıcısı UID'; +$wb['mailuser_gid_txt'] = 'E-posta Kullanıcısı GID'; +$wb['mailuser_name_txt'] = 'E-posta Kullanıcısı Adı'; +$wb['mailuser_group_txt'] = 'E-posta Kullanıcısı Grubu'; $wb['relayhost_txt'] = 'Aktarım Sunucusu'; $wb['relayhost_user_txt'] = 'Aktarım Sunucu Kullanıcı Adı'; $wb['relayhost_password_txt'] = 'Aktarım Sunucu Parolası'; -$wb['mailbox_size_limit_txt'] = 'Posta Kutusu Boyutu'; +$wb['mailbox_size_limit_txt'] = 'E-posta Kutusu Boyutu'; $wb['message_size_limit_txt'] = 'İleti Boyutu Sınırı'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng index 2b6e0b3c18ce550c38b4a5ceb243d31d8faefeca..dc30cf868a26b78dab30fb4268ba7cfdf91df060 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng @@ -1,5 +1,5 @@ <?php $wb['list_head_txt'] = 'Sunucu Ayarları'; $wb['server_name_txt'] = 'Sunucu'; -$wb['server_id_txt'] = 'sunucu_kodu'; +$wb['server_id_txt'] = 'server_id'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_policy.lng b/interface/web/mail/lib/lang/tr_spamfilter_policy.lng index 721b0490f7eb6ad5d7ceb7e8ebee01a63cb5b059..45a52ffc92ffdd4b808a2f32209c3feb15f59d2c 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_policy.lng @@ -1,38 +1,38 @@ <?php $wb['policy_name_txt'] = 'Kural Adı'; $wb['virus_lover_txt'] = 'Virüs Koruması'; -$wb['spam_lover_txt'] = 'Önemsiz Posta Koruması'; -$wb['banned_files_lover_txt'] = 'Yasak Dosya Koruması'; -$wb['bad_header_lover_txt'] = 'Kötü Üstbilgi Koruması'; -$wb['bypass_virus_checks_txt'] = 'Virüs korumasını atla'; -$wb['bypass_banned_checks_txt'] = 'Yasak dosya korumasını atla'; -$wb['bypass_header_checks_txt'] = 'Üstbilgi korumasını atla'; -$wb['virus_quarantine_to_txt'] = 'Virüsü e-postaya ilet'; -$wb['spam_quarantine_to_txt'] = 'Önemsiz postayı e-postaya ilet'; -$wb['banned_quarantine_to_txt'] = 'Yasak dosyaları e-postaya ilet'; -$wb['bad_header_quarantine_to_txt'] = 'Kötü üstbilgiyi e-postaya ilet'; -$wb['clean_quarantine_to_txt'] = 'Temiz postaların iletileceÄŸi e-posta'; -$wb['other_quarantine_to_txt'] = 'DiÄŸer postaların iletileceÄŸi e-posta'; -$wb['spam_tag_level_txt'] = 'Önemsiz posta etiket düzeyi'; -$wb['spam_tag2_level_txt'] = 'Önemsiz posta etiket2 düzeyi'; -$wb['spam_kill_level_txt'] = 'Önemsiz posta yok etme düzeyi'; -$wb['spam_dsn_cutoff_level_txt'] = 'Önemsiz posta DNS durdurma limiti'; -$wb['spam_quarantine_cutoff_level_txt'] = 'Önemsiz posta karantina durdurma düzeyi'; -$wb['spam_modifies_subj_txt'] = 'Önemsiz posta konu deÄŸiÅŸikliÄŸi'; -$wb['spam_subject_tag_txt'] = 'Önemsiz posta konu etiketi'; -$wb['spam_subject_tag2_txt'] = 'Önemsiz posta konu etiketi2'; -$wb['addr_extension_virus_txt'] = 'Adres Virus eki'; -$wb['addr_extension_spam_txt'] = 'Adres SPAM eki'; -$wb['addr_extension_banned_txt'] = 'Adres Yasak eki'; -$wb['addr_extension_bad_header_txt'] = 'Adres Kötü üstbilfi eki'; -$wb['warnvirusrecip_txt'] = 'Virus alıcısını uyar'; -$wb['warnbannedrecip_txt'] = 'Yasak dosya alıcısını uyar'; -$wb['warnbadhrecip_txt'] = 'Kötü üstbilgi alıcısını uyar'; +$wb['spam_lover_txt'] = 'Önemsiz İleti Koruması'; +$wb['banned_files_lover_txt'] = 'Yasaklanmış Dosya Koruması'; +$wb['bad_header_lover_txt'] = 'Kötü Üst Bilgi Koruması'; +$wb['bypass_virus_checks_txt'] = 'Virüs koruması atlansın'; +$wb['bypass_banned_checks_txt'] = 'Yasaklanmış dosya koruması atlansın'; +$wb['bypass_header_checks_txt'] = 'Üst bilgi koruması atlansın'; +$wb['virus_quarantine_to_txt'] = 'Virüs e-postaya iletilsin'; +$wb['spam_quarantine_to_txt'] = 'Önemsiz ileti e-postaya iletilsin'; +$wb['banned_quarantine_to_txt'] = 'Yasak dosya e-postaya iletilsin'; +$wb['bad_header_quarantine_to_txt'] = 'Kötü üst bilgi e-postaya iletilsin'; +$wb['clean_quarantine_to_txt'] = 'Temiz e-postaların iletileceÄŸi e-posta'; +$wb['other_quarantine_to_txt'] = 'DiÄŸer e-postaların iletileceÄŸi e-posta'; +$wb['spam_tag_level_txt'] = 'Önemsiz ileti etiket düzeyi'; +$wb['spam_tag2_level_txt'] = 'Önemsiz ileti etiket2 düzeyi'; +$wb['spam_kill_level_txt'] = 'Önemsiz ileti yok etme düzeyi'; +$wb['spam_dsn_cutoff_level_txt'] = 'Önemsiz ileti DNS durdurma limiti'; +$wb['spam_quarantine_cutoff_level_txt'] = 'Önemsiz ileti karantina durdurma düzeyi'; +$wb['spam_modifies_subj_txt'] = 'Önemsiz ileti konu deÄŸiÅŸikliÄŸi'; +$wb['spam_subject_tag_txt'] = 'Önemsiz ileti konu etiketi'; +$wb['spam_subject_tag2_txt'] = 'Önemsiz ileti konu etiketi2'; +$wb['addr_extension_virus_txt'] = 'Adres virus uzantısı'; +$wb['addr_extension_spam_txt'] = 'Adres önemsiz ileti uzantısı'; +$wb['addr_extension_banned_txt'] = 'Adres yasaklanmış uzantısı'; +$wb['addr_extension_bad_header_txt'] = 'Adres kötü üst bilgi uzantısı'; +$wb['warnvirusrecip_txt'] = 'Virus alıcısı uyarılsın'; +$wb['warnbannedrecip_txt'] = 'Yasak dosya alıcısı uyarılsın'; +$wb['warnbadhrecip_txt'] = 'Kötü üst bilgi alıcısı uyarılsın'; $wb['newvirus_admin_txt'] = 'Yeni virus yönetici'; $wb['virus_admin_txt'] = 'Virus yönetici'; $wb['banned_admin_txt'] = 'Yasak dosya yönetici'; -$wb['bad_header_admin_txt'] = 'Kötü üstbilgi yönetici'; -$wb['spam_admin_txt'] = 'Önemsiz posta yönetici'; +$wb['bad_header_admin_txt'] = 'Kötü üst bilgi yönetici'; +$wb['spam_admin_txt'] = 'Önemsiz ileti yönetici'; $wb['message_size_limit_txt'] = 'İleti boyutu sınırı'; $wb['banned_rulenames_txt'] = 'Yasak kural adları'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng index 78459c3f238285d4d59f94e172249493461eede6..cb5b9b83afa6d245fe96c179132a7ba5d0423ff8 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Önemsiz Posta Süzgeci Kuralları'; +$wb['list_head_txt'] = 'Önemsiz İleti Süzgeci Kuralları'; $wb['policy_name_txt'] = 'Ad'; $wb['virus_lover_txt'] = 'Virüs Koruması'; -$wb['spam_lover_txt'] = 'Önemsiz Posta Koruması'; +$wb['spam_lover_txt'] = 'Önemsiz İleti Koruması'; $wb['banned_files_lover_txt'] = 'Yasaklı Dosya Koruması'; -$wb['bad_header_lover_txt'] = 'Kötü Üstbilgi Koruması'; +$wb['bad_header_lover_txt'] = 'Kötü Üst Bilgi Koruması'; $wb['add_new_record_txt'] = 'Kural Kaydı Ekle'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng index 847c5bdf4fd79412bc4e0a81b95cf0f41d793c2c..bee9372cbf2665a1256e633fd38e724a38fe3e43 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Önemsiz Posta Süzgeci Kullanıcıları'; +$wb['list_head_txt'] = 'Önemsiz İleti Süzgeci Kullanıcıları'; $wb['local_txt'] = 'Yerel'; $wb['server_id_txt'] = 'Sunucu'; $wb['priority_txt'] = 'Öncelik'; $wb['policy_id_txt'] = 'Kural'; $wb['fullname_txt'] = 'Ad'; $wb['email_txt'] = 'E-posta'; -$wb['add_new_record_txt'] = 'Önemsiz Posta Süzgeci Kullanıcısı Ekle'; +$wb['add_new_record_txt'] = 'Önemsiz İleti Süzgeci Kullanıcısı Ekle'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng index c29bf003c5cbbf1e07dc4ec22eb938cf95bebd92..5e1f95da1c83f0c858ef60b4077d23f0cb274f2e 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Önemsiz Posta Beyaz Listesi'; +$wb['list_head_txt'] = 'Önemsiz İleti Beyaz Listesi'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['priority_txt'] = 'Öncelik'; diff --git a/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng b/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng old mode 100755 new mode 100644 index d97ab317f6dc54b2b90c2a31a692966606891c4c..ecab0f7735c025bb727f5ca76bbf53d3d2578d7d --- a/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/tr_user_quota_stats_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Posta Kutusu Kotası'; +$wb['list_head_txt'] = 'E-posta Kutusu Kotası'; $wb['quota_txt'] = 'Kota'; $wb['name_txt'] = 'Ad'; $wb['email_txt'] = 'E-posta Adresi'; diff --git a/interface/web/mail/lib/lang/tr_xmpp_domain.lng b/interface/web/mail/lib/lang/tr_xmpp_domain.lng index 0541203b2e19bc1658e140470cb0375f774c7e0a..5c0c1acd05c028ddf00cd94c93fed64525f5c46a 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_domain.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_domain.lng @@ -1,62 +1,62 @@ <?php -$wb['server_id_txt'] = 'Server'; -$wb['client_group_id_txt'] = 'Client'; -$wb['domain_txt'] = 'Domain'; -$wb['type_txt'] = 'Type'; -$wb['active_txt'] = 'Active'; -$wb['client_txt'] = 'Client'; -$wb['management_method_txt'] = 'Management of user accounts'; -$wb['public_registration_txt'] = 'Enable public registration'; -$wb['registration_url_txt'] = 'Registration URL'; -$wb['registration_message_txt'] = 'Registration Message'; -$wb['domain_admins_txt'] = 'Domain Admins (JIDs)'; -$wb['use_pubsub_txt'] = 'Enable Pubsub'; -$wb['use_proxy_txt'] = 'Enable Bytestream Proxy'; -$wb['use_anon_host_txt'] = 'Enable Anonymous Host'; -$wb['use_vjud_txt'] = 'Enable VJUD User Directory'; -$wb['vjud_opt_mode_txt'] = 'VJUD Opt Mode'; -$wb['use_muc_host_txt'] = 'Enable Multi User Chatrooms'; -$wb['muc_name_txt'] = 'Name in MUC Service Discovery'; -$wb['muc_restrict_room_creation_txt'] = 'Permission to create chatrooms'; -$wb['muc_admins_txt'] = 'MUC Admins (JIDs)'; -$wb['use_pastebin_txt'] = 'Enable Pastebin'; -$wb['pastebin_expire_after_txt'] = 'Pastes expire after (hours)'; -$wb['pastebin_trigger_txt'] = 'Pastebin trigger'; -$wb['use_http_archive_txt'] = 'Enable HTTP chatroom archive'; -$wb['http_archive_show_join_txt'] = 'Show join messages in archive'; -$wb['http_archive_show_status_txt'] = 'Show status changes in archive'; -$wb['use_status_host_txt'] = 'Enable XML Status host'; -$wb['cant_change_domainname_txt'] = 'The Domain name of existing XMPP domain cannot be changed.'; -$wb['about_registration_url_txt'] = 'Link to your registration form.'; -$wb['about_registration_message_txt'] = 'Description about your account registration process.'; -$wb['no_corresponding_maildomain_txt'] = 'Corresponding mail domain for user management not found. Please create the mail domain first.'; -$wb['ssl_state_txt'] = 'State'; -$wb['ssl_locality_txt'] = 'Locality'; -$wb['ssl_organisation_txt'] = 'Organisation'; -$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; -$wb['ssl_country_txt'] = 'Country'; -$wb['ssl_key_txt'] = 'SSL Key'; -$wb['ssl_request_txt'] = 'SSL Request'; -$wb['ssl_cert_txt'] = 'SSL Certificate'; -$wb['ssl_bundle_txt'] = 'SSL Bundle'; -$wb['ssl_action_txt'] = 'SSL Action'; -$wb['ssl_email_txt'] = 'Email Address'; -$wb['ssl_txt'] = 'SSL'; -$wb['error_ssl_state_empty'] = 'SSL State is empty.'; -$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; -$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; -$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; -$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; -$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; -$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ'; -$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ'; -$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ'; -$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ'; -$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; -$wb['none_txt'] = 'None'; -$wb['save_certificate_txt'] = 'Save certificate'; -$wb['create_certificate_txt'] = 'Create certificate'; -$wb['delete_certificate_txt'] = 'Delete certificate'; -$wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate'; -$wb['limit_xmppdomain_txt'] = 'The max. number of XMPP domains for your account is reached.'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['client_group_id_txt'] = 'Müşteri'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['type_txt'] = 'Tür'; +$wb['active_txt'] = 'Etkin'; +$wb['client_txt'] = 'Müşteri'; +$wb['management_method_txt'] = 'Kullanıcı Hesabı Yönetimi'; +$wb['public_registration_txt'] = 'Herkes Kayıt Olabilsin'; +$wb['registration_url_txt'] = 'Kayıt Adresi'; +$wb['registration_message_txt'] = 'Kayıt İletisi'; +$wb['domain_admins_txt'] = 'Etki Alanı Yöneticileri (JID)'; +$wb['use_pubsub_txt'] = 'Pubsub Kullanılsın'; +$wb['use_proxy_txt'] = 'Bytestream Vekil Sunucusu Kullanılsın'; +$wb['use_anon_host_txt'] = 'Anonim Sunucu Kullanılsın'; +$wb['use_vjud_txt'] = 'VJUD Kullanıcı Klasörü Kullanılsın'; +$wb['vjud_opt_mode_txt'] = 'VJUD Opt Kipi'; +$wb['use_muc_host_txt'] = 'Çok Kullanıcılı Sohbet Kullanılsın'; +$wb['muc_name_txt'] = 'MUC Hizmet KeÅŸfindeki Ad'; +$wb['muc_restrict_room_creation_txt'] = 'Sohbet Odaları OluÅŸturma İzni'; +$wb['muc_admins_txt'] = 'MUC Yöneticileri (JID)'; +$wb['use_pastebin_txt'] = 'Pastebin Kullanılsın'; +$wb['pastebin_expire_after_txt'] = 'Yapıştırmaların geçersizlik süresi (saat)'; +$wb['pastebin_trigger_txt'] = 'Pastebin Tetikleyici'; +$wb['use_http_archive_txt'] = 'HTTP Sohbet Odası ArÅŸivi Kullanılsın'; +$wb['http_archive_show_join_txt'] = 'Katılma iletileri arÅŸivde görüntülensin'; +$wb['http_archive_show_status_txt'] = 'Durum deÄŸiÅŸiklikleri arÅŸivde görüntülensin'; +$wb['use_status_host_txt'] = 'XML Durum Sunucusu Kullanılsın'; +$wb['cant_change_domainname_txt'] = 'Var olan XMPP etki alanının adı deÄŸiÅŸtirilemez.'; +$wb['about_registration_url_txt'] = 'Kayıt formunuzun baÄŸlantısı.'; +$wb['about_registration_message_txt'] = 'Hesap kaydı iÅŸlemi ile ilgili açıklama.'; +$wb['no_corresponding_maildomain_txt'] = 'Kullanıcı yönetimi için uygun e-posta etki alanı bulunamadı. Lütfen önce bir e-posta etki alanı ekleyin.'; +$wb['ssl_state_txt'] = 'İl'; +$wb['ssl_locality_txt'] = 'Konum'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; +$wb['ssl_organisation_unit_txt'] = 'KuruluÅŸ Birimi'; +$wb['ssl_country_txt'] = 'Ülke'; +$wb['ssl_key_txt'] = 'SSL Anahtarı'; +$wb['ssl_request_txt'] = 'SSL İsteÄŸi'; +$wb['ssl_cert_txt'] = 'SSL Sertifikası'; +$wb['ssl_bundle_txt'] = 'SSL BaÄŸlantısı'; +$wb['ssl_action_txt'] = 'SSL İşlemi'; +$wb['ssl_email_txt'] = 'E-posta Adresi'; +$wb['ssl_txt'] = 'SSL Süresi'; +$wb['error_ssl_state_empty'] = 'SSL ili boÅŸ olamaz.'; +$wb['error_ssl_locality_empty'] = 'SSL bölgesi boÅŸ olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluÅŸu boÅŸ olamaz.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL kuruluÅŸ birimi boÅŸ olamaz.'; +$wb['error_ssl_country_empty'] = 'SSL ülkesi boÅŸ olamaz.'; +$wb['error_ssl_cert_empty'] = 'SSL sertifika alanı boÅŸ olamaz.'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluÅŸu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluÅŸu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; +$wb['none_txt'] = 'Yok'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; +$wb['ssl_error_isemail'] = 'Lütfen SSL sertifikasının oluÅŸturulması için geçerli bir e-posta adresi yazın'; +$wb['limit_xmppdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla XMPP etki alanı sayısına ulaÅŸtınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng index af643eab5aee3835de27ff78c851d0048052fefe..0a0c7abe6071c0dd0a876fcba1987a63313f26de 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'XMPP Domain'; -$wb['server_id_txt'] = 'Server'; -$wb['domain_txt'] = 'Domain'; -$wb['add_new_record_txt'] = 'Add new Domain'; -$wb['active_txt'] = 'Active'; -$wb['sys_groupid_txt'] = 'Client'; +$wb['list_head_txt'] = 'XMPP Etki Alanı'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['add_new_record_txt'] = 'Etki Alanı Ekle'; +$wb['active_txt'] = 'Etkin'; +$wb['sys_groupid_txt'] = 'Müşteri'; ?> diff --git a/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng b/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng index ebfebab7d50cc92cd87be46e8de665ba2bfb6f23..50a7d55cd22bfbef355a7ba53e3f57c94baf8185 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'XMPP Domain'; -$wb['server_id_txt'] = 'Server'; -$wb['domain_txt'] = 'Domain'; -$wb['add_new_record_txt'] = 'Add new Domain'; -$wb['active_txt'] = 'Active'; +$wb['list_head_txt'] = 'XMPP Etki Alanı'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['add_new_record_txt'] = 'Etki Alanı Ekle'; +$wb['active_txt'] = 'Etkin'; ?> diff --git a/interface/web/mail/lib/lang/tr_xmpp_user.lng b/interface/web/mail/lib/lang/tr_xmpp_user.lng index 6ab739d98b9ad877f9f9de5f04530b7add424fd5..c83f1ecef04c507a50a55c4bb3a93ddad3b2b93d 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_user.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_user.lng @@ -1,15 +1,15 @@ <?php -$wb['list_head_txt'] = 'XMPP User Accounts'; -$wb['jid_txt'] = 'Jabber ID'; -$wb['active_txt'] = 'Active'; -$wb['cryptpwd_txt'] = 'Password'; -$wb['password_strength_txt'] = 'Password strength'; -$wb['error_no_pwd'] = 'Password is empty.'; -$wb['password_txt'] = 'Password'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['no_domain_perm'] = 'You have no permission for this domain.'; -$wb['limit_xmpp_user_txt'] = 'The max. number of xmpp accounts for your account is reached.'; +$wb['list_head_txt'] = 'XMPP Kullanıcı Adı'; +$wb['jid_txt'] = 'Jabber Kodu'; +$wb['active_txt'] = 'Etkin'; +$wb['cryptpwd_txt'] = 'Parola'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; +$wb['error_no_pwd'] = 'Paroal boÅŸ olamaz.'; +$wb['password_txt'] = 'Paroal'; +$wb['generate_password_txt'] = 'Parola Üret'; +$wb['repeat_password_txt'] = 'Parola Onayı'; +$wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; +$wb['password_match_txt'] = 'Parolalar aynı.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; +$wb['limit_xmpp_user_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla XMPP hesabı sayısına ulaÅŸtınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_xmpp_user_list.lng b/interface/web/mail/lib/lang/tr_xmpp_user_list.lng index f2651cb62b0cfbe55156d943e91fd7e0c33ac515..a6af23d15bb8655737cb40e563325c09f36b3173 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_user_list.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_user_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'XMPP User Accounts'; -$wb['jid_txt'] = 'Jabber ID'; -$wb['is_domain_admin_txt'] = 'Domain admin'; -$wb['is_muc_admin_txt'] = 'MUC admin'; -$wb['add_new_record_txt'] = 'Add new user'; -$wb['active_txt'] = 'Active'; +$wb['list_head_txt'] = 'XMPP Kullanıcı Hesapları'; +$wb['jid_txt'] = 'Jabber Kodu'; +$wb['is_domain_admin_txt'] = 'Etki Alanı Yöneticisi'; +$wb['is_muc_admin_txt'] = 'MUC Yöneticisi'; +$wb['add_new_record_txt'] = 'Kullanıcı Ekle'; +$wb['active_txt'] = 'Etkin'; ?> diff --git a/interface/web/mail/lib/module.conf.php b/interface/web/mail/lib/module.conf.php index 6466f614c64548bd9cacf532ed63a21b45b78d3a..d9d97bc8b2fb72c4b161791023177368f901000e 100644 --- a/interface/web/mail/lib/module.conf.php +++ b/interface/web/mail/lib/module.conf.php @@ -150,31 +150,33 @@ if($app->auth->get_client_limit($userid, 'fetchmail') != 0) } //**** XMPP Menu -$items = array(); - -if($app->auth->get_client_limit($userid, 'xmpp_domain') != 0) -{ - $items[] = array( 'title' => 'XMPP Domain', - 'target' => 'content', - 'link' => 'mail/xmpp_domain_list.php', - 'html_id' => 'xmpp_domain_list'); -} - -if($app->auth->get_client_limit($userid, 'xmpp_user') != 0) -{ - $items[] = array( 'title' => 'XMPP Account', - 'target' => 'content', - 'link' => 'mail/xmpp_user_list.php', - 'html_id' => 'xmpp_user_list'); +if ($app->system->has_service($userid, 'xmpp')) { + $items = array(); + + if($app->auth->get_client_limit($userid, 'xmpp_domain') != 0) + { + $items[] = array( 'title' => 'XMPP Domain', + 'target' => 'content', + 'link' => 'mail/xmpp_domain_list.php', + 'html_id' => 'xmpp_domain_list'); + } + + if($app->auth->get_client_limit($userid, 'xmpp_user') != 0) + { + $items[] = array( 'title' => 'XMPP Account', + 'target' => 'content', + 'link' => 'mail/xmpp_user_list.php', + 'html_id' => 'xmpp_user_list'); + } + + if(count($items)) + { + $module['nav'][] = array( 'title' => 'Jabber / XMPP', + 'open' => 1, + 'items' => $items); + } } -if(count($items) && $app->system->has_service($userid, 'xmpp')) - $module['nav'][] = array( 'title' => 'Jabber / XMPP', - 'open' => 1, - 'items' => $items); - - - //**** Statistics menu $items = array(); @@ -189,12 +191,13 @@ $items[] = array( 'title' => 'Mailbox traffic', 'target' => 'content', 'link' => 'mail/mail_user_stats.php', 'html_id' => 'mail_user_stats'); -$items[] = array ( - 'title' => 'Backup Stats', - 'target' => 'content', - 'link' => 'mail/backup_stats.php', - 'html_id' => 'backup_stats'); - +if($app->auth->get_client_limit($userid, 'backup') == 'y') { + $items[] = array ( + 'title' => 'Backup Stats', + 'target' => 'content', + 'link' => 'mail/backup_stats.php', + 'html_id' => 'backup_stats'); +} $module['nav'][] = array( 'title' => 'Statistics', 'open' => 1, diff --git a/interface/web/mail/list/mail_user.list.php b/interface/web/mail/list/mail_user.list.php index 4513a516c910cb05cdc6bb7d36388240e7afe818..3e020ea603a9db377dbfacf1d467043db96a62a9 100644 --- a/interface/web/mail/list/mail_user.list.php +++ b/interface/web/mail/list/mail_user.list.php @@ -107,6 +107,15 @@ $liste["item"][] = array( 'field' => "disablesmtp", 'width' => "", 'value' => array('n' => $app->lng('yes_txt'), 'y' => $app->lng('no_txt'))); +$liste["item"][] = array( 'field' => "disabledeliver", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('n' => $app->lng('yes_txt'), 'y' => $app->lng('no_txt'))); + $liste["item"][] = array( 'field' => "disableimap", 'datatype' => "VARCHAR", 'formtype' => "SELECT", diff --git a/interface/web/mail/list/user_quota_stats.list.php b/interface/web/mail/list/user_quota_stats.list.php index e8faae36340d654ab2545669c21c378858920f4c..1ba9fc670220ac01fb3c71753239434d4243585a 100644 --- a/interface/web/mail/list/user_quota_stats.list.php +++ b/interface/web/mail/list/user_quota_stats.list.php @@ -41,7 +41,7 @@ $liste["paging_tpl"] = "templates/paging.tpl.htm"; $liste["auth"] = "yes"; // mark columns for php sorting (no real mySQL columns) -$liste["phpsort"] = array('used_sort', 'percentage_sort'); +$liste["phpsort"] = array('used', 'percentage'); /***************************************************** * Suchfelder diff --git a/interface/web/mail/mail_blacklist_del.php b/interface/web/mail/mail_blacklist_del.php index 3cb83a50a00dcc3859335bc5f7e3df4546c1994b..d3bbc5d5d581991078d44997aa583d1550243181 100644 --- a/interface/web/mail/mail_blacklist_del.php +++ b/interface/web/mail/mail_blacklist_del.php @@ -42,6 +42,9 @@ $tform_def_file = "form/mail_blacklist.tform.php"; require_once '../../lib/config.inc.php'; require_once '../../lib/app.inc.php'; + +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); + //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/mail_blacklist_edit.php b/interface/web/mail/mail_blacklist_edit.php index f7e2d15e3f519c1c79690b5b0fd0a47ba0107eb9..e2f284a34ed84df3a0c397aee67107eeabb15468 100644 --- a/interface/web/mail/mail_blacklist_edit.php +++ b/interface/web/mail/mail_blacklist_edit.php @@ -53,16 +53,7 @@ class page_action extends tform_actions { function onShowNew() { global $app, $conf; - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailfilter')) { - $app->error($app->tform->wordbook["limit_mailfilter_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailfilter')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailfilter_txt"]); - } - } - + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); parent::onShowNew(); } @@ -70,6 +61,8 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf; + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { @@ -86,24 +79,10 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if(substr($this->dataRecord['source'], 0, 1) === '@') $this->dataRecord['source'] = substr($this->dataRecord['source'], 1); - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); - $client = $app->db->queryOneRecord("SELECT limit_mailfilter FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?" , $client_group_id); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailfilter"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(access_id) as number FROM mail_access WHERE sys_groupid = ?", $client_group_id); - if($tmp["number"] >= $client["limit_mailfilter"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailfilter_txt"]."<br>"; - } - unset($tmp); - } - } // end if user is not admin - parent::onSubmit(); } diff --git a/interface/web/mail/mail_blacklist_list.php b/interface/web/mail/mail_blacklist_list.php index cf1e50ddaaf5a319cc605f1376ac47d0e6921a4a..2bdc1e93b8270148285eb4d705dfa7b47cadcfce 100644 --- a/interface/web/mail/mail_blacklist_list.php +++ b/interface/web/mail/mail_blacklist_list.php @@ -12,6 +12,8 @@ $list_def_file = "list/mail_blacklist.list.php"; * End Form configuration ******************************************/ +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); + //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/mail_domain_catchall_edit.php b/interface/web/mail/mail_domain_catchall_edit.php index 4ef18d45e7c8fee393a5b0666c8e5bf6cf6a1bba..1f37164224a78a6799b9e9524adb8390bb658f37 100644 --- a/interface/web/mail/mail_domain_catchall_edit.php +++ b/interface/web/mail/mail_domain_catchall_edit.php @@ -77,7 +77,7 @@ class page_action extends tform_actions { // Getting Domains of the user $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r'); $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains)) { foreach( $domains as $domain) { $domain['domain'] = $app->functions->idn_decode($domain['domain']); diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 72877a774ddd2766b244690b2451f118c78d1c74..19aa4f91e61b5600904b40c88118dad8f5287f73 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -75,7 +75,13 @@ class page_action extends tform_actions { $app->uses('ini_parser,getconf'); $settings = $app->getconf->get_global_config('domains'); - if($_SESSION["s"]["user"]["typ"] == 'admin' && $settings['use_domain_module'] != 'y') { + if($_SESSION["s"]["user"]["typ"] == 'admin' && $settings['use_domain_module'] == 'y') { + $sql = "SELECT CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = ?"; + $clients = $app->db->queryAllRecords($sql, $this->dataRecord['sys_groupid']); + $client_select = '<option value="dummy">' . $clients[0]['contactname'] . '</option>'; + $app->tpl->setVar("client_group_name", $client_select); + } + elseif($_SESSION["s"]["user"]["typ"] == 'admin' && $settings['use_domain_module'] != 'y') { // Getting Clients of the user $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY client.company_name, client.contact_name, sys_group.name"; @@ -159,7 +165,7 @@ class page_action extends tform_actions { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains("mail_domain", $this->dataRecord["domain"]); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ foreach( $domains as $domain) { @@ -273,7 +279,10 @@ class page_action extends tform_actions { } //* make sure that the email domain is lowercase - if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + if(isset($this->dataRecord["domain"])){ + $this->dataRecord["domain"] = $app->functions->idn_encode($this->dataRecord["domain"]); + $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + } parent::onSubmit(); @@ -317,7 +326,7 @@ class page_action extends tform_actions { $soaDomain = $this->dataRecord['domain'].'.'; while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) { $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain); - $soaDomain = preg_replace("/^\w+\./","",$soaDomain); + $soaDomain = preg_replace("/^[^\.]+\./","",$soaDomain); } if ( isset($soa) && !empty($soa) ) $this->update_dns($this->dataRecord, $soa); } @@ -450,7 +459,7 @@ class page_action extends tform_actions { $soaDomain = $domain.'.'; while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) { $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain); - $soaDomain = preg_replace("/^[\w\-]+\./","",$soaDomain); + $soaDomain = preg_replace("/^[^\.]+\./","",$soaDomain); } if ( ($selector || $dkim_private || $dkim_active) && $dkim_active ) diff --git a/interface/web/mail/mail_mailinglist_edit.php b/interface/web/mail/mail_mailinglist_edit.php index 57d9c77f2efe9f01a0f22a51566fe1d034155684..913611323d9cd9ca818ce142bb23317ee5f06585 100644 --- a/interface/web/mail/mail_mailinglist_edit.php +++ b/interface/web/mail/mail_mailinglist_edit.php @@ -112,7 +112,7 @@ class page_action extends tform_actions { // Getting Domains of the user $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains)) { foreach( $domains as $domain) { $selected = ($domain["domain"] == $this->dataRecord["domain"])?'SELECTED':''; diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index 910d7a096a5f1acb49c3e231d1966895a2eeac45..1dca1db848b93ff78ce9f8c2a9c143579bdf98f7 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -70,6 +70,9 @@ class page_action extends tform_actions { function onShowEnd() { global $app, $conf; + // Workaround for #5448, accessed via link on quota dashlet. + $app->tpl->setVar('app_module', 'mail'); + $email = $this->dataRecord["email"]; $email_parts = explode("@", $email); $app->tpl->setVar("email_local_part", $email_parts[0]); @@ -77,7 +80,7 @@ class page_action extends tform_actions { // Getting Domains of the user // $sql = "SELECT domain, server_id FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; - $sql = "SELECT domain, server_id FROM mail_domain WHERE (".$app->tform->getAuthSQL('r').") AND domain NOT IN (SELECT SUBSTR(source,2) FROM mail_forwarding WHERE type = 'aliasdomain') ORDER BY domain"; + $sql = "SELECT domain, server_id FROM mail_domain WHERE (".$app->tform->getAuthSQL('r').") AND domain NOT IN (SELECT SUBSTR(source,2) FROM mail_forwarding WHERE type = 'aliasdomain') ORDER BY domain"; $domains = $app->db->queryAllRecords($sql); $domain_select = ''; if(is_array($domains)) { @@ -96,7 +99,7 @@ class page_action extends tform_actions { if (isset($_POST['policy'])) $tmp_user['policy_id'] = intval($_POST['policy']); $sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r') . " ORDER BY policy_name"; $policys = $app->db->queryAllRecords($sql); - $policy_select = "<option value='0'>".$app->tform->lng("no_policy")."</option>"; + $policy_select = "<option value='0'>".$app->tform->lng("inherit_policy")."</option>"; if(is_array($policys)) { foreach( $policys as $p) { $selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':''; @@ -217,7 +220,7 @@ class page_action extends tform_actions { $tmp = $app->db->queryOneRecord("SELECT maildir_format FROM mail_user WHERE mailuser_id = ".$app->functions->intval($this->id)); $this->dataRecord['maildir_format'] = $tmp['maildir_format']; } - + //* compose the email field if(isset($_POST["email_local_part"]) && isset($_POST["email_domain"])) { $this->dataRecord["email"] = strtolower($_POST["email_local_part"]."@".$app->functions->idn_encode($_POST["email_domain"])); @@ -236,7 +239,7 @@ class page_action extends tform_actions { $maildir = str_replace("[localpart]", strtolower($_POST["email_local_part"]), $maildir); $this->dataRecord["maildir"] = $maildir; $this->dataRecord["homedir"] = $mail_config["homedir_path"]; - + // Will be overwritten by mail_plugin if ($mail_config["mailbox_virtual_uidgid_maps"] == 'y') { $this->dataRecord['uid'] = -1; @@ -245,7 +248,7 @@ class page_action extends tform_actions { $this->dataRecord['uid'] = intval($mail_config["mailuser_uid"]); $this->dataRecord['gid'] = intval($mail_config["mailuser_gid"]); } - + //* Check if there is no alias or forward with this address $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE active = 'y' AND source = ?", $this->dataRecord["email"]); if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("duplicate_alias_or_forward_txt")."<br>"; @@ -295,7 +298,7 @@ class page_action extends tform_actions { "priority" => 10, "policy_id" => $policy_id, "email" => $this->dataRecord["email"], - "fullname" => $this->dataRecord["email"], + "fullname" => $app->functions->idn_decode($this->dataRecord["email"]), "local" => 'Y' ); $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); @@ -307,11 +310,12 @@ class page_action extends tform_actions { if(isset($this->dataRecord["email"])) { $disableimap = ($this->dataRecord["disableimap"])?'y':'n'; $disablepop3 = ($this->dataRecord["disablepop3"])?'y':'n'; - $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y'; $disablesmtp = ($this->dataRecord["disablesmtp"])?'y':'n'; + $disabledeliver = ($this->dataRecord["disabledeliver"])?'y':'n'; - $sql = "UPDATE mail_user SET disableimap = ?, disablesieve = ?, disablepop3 = ?, disablesmtp = ?, disabledeliver = ?, disablelda = ?, disabledoveadm = ? WHERE mailuser_id = ?"; - $app->db->query($sql, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $disableimap, $this->id); + $app->db->query($sql, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $this->id); + $sql = "UPDATE mail_user SET disableimap = ?, disablesieve = ?, disablepop3 = ?, disablesmtp = ?, disabledeliver = ?, disablelda = ?, disablelmtp = ? WHERE mailuser_id = ?"; + $app->db->query($sql, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $disabledeliver, $this->id); } } @@ -342,7 +346,7 @@ class page_action extends tform_actions { "priority" => 10, "policy_id" => $policy_id, "email" => $this->dataRecord["email"], - "fullname" => $this->dataRecord["email"], + "fullname" => $app->functions->idn_decode($this->dataRecord["email"]), "local" => 'Y' ); $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); @@ -359,11 +363,11 @@ class page_action extends tform_actions { if(isset($this->dataRecord["email"])) { $disableimap = (isset($this->dataRecord["disableimap"]) && $this->dataRecord["disableimap"])?'y':'n'; $disablepop3 = (isset($this->dataRecord["disablepop3"]) && $this->dataRecord["disablepop3"])?'y':'n'; - $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y'; $disablesmtp = (isset($this->dataRecord["disablesmtp"]) && $this->dataRecord["disablesmtp"])?'y':'n'; + $disabledeliver = (isset($this->dataRecord["disabledeliver"]) && $this->dataRecord["disabledeliver"])?'y':'n'; - $sql = "UPDATE mail_user SET disableimap = ?, disablesieve = ?, `disablesieve-filter` = ?, disablepop3 = ?, disablesmtp = ?, disabledeliver = ?, disablelda = ?, disabledoveadm = ? WHERE mailuser_id = ?"; - $app->db->query($sql, $disableimap, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $disableimap, $this->id); + $sql = "UPDATE mail_user SET disableimap = ?, disablesieve = ?, `disablesieve-filter` = ?, disablepop3 = ?, disablesmtp = ?, disabledeliver = ?, disablelda = ?, disablelmtp = ? WHERE mailuser_id = ?"; + $app->db->query($sql, $disableimap, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $disabledeliver, $this->id); } //** If the email address has been changed, change it in all aliases too diff --git a/interface/web/mail/mail_whitelist_del.php b/interface/web/mail/mail_whitelist_del.php index 94be228f67035481bbfc4dd24057b325ce8a8445..2294f4486806d41ffc7777d5bec207ae9c519c48 100644 --- a/interface/web/mail/mail_whitelist_del.php +++ b/interface/web/mail/mail_whitelist_del.php @@ -42,6 +42,8 @@ $tform_def_file = "form/mail_whitelist.tform.php"; require_once '../../lib/config.inc.php'; require_once '../../lib/app.inc.php'; +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); + //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/mail_whitelist_edit.php b/interface/web/mail/mail_whitelist_edit.php index 9bb04fab7a21155e9197893106ce9801751ec6e3..2cf56b1ec451626491830f41acb54196341d6505 100644 --- a/interface/web/mail/mail_whitelist_edit.php +++ b/interface/web/mail/mail_whitelist_edit.php @@ -53,55 +53,33 @@ class page_action extends tform_actions { function onShowNew() { global $app, $conf; - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailfilter')) { - $app->error($app->tform->wordbook["limit_mailfilter_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailfilter')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailfilter_txt"]); - } - } - + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + parent::onShowNew(); } function onBeforeUpdate() { global $app, $conf; + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from mail_access WHERE access_id = ?", $this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); + $rec = $app->db->queryOneRecord("SELECT server_id from mail_access WHERE access_id = ?", $this->id); + if($rec['server_id'] != $this->dataRecord["server_id"]) { + //* Add a error message and switch back to old server + $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); + $this->dataRecord["server_id"] = $rec['server_id']; } + unset($rec); } function onSubmit() { global $app, $conf; + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if(substr($this->dataRecord['source'], 0, 1) === '@') $this->dataRecord['source'] = substr($this->dataRecord['source'], 1); - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); - $client = $app->db->queryOneRecord("SELECT limit_mailfilter FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailfilter"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(access_id) as number FROM mail_access WHERE sys_groupid = ?", $client_group_id); - if($tmp["number"] >= $client["limit_mailfilter"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailfilter_txt"]."<br>"; - } - unset($tmp); - } - } // end if user is not admin parent::onSubmit(); } diff --git a/interface/web/mail/mail_whitelist_list.php b/interface/web/mail/mail_whitelist_list.php index 4fd33dd977b0259f46c83c2f2634ff787a9f7910..1a09b6b16578dd81455536a425d110597ed99168 100644 --- a/interface/web/mail/mail_whitelist_list.php +++ b/interface/web/mail/mail_whitelist_list.php @@ -12,6 +12,8 @@ $list_def_file = "list/mail_whitelist.list.php"; * End Form configuration ******************************************/ +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); + //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php index 5320506846fc3e36364a482a0e1c5c0c5d993373..572a184020c28cef8f219fae5879a6231ff69fed 100644 --- a/interface/web/mail/spamfilter_policy_edit.php +++ b/interface/web/mail/spamfilter_policy_edit.php @@ -49,8 +49,9 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { + function onShowNew() { - global $app, $conf; + global $app; // we will check only users, not admins if($_SESSION["s"]["user"]["typ"] == 'user') { @@ -66,7 +67,7 @@ class page_action extends tform_actions { } function onSubmit() { - global $app, $conf; + global $app; // Check the client limits, if user is not the admin if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin @@ -86,11 +87,43 @@ class page_action extends tform_actions { parent::onSubmit(); } + + function onAfterUpdate() { + global $app; + + $record_has_changed = false; + foreach($this->dataRecord as $key => $val) { + if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { + // Record has changed + $record_has_changed = true; + } + } + if($record_has_changed){ + $spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE policy_id = ?", intval($this->id)); + + if(is_array($spamfilter_users) && !empty($spamfilter_users)){ + foreach($spamfilter_users as $spamfilter_user){ + $app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true); + + // check if this is an email domain + if(substr($spamfilter_user['email'],0,1) == '@') { + $domain = substr($spamfilter_user['email'],1); + $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source LIKE ? OR destination LIKE ?", "%@" . $domain, "%@" . $domain); + + // Force-update aliases and forwards + if(is_array($forwardings)) { + foreach($forwardings as $rec) { + $app->db->datalogUpdate('mail_forwarding', array("source" => $rec['source']), 'forwarding_id', $rec['forwarding_id'],true); + } + } + } + + } + } + } + } } $app->tform_actions = new page_action; $app->tform_actions->onLoad(); - - -?> diff --git a/interface/web/mail/spamfilter_policy_list.php b/interface/web/mail/spamfilter_policy_list.php index c2ab38d5f7eea35dd36a9fac367ebea1e1c443ca..2aa7c7bec132ea3bc80d59d6c4b7545284ffc052 100644 --- a/interface/web/mail/spamfilter_policy_list.php +++ b/interface/web/mail/spamfilter_policy_list.php @@ -16,9 +16,28 @@ $list_def_file = "list/spamfilter_policy.list.php"; $app->auth->check_module_permissions('mail'); $app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; -$app->listform_actions->onLoad(); - - -?> +class list_action extends listform_actions { + + function onShow() { + global $app, $conf; + + // get the config + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + $content_filter = 'amavisd'; + if($mail_config['content_filter'] == 'rspamd'){ + $content_filter = 'rspamd'; + } + $app->tpl->setVar("content_filter", $content_filter); + + parent::onShow(); + } + +} + +$list = new list_action; +//$list->SQLExtWhere = "wb = 'W'"; +$list->onLoad(); +?> \ No newline at end of file diff --git a/interface/web/mail/templates/mail_alias_edit.htm b/interface/web/mail/templates/mail_alias_edit.htm index 6a67887bf9d4f68921dfd97664208943b654e8c3..2fd149a348351667536af5e57fa0a67081524bbd 100644 --- a/interface/web/mail/templates/mail_alias_edit.htm +++ b/interface/web/mail/templates/mail_alias_edit.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="form-group"> <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='email_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/mail/templates/mail_alias_list.htm b/interface/web/mail/templates/mail_alias_list.htm index 5f19fba1387bc8fba7a4cbafc191b95be3a0322d..f65e40a9083065969f9eb6d566740403c86ee59a 100644 --- a/interface/web/mail/templates/mail_alias_list.htm +++ b/interface/web/mail/templates/mail_alias_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/mail_alias_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td><a href="#" data-load-content="mail/mail_alias_edit.php?id={tmpl_var name='id'}">{tmpl_var name="destination"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_alias_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_alias_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_aliasdomain_edit.htm b/interface/web/mail/templates/mail_aliasdomain_edit.htm index 9e19b5d07aa619883300e2c22d693b23c88a06a3..a18ff0e3db0529e5b7d6b60de84cd16276483db9 100644 --- a/interface/web/mail/templates/mail_aliasdomain_edit.htm +++ b/interface/web/mail/templates/mail_aliasdomain_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="destination" class="col-sm-3 control-label">{tmpl_var name='source_txt'}</label> <div class="col-sm-9"><select name="source" id="source" class="form-control"> @@ -31,4 +24,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_aliasdomain_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_aliasdomain_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_aliasdomain_list.htm b/interface/web/mail/templates/mail_aliasdomain_list.htm index 6ce208b48b62bfe3cca51292f29c9d7ecfce8d82..06166ae3c4a9bded392eff6d0d589daed21d8369 100644 --- a/interface/web/mail/templates/mail_aliasdomain_list.htm +++ b/interface/web/mail/templates/mail_aliasdomain_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/mail_aliasdomain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td><a href="#" data-load-content="mail/mail_aliasdomain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="destination"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_aliasdomain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_aliasdomain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_blacklist_edit.htm b/interface/web/mail/templates/mail_blacklist_edit.htm index c68729cbceec5e32778e792af94da9cef034f057..24ad67e569920a96afb0b801630c784f0f7ca52a 100644 --- a/interface/web/mail/templates/mail_blacklist_edit.htm +++ b/interface/web/mail/templates/mail_blacklist_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -34,4 +27,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_blacklist_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_blacklist_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_blacklist_list.htm b/interface/web/mail/templates/mail_blacklist_list.htm index b023f5404253eb9a8fb1927e5dd02a4fb1647ab3..a52c797e8b73f9d2181295b7733feba219df1766 100644 --- a/interface/web/mail/templates/mail_blacklist_list.htm +++ b/interface/web/mail/templates/mail_blacklist_list.htm @@ -56,7 +56,7 @@ <td><a href="#" data-load-content="mail/mail_blacklist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td><a href="#" data-load-content="mail/mail_blacklist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_blacklist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_blacklist_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_content_filter_edit.htm b/interface/web/mail/templates/mail_content_filter_edit.htm index 4aa59c8e06ea9993ea47427a6509eec51f0996e7..8eb4266feffb64d2e261b931df2457bcf18e04a8 100644 --- a/interface/web/mail/templates/mail_content_filter_edit.htm +++ b/interface/web/mail/templates/mail_content_filter_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -42,4 +35,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_content_filter_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_content_filter_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_content_filter_list.htm b/interface/web/mail/templates/mail_content_filter_list.htm index 01689aa4d6fab13d30e75ab6cd60ce5248f4c410..5dcd8e7ff969ea39cd3997de7dfa85a5f7c4ccc1 100644 --- a/interface/web/mail/templates/mail_content_filter_list.htm +++ b/interface/web/mail/templates/mail_content_filter_list.htm @@ -56,7 +56,7 @@ <td><a href="#" data-load-content="mail/mail_content_filter_edit.php?id={tmpl_var name='id'}">{tmpl_var name="pattern"}</a></td> <td><a href="#" data-load-content="mail/mail_content_filter_edit.php?id={tmpl_var name='id'}">{tmpl_var name="action"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_content_filter_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_content_filter_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_domain_admin_list.htm b/interface/web/mail/templates/mail_domain_admin_list.htm index 1b2b41f3924a95a060ea7034cdd9de10de2cc087..69680cf30810e02db4f78cd3f36c50878259c0b2 100644 --- a/interface/web/mail/templates/mail_domain_admin_list.htm +++ b/interface/web/mail/templates/mail_domain_admin_list.htm @@ -39,7 +39,7 @@ <td><a href="#" data-load-content="mail/mail_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="mail/mail_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_domain_catchall_edit.htm b/interface/web/mail/templates/mail_domain_catchall_edit.htm index 63c4405de243819c80e653a8b428bdb98d99af32..8da10f1f09e00e5a8840f3c8feed993b224108d1 100644 --- a/interface/web/mail/templates/mail_domain_catchall_edit.htm +++ b/interface/web/mail/templates/mail_domain_catchall_edit.htm @@ -1,7 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> <div class="form-group"> <label for="email_domain" class="col-sm-3 control-label">{tmpl_var name='source_txt'}</label> <div class="col-sm-9"> @@ -14,17 +10,23 @@ <div class="form-group"> <label for="destination" class="col-sm-3 control-label">{tmpl_var name='destination_txt'}</label> <div class="col-sm-9"><input type="text" name="destination" id="destination" value="{tmpl_var name='destination'}" class="form-control" /></div></div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='greylisting_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='greylisting'} + </div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> <div class="col-sm-9"> {tmpl_var name='active'} </div> </div> - + <input type="hidden" name="id" value="{tmpl_var name='id'}"> <input type="hidden" name="type" value="catchall"> <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_domain_catchall_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_domain_catchall_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_domain_catchall_list.htm b/interface/web/mail/templates/mail_domain_catchall_list.htm index 29483ae3d054072f6d5894ca6b8c3f68d1513e3a..a9c0d9acd700a4067a607526b060de9ff28d5b71 100644 --- a/interface/web/mail/templates/mail_domain_catchall_list.htm +++ b/interface/web/mail/templates/mail_domain_catchall_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/mail_domain_catchall_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td><a href="#" data-load-content="mail/mail_domain_catchall_edit.php?id={tmpl_var name='id'}">{tmpl_var name="destination"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_catchall_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_catchall_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm index 71a6655e80850a7bc1a733856ac20c1635f1301c..42ae8fe280ead70a6ae8258f155b240a841704e6 100644 --- a/interface/web/mail/templates/mail_domain_edit.htm +++ b/interface/web/mail/templates/mail_domain_edit.htm @@ -1,11 +1,4 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - - <tmpl_if name="is_admin"> + <tmpl_if name="is_admin"> <div class="form-group"> <tmpl_if name="edit_disabled"> <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> @@ -13,21 +6,28 @@ {tmpl_var name='server_id'} </select></div> <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> + <tmpl_else> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> {tmpl_var name='server_id'} </select></div> </tmpl_if> </div> - <tmpl_unless name="domain_option"> + <tmpl_if name="domain_option"> + <div class="form-group"> + <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label> + <div class="col-sm-9"><select name="server_id_disabled" id="server_id_disabled" class="form-control" disabled="disabled"> + {tmpl_var name='client_group_name'} + </select></div> + </div> + <tmpl_else> <div class="form-group"> <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label> <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control"> {tmpl_var name='client_group_id'} </select></div> </div> - </tmpl_unless> + </tmpl_if> <tmpl_else> <tmpl_if name="only_one_server"> <input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" /> diff --git a/interface/web/mail/templates/mail_domain_list.htm b/interface/web/mail/templates/mail_domain_list.htm index bb1eba146b9bf5d7ab63f02ae3b47720f7afcb44..f0d6e532e7c6194e064cef9c043e90fa5f0d2dfa 100644 --- a/interface/web/mail/templates/mail_domain_list.htm +++ b/interface/web/mail/templates/mail_domain_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/mail_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="mail/mail_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_forward_edit.htm b/interface/web/mail/templates/mail_forward_edit.htm index 7c1fca02993ea101c207a95fb2b43eaafe09fae0..a5de2a00b73421a23ffb670af039169badba9867 100644 --- a/interface/web/mail/templates/mail_forward_edit.htm +++ b/interface/web/mail/templates/mail_forward_edit.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="form-group"> <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='email_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/mail/templates/mail_forward_list.htm b/interface/web/mail/templates/mail_forward_list.htm index bb4b95ed12fcd5d6869ebdab91311d377b7b3358..c4d7e1f60a3de4c52db37596ca2b2463a496efd4 100644 --- a/interface/web/mail/templates/mail_forward_list.htm +++ b/interface/web/mail/templates/mail_forward_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/mail_forward_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td><a href="#" data-load-content="mail/mail_forward_edit.php?id={tmpl_var name='id'}">{tmpl_var name="destination"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_forward_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_forward_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_get_edit.htm b/interface/web/mail/templates/mail_get_edit.htm index f3d8a3b0f4f93a241bfe0e9708b00ecd060a36e6..6b5b8c198e6992ba9c2126e62074636a479924a3 100644 --- a/interface/web/mail/templates/mail_get_edit.htm +++ b/interface/web/mail/templates/mail_get_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="type" class="col-sm-3 control-label">{tmpl_var name='type_txt'}</label> <div class="col-sm-9"><select name="type" id="type" class="form-control"> @@ -51,4 +44,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_get_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_get_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_get_list.htm b/interface/web/mail/templates/mail_get_list.htm index 58a550a7d1d11ba54e3db2a451b978f9737979d4..747220c2dadabe790bb7ad0e20e9aa5689802583 100644 --- a/interface/web/mail/templates/mail_get_list.htm +++ b/interface/web/mail/templates/mail_get_list.htm @@ -59,7 +59,7 @@ <td><a href="#" data-load-content="mail/mail_get_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source_username"}</a></td> <td><a href="#" data-load-content="mail/mail_get_edit.php?id={tmpl_var name='id'}">{tmpl_var name="destination"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_get_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_get_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_mailinglist_edit.htm b/interface/web/mail/templates/mail_mailinglist_edit.htm index 9d6f8bdde60c807372c7c3583f5062e80523ef1e..ac43cbb4178148e99305bcc954674dab952736ca 100644 --- a/interface/web/mail/templates/mail_mailinglist_edit.htm +++ b/interface/web/mail/templates/mail_mailinglist_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Mailing List</legend> <tmpl_if name="is_admin"> <div class="form-group"> <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label> diff --git a/interface/web/mail/templates/mail_mailinglist_list.htm b/interface/web/mail/templates/mail_mailinglist_list.htm index 7e15df3aad961490cdbd87ae4b655088125d47b0..78e216dc084e5290549834ad6865352c0b6c2061 100644 --- a/interface/web/mail/templates/mail_mailinglist_list.htm +++ b/interface/web/mail/templates/mail_mailinglist_list.htm @@ -52,7 +52,7 @@ <tmpl_if name="mailmailinglist_link"> <a class="btn btn-default formbutton-default formbutton-narrow" href="mail/mailinglist.php?id={tmpl_var name='id'}" target="mailmailinglist"><span class="icon icon-mail"></span></a> </tmpl_if> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_mailinglist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_mailinglist_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_relay_recipient_edit.htm b/interface/web/mail/templates/mail_relay_recipient_edit.htm index 83e52aa661310fc6b92d3d4983c0b2e55e737cd1..7b476fe37a5194d9dbfb88de6914563899497db3 100644 --- a/interface/web/mail/templates/mail_relay_recipient_edit.htm +++ b/interface/web/mail/templates/mail_relay_recipient_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Relay recipient</legend> <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -28,4 +21,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_relay_recipient_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_relay_recipient_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_relay_recipient_list.htm b/interface/web/mail/templates/mail_relay_recipient_list.htm index 7dac3e7ce5a4aa42f110162d9cc8423ba8664c5a..3aeeb12e6c2f7e139d0cf30c7762cd2189ccc066 100644 --- a/interface/web/mail/templates/mail_relay_recipient_list.htm +++ b/interface/web/mail/templates/mail_relay_recipient_list.htm @@ -52,7 +52,7 @@ <td><a href="#" data-load-content="mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_relay_recipient_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_relay_recipient_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_transport_edit.htm b/interface/web/mail/templates/mail_transport_edit.htm index e0332de1b6dfbad2919d6a162a5f6d9bf0d1ee85..694e57634d578fb049eb1c40b6c10803be47be17 100644 --- a/interface/web/mail/templates/mail_transport_edit.htm +++ b/interface/web/mail/templates/mail_transport_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -48,4 +41,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_transport_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_transport_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_transport_list.htm b/interface/web/mail/templates/mail_transport_list.htm index 4b4b2d9e53d6529f5bf4bb339ab8aeb5575844cc..9795f0093e9e5e91acc1d3139cb29c2c55944f9e 100644 --- a/interface/web/mail/templates/mail_transport_list.htm +++ b/interface/web/mail/templates/mail_transport_list.htm @@ -59,7 +59,7 @@ <td><a href="#" data-load-content="mail/mail_transport_edit.php?id={tmpl_var name='id'}">{tmpl_var name="transport"}</a></td> <td><a href="#" data-load-content="mail/mail_transport_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sort_order"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_transport_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_transport_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_user_autoresponder_edit.htm b/interface/web/mail/templates/mail_user_autoresponder_edit.htm index c5fc584c09f961d8c899500845f5511746ae348c..1c1cdc6759ce9a41cad0952eb66e7721543ad14a 100644 --- a/interface/web/mail/templates/mail_user_autoresponder_edit.htm +++ b/interface/web/mail/templates/mail_user_autoresponder_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="autoresponder_subject" class="col-sm-3 control-label">{tmpl_var name='autoresponder_subject_txt'}</label> <div class="col-sm-9"><input class="form-control" type="text" name="autoresponder_subject" id="autoresponder_subject" value="{tmpl_var name='autoresponder_subject'}" /></div></div> @@ -30,4 +23,4 @@ <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_user_backup.htm b/interface/web/mail/templates/mail_user_backup.htm index f9abba3bba1ba119a3d1fef71c509acbf64fb46d..bbf1abaf87cc59005ac27627b00c6457409f93b1 100644 --- a/interface/web/mail/templates/mail_user_backup.htm +++ b/interface/web/mail/templates/mail_user_backup.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -12,8 +7,6 @@ </div> </tmpl_if> - - <legend>Backup</legend> <div class="form-group"> <label for="backup_interval" class="col-sm-3 control-label">{tmpl_var name='backup_interval_txt'}</label> <div class="col-sm-9"><select name="backup_interval" id="backup_interval" class="form-control"> @@ -26,7 +19,7 @@ {tmpl_var name='backup_copies'} </select></div> </div> - + {tmpl_var name='backup_records'} <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/mail/templates/mail_user_custom_rules_edit.htm b/interface/web/mail/templates/mail_user_custom_rules_edit.htm index d12378678c935229bba74d7415927faef6bd94e3..263ea7916a7ee93f2fc582d4aa8e8109911fa5fc 100644 --- a/interface/web/mail/templates/mail_user_custom_rules_edit.htm +++ b/interface/web/mail/templates/mail_user_custom_rules_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="custom_mailfilter" class="col-sm-3 control-label">{tmpl_var name='custom_mailfilter_txt'}</label> <div class="col-sm-9"><textarea class="form-control" name="custom_mailfilter" id="custom_mailfilter" rows='15' cols='30'>{tmpl_var name='custom_mailfilter'}</textarea></div> @@ -16,4 +9,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_user_filter_edit.htm b/interface/web/mail/templates/mail_user_filter_edit.htm index cb2d79a2498d73c5ce84dff2e17af2d86a45f749..6a7983c64e03723fb7d62b79ca2b7758d1286221 100644 --- a/interface/web/mail/templates/mail_user_filter_edit.htm +++ b/interface/web/mail/templates/mail_user_filter_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="rulename" class="col-sm-3 control-label">{tmpl_var name='rulename_txt'}</label> <div class="col-sm-9"><input type="text" id="rulename" name="rulename" value="{tmpl_var name='rulename'}" class="form-control"></div> @@ -32,4 +25,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_filter_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='mailuser_id'}">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_user_filter_list.htm b/interface/web/mail/templates/mail_user_filter_list.htm index 990558bd11e4b13e16b61e5bf884905f9b06ca29..c38df26a8e4f86dd1a77796ae3c81bb475c7a58d 100644 --- a/interface/web/mail/templates/mail_user_filter_list.htm +++ b/interface/web/mail/templates/mail_user_filter_list.htm @@ -42,7 +42,7 @@ <tr> <td><a href="#" data-load-content="mail/mail_user_filter_edit.php?id={tmpl_var name='id'}">{tmpl_var name="rulename"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_user_filter_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_user_filter_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_user_list.htm b/interface/web/mail/templates/mail_user_list.htm index 4e2fedd50c2af2111bef51f836925b4dc04e74fc..12659260acf399c891acb726c32b0fbc28a8f7bc 100644 --- a/interface/web/mail/templates/mail_user_list.htm +++ b/interface/web/mail/templates/mail_user_list.htm @@ -21,12 +21,12 @@ </div> </tmpl_if> <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p> - + <button class="btn btn-default formbutton-success" type="button" data-load-content="mail/mail_user_edit.php">{tmpl_var name="add_new_record_txt"}</button> - - - + + + <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p> <div class="table-wrapper marginTop15"> <table class="table"> @@ -38,6 +38,7 @@ <th class="tiny-col" data-column="autoresponder"><tmpl_var name="autoresponder_txt"></th> <th class="tiny-col" data-column="postfix"><tmpl_var name="postfix_txt"></th> <th class="tiny-col" data-column="disablesmtp"><tmpl_var name="disablesmtp_txt"></th> + <th class="tiny-col" data-column="disabledeliver"><tmpl_var name="disabledeliver_txt"></th> <th class="tiny-col" data-column="disableimap"><tmpl_var name="disableimap_txt"></th> <th class="tiny-col" data-column="disablepop3"><tmpl_var name="disablepop3_txt"></th> <th class="small-col text-right">{tmpl_var name='search_limit'}</th> @@ -49,6 +50,7 @@ <td><select class="form-control" name="search_autoresponder">{tmpl_var name='search_autoresponder'}</select></td> <td><select class="form-control" name="search_postfix">{tmpl_var name='search_postfix'}</select></td> <td><select class="form-control" name="search_disablesmtp">{tmpl_var name='search_disablesmtp'}</select></td> + <td><select class="form-control" name="search_disabledeliver">{tmpl_var name='search_disabledeliver'}</select></td> <td><select class="form-control" name="search_disableimap">{tmpl_var name='search_disableimap'}</select></td> <td><select class="form-control" name="search_disablepop3">{tmpl_var name='search_disablepop3'}</select></td> <td class="text-right"> @@ -60,22 +62,19 @@ <tmpl_loop name="records"> <tr> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='email'}">{tmpl_var name="email"}</a></td> - <tmpl_if name="enable_custom_login"> - <td> - <a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="login"}</a> - </td> - </tmpl_if> + <tmpl_if name="enable_custom_login"><td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="login"}</a></td></tmpl_if> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="name"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="autoresponder"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="postfix"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disablesmtp"}</a></td> + <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disabledeliver"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disableimap"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disablepop3"}</a></td> <td class="text-right"> <tmpl_if name="mailboxlist_webmail_link"> <a class="btn btn-default formbutton-default formbutton-narrow" href="mail/webmailer.php?id={tmpl_var name='id'}" target="webmail"><span class="icon icon-mail"></span></a> </tmpl_if> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm index bcab744de3b54ca7b45efa541061d90c459ef64a..c53bc8529241ea3b57b923f18936f3af26511c2e 100644 --- a/interface/web/mail/templates/mail_user_mailbox_edit.htm +++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label> <div class="col-sm-6"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div><div class="col-sm-3 input-sm"> {tmpl_var name='name_optional_txt'} @@ -74,13 +67,19 @@ <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='postfix_txt'}</label> <div class="col-sm-9"> - {tmpl_var name='postfix'} + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_postfix_txt'}">{tmpl_var name='postfix'}</a> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='disablesmtp_txt'}</label> <div class="col-sm-9"> - {tmpl_var name='disablesmtp'} + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_disablesmtp_txt'}">{tmpl_var name='disablesmtp'}</a> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='disabledeliver_txt'}</label> + <div class="col-sm-9"> + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_disabledeliver_txt'}">{tmpl_var name='disabledeliver'}</a> </div> </div> <div class="form-group"> diff --git a/interface/web/mail/templates/mail_user_mailfilter_edit.htm b/interface/web/mail/templates/mail_user_mailfilter_edit.htm index 183a98b5e332e0c7e6eb4b3d7bc20e633917c5b4..8d14eb4ee6fb73f5b515972c07c6a778278bcc8d 100644 --- a/interface/web/mail/templates/mail_user_mailfilter_edit.htm +++ b/interface/web/mail/templates/mail_user_mailfilter_edit.htm @@ -1,23 +1,42 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> +<div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='move_junk_txt'}</label> + <div class="col-sm-9"><select name="move_junk" id="move_junk" class="form-control"> + {tmpl_var name='move_junk'} + </select></div> +</div> - - <div class="form-group"> - <label class="col-sm-3 control-label">{tmpl_var name='move_junk_txt'}</label> - <div class="col-sm-9"> - {tmpl_var name='move_junk'} - </div> - </div> - +<div class="form-group"> + <label for="purge_trash_days" class="col-sm-3 control-label">{tmpl_var name='purge_trash_days_txt'}</label> + <div class="col-sm-9"> + <div class="input-group"> + <tmpl_if name="show_config_info"> + <input type="text" name="purge_trash_days" id="purge_trash_days" value="{tmpl_var name='purge_trash_days'}" class="form-control" data-toggle="tooltip" title="{tmpl_var name='tooltip_purge_trash_days_txt'}"> + <tmpl_else> + <input type="text" name="purge_trash_days" id="purge_trash_days" value="{tmpl_var name='purge_trash_days'}" class="form-control"> + </tmpl_if> + </div> + </div> +</div> - {tmpl_var name='filter_records'} +<div class="form-group"> + <label for="purge_junk_days" class="col-sm-3 control-label">{tmpl_var name='purge_junk_days_txt'}</label> + <div class="col-sm-9"> + <div class="input-group"> + <tmpl_if name="show_config_info"> + <input type="text" name="purge_junk_days" id="purge_junk_days" value="{tmpl_var name='purge_junk_days'}" class="form-control" data-toggle="tooltip" title="{tmpl_var name='tooltip_purge_junk_days_txt'}"> + <tmpl_else> + <input type="text" name="purge_junk_days" id="purge_junk_days" value="{tmpl_var name='purge_junk_days'}" class="form-control"> + </tmpl_if> + </div> + </div> +</div> + +{tmpl_var name='filter_records'} - <input type="hidden" name="id" value="{tmpl_var name='id'}"> +<input type="hidden" name="id" value="{tmpl_var name='id'}"> - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file +<div class="clear"><div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> +</div></div> diff --git a/interface/web/mail/templates/mail_whitelist_edit.htm b/interface/web/mail/templates/mail_whitelist_edit.htm index 1f72e6935f0dd2d82fa8630e9a118cb2622ea87d..575a6ae2fb5bf9e15893bcef409abde301288364 100644 --- a/interface/web/mail/templates/mail_whitelist_edit.htm +++ b/interface/web/mail/templates/mail_whitelist_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -34,4 +27,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_whitelist_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_whitelist_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/mail_whitelist_list.htm b/interface/web/mail/templates/mail_whitelist_list.htm index cb3b783e7f68c46200c4502e957b3b594090bf2e..dcc018f717de54830efdde1c29e47fd9453ee7b4 100644 --- a/interface/web/mail/templates/mail_whitelist_list.htm +++ b/interface/web/mail/templates/mail_whitelist_list.htm @@ -40,7 +40,7 @@ <td><a href="#" data-load-content="mail/mail_whitelist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="source"}</a></td> <td><a href="#" data-load-content="mail/mail_whitelist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_whitelist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_whitelist_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/spamfilter_amavis_edit.htm b/interface/web/mail/templates/spamfilter_amavis_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..d770ed842af8be2b37a5d4e20aa0af3648ab8d6d --- /dev/null +++ b/interface/web/mail/templates/spamfilter_amavis_edit.htm @@ -0,0 +1,193 @@ +<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> + <!-- Settings --> + <div class="panel panel-default"> + <div class="panel-heading" role="tab" id="headingSettings"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseSettings" aria-expanded="true" aria-controls="collapseSettings"> + {tmpl_var name='amavis_settings_txt'} + </a> + </h4> + </div> + <div id="collapseSettings" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingWeb"> + <div class="panel-body"> + <div class="form-group"> + <label for="banned_files_lover" class="col-sm-3 control-label">{tmpl_var name='banned_files_lover_txt'}</label> + <div class="col-sm-9"><select name="banned_files_lover" id="banned_files_lover" class="form-control"> + {tmpl_var name='banned_files_lover'} + </select></div> + </div> + <div class="form-group"> + <label for="bad_header_lover" class="col-sm-3 control-label">{tmpl_var name='bad_header_lover_txt'}</label> + <div class="col-sm-9"><select name="bad_header_lover" id="bad_header_lover" class="form-control"> + {tmpl_var name='bad_header_lover'} + </select></div> + </div> + <div class="form-group"> + <label for="bypass_virus_checks" class="col-sm-3 control-label">{tmpl_var name='bypass_virus_checks_txt'}</label> + <div class="col-sm-9"><select name="bypass_virus_checks" id="bypass_virus_checks" class="form-control"> + {tmpl_var name='bypass_virus_checks'} + </select></div> + </div> + <div class="form-group"> + <label for="bypass_banned_checks" class="col-sm-3 control-label">{tmpl_var name='bypass_banned_checks_txt'}</label> + <div class="col-sm-9"><select name="bypass_banned_checks" id="bypass_banned_checks" class="form-control"> + {tmpl_var name='bypass_banned_checks'} + </select></div> + </div> + <div class="form-group"> + <label for="bypass_header_checks" class="col-sm-3 control-label">{tmpl_var name='bypass_header_checks_txt'}</label> + <div class="col-sm-9"><select name="bypass_header_checks" id="bypass_header_checks" class="form-control"> + {tmpl_var name='bypass_header_checks'} + </select></div> + </div> + </div> + </div> + </div> + +<!-- Tag Level --> + <div class="panel panel-default"> + <div class="panel-heading" role="tab" id="headingTaglevel"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTaglevel" aria-expanded="true" aria-controls="collapseTaglevel"> + {tmpl_var name='amavis_taglevel_txt'} + </a> + </h4> + </div> + <div id="collapseTaglevel" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTaglevel"> + <div class="panel-body"> + + <div class="form-group"> + <label for="spam_tag_level" class="col-sm-3 control-label">{tmpl_var name='spam_tag_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_tag_level" id="spam_tag_level" value="{tmpl_var name='spam_tag_level'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_tag2_level" class="col-sm-3 control-label">{tmpl_var name='spam_tag2_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_tag2_level" id="spam_tag2_level" value="{tmpl_var name='spam_tag2_level'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_kill_level" class="col-sm-3 control-label">{tmpl_var name='spam_kill_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_kill_level" id="spam_kill_level" value="{tmpl_var name='spam_kill_level'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_dsn_cutoff_level" class="col-sm-3 control-label">{tmpl_var name='spam_dsn_cutoff_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_dsn_cutoff_level" id="spam_dsn_cutoff_level" value="{tmpl_var name='spam_dsn_cutoff_level'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_quarantine_cutoff_level" class="col-sm-3 control-label">{tmpl_var name='spam_quarantine_cutoff_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_quarantine_cutoff_level" id="spam_quarantine_cutoff_level" value="{tmpl_var name='spam_quarantine_cutoff_level'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_modifies_subj" class="col-sm-3 control-label">{tmpl_var name='spam_modifies_subj_txt'}</label> + <div class="col-sm-9"><select name="spam_modifies_subj" id="spam_modifies_subj" class="form-control"> + {tmpl_var name='spam_modifies_subj'} + </select></div> + </div> + <div class="form-group"> + <label for="spam_subject_tag" class="col-sm-3 control-label">{tmpl_var name='spam_subject_tag_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_subject_tag" id="spam_subject_tag" value="{tmpl_var name='spam_subject_tag'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_subject_tag2" class="col-sm-3 control-label">{tmpl_var name='spam_subject_tag2_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_subject_tag2" id="spam_subject_tag2" value="{tmpl_var name='spam_subject_tag2'}" class="form-control" /></div></div> + </div> + </div> + </div> + +<!-- Quarantine --> + <div class="panel panel-default"> + <div class="panel-heading" role="tab" id="headingQuarantine"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseQuarantine" aria-expanded="true" aria-controls="collapseQuarantine"> + {tmpl_var name='amavis_quarantine_txt'} + </a> + </h4> + </div> + <div id="collapseQuarantine" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingQuarantine"> + <div class="panel-body"> + + + <div class="form-group"> + <label for="virus_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='virus_quarantine_to_txt'}</label> + <div class="col-sm-9"><input type="text" name="virus_quarantine_to" id="virus_quarantine_to" value="{tmpl_var name='virus_quarantine_to'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='spam_quarantine_to_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_quarantine_to" id="spam_quarantine_to" value="{tmpl_var name='spam_quarantine_to'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="banned_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='banned_quarantine_to_txt'}</label> + <div class="col-sm-9"><input type="text" name="banned_quarantine_to" id="banned_quarantine_to" value="{tmpl_var name='banned_quarantine_to'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="bad_header_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='bad_header_quarantine_to_txt'}</label> + <div class="col-sm-9"><input type="text" name="bad_header_quarantine_to" id="bad_header_quarantine_to" value="{tmpl_var name='bad_header_quarantine_to'}" class="form-control" /></div></div> + </div> + </div> + </div> + +<!-- Other --> + <div class="panel panel-default"> + <div class="panel-heading" role="tab" id="headingOther"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOther" aria-expanded="true" aria-controls="collapseOther"> + {tmpl_var name='amavis_other_txt'} + </a> + </h4> + </div> + <div id="collapseOther" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOther"> + <div class="panel-body"> + + <div class="form-group"> + <label for="addr_extension_virus" class="col-sm-3 control-label">{tmpl_var name='addr_extension_virus_txt'}</label> + <div class="col-sm-9"><input type="text" name="addr_extension_virus" id="addr_extension_virus" value="{tmpl_var name='addr_extension_virus'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="addr_extension_spam" class="col-sm-3 control-label">{tmpl_var name='addr_extension_spam_txt'}</label> + <div class="col-sm-9"><input type="text" name="addr_extension_spam" id="addr_extension_spam" value="{tmpl_var name='addr_extension_spam'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="addr_extension_banned" class="col-sm-3 control-label">{tmpl_var name='addr_extension_banned_txt'}</label> + <div class="col-sm-9"><input type="text" name="addr_extension_banned" id="addr_extension_banned" value="{tmpl_var name='addr_extension_banned'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="addr_extension_bad_header" class="col-sm-3 control-label">{tmpl_var name='addr_extension_bad_header_txt'}</label> + <div class="col-sm-9"><input type="text" name="addr_extension_bad_header" id="addr_extension_bad_header" value="{tmpl_var name='addr_extension_bad_header'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="warnvirusrecip" class="col-sm-3 control-label">{tmpl_var name='warnvirusrecip_txt'}</label> + <div class="col-sm-9"><select name="warnvirusrecip" id="warnvirusrecip" class="form-control"> + {tmpl_var name='warnvirusrecip'} + </select></div> + </div> + <div class="form-group"> + <label for="warnbannedrecip" class="col-sm-3 control-label">{tmpl_var name='warnbannedrecip_txt'}</label> + <div class="col-sm-9"><select name="warnbannedrecip" id="warnbannedrecip" class="form-control"> + {tmpl_var name='warnbannedrecip'} + </select></div> + </div> + <div class="form-group"> + <label for="warnbadhrecip" class="col-sm-3 control-label">{tmpl_var name='warnbadhrecip_txt'}</label> + <div class="col-sm-9"><select name="warnbadhrecip" id="warnbadhrecip" class="form-control"> + {tmpl_var name='warnbadhrecip'} + </select></div> + </div> + <div class="form-group"> + <label for="newvirus_admin" class="col-sm-3 control-label">{tmpl_var name='newvirus_admin_txt'}</label> + <div class="col-sm-9"><input type="text" name="newvirus_admin" id="newvirus_admin" value="{tmpl_var name='newvirus_admin'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="virus_admin" class="col-sm-3 control-label">{tmpl_var name='virus_admin_txt'}</label> + <div class="col-sm-9"><input type="text" name="virus_admin" id="virus_admin" value="{tmpl_var name='virus_admin'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="banned_admin" class="col-sm-3 control-label">{tmpl_var name='banned_admin_txt'}</label> + <div class="col-sm-9"><input type="text" name="banned_admin" id="banned_admin" value="{tmpl_var name='banned_admin'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="bad_header_admin" class="col-sm-3 control-label">{tmpl_var name='bad_header_admin_txt'}</label> + <div class="col-sm-9"><input type="text" name="bad_header_admin" id="bad_header_admin" value="{tmpl_var name='bad_header_admin'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="spam_admin" class="col-sm-3 control-label">{tmpl_var name='spam_admin_txt'}</label> + <div class="col-sm-9"><input type="text" name="spam_admin" id="spam_admin" value="{tmpl_var name='spam_admin'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="message_size_limit" class="col-sm-3 control-label">{tmpl_var name='message_size_limit_txt'}</label> + <div class="col-sm-9"><div class="input-group"><input type="text" name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" class="form-control" aria-describedby="message_size_limit-desc" /><span class="input-group-addon" id="message_size_limit-desc">Bytes</span></div></div> + </div> + <div class="form-group"> + <label for="banned_rulenames" class="col-sm-3 control-label">{tmpl_var name='banned_rulenames_txt'}</label> + <div class="col-sm-9"><input type="text" name="banned_rulenames" id="banned_rulenames" value="{tmpl_var name='banned_rulenames'}" class="form-control" /></div></div> + </div> + </div> + </div> + + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="clear"><div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button> + </div></div> diff --git a/interface/web/mail/templates/spamfilter_blacklist_edit.htm b/interface/web/mail/templates/spamfilter_blacklist_edit.htm index 1db93dd7c2092787854e113aaf5634634ea2b02e..3a7fd47869c953a7c603d752bb06936b0059b1d0 100644 --- a/interface/web/mail/templates/spamfilter_blacklist_edit.htm +++ b/interface/web/mail/templates/spamfilter_blacklist_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <!-- <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> @@ -42,4 +35,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_blacklist_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_blacklist_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/spamfilter_blacklist_list.htm b/interface/web/mail/templates/spamfilter_blacklist_list.htm index 91a45916ba6f79632b375c18c1fa5d4d6afcdd0c..ae013bdff435b71d3e1f4dd70782f044cd836197 100644 --- a/interface/web/mail/templates/spamfilter_blacklist_list.htm +++ b/interface/web/mail/templates/spamfilter_blacklist_list.htm @@ -43,7 +43,7 @@ <td><a href="#" data-load-content="mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="rid"}</a></td> <td><a href="#" data-load-content="mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="email"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_blacklist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_blacklist_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/spamfilter_config_list.htm b/interface/web/mail/templates/spamfilter_config_list.htm index 486a79e6d9c017c289fb7eca2bd4e4e3c33e5511..3bcac6767a72fab4708e35c578bee9dbb650500e 100644 --- a/interface/web/mail/templates/spamfilter_config_list.htm +++ b/interface/web/mail/templates/spamfilter_config_list.htm @@ -31,7 +31,7 @@ <tr> <td><a href="#" data-load-content="mail/spamfilter_config_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_name"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_config_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_config_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/spamfilter_other_edit.htm b/interface/web/mail/templates/spamfilter_other_edit.htm deleted file mode 100644 index 83cd4a95c906c0d742a1ec37965feb0ba711f2ba..0000000000000000000000000000000000000000 --- a/interface/web/mail/templates/spamfilter_other_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - - <div class="form-group"> - <label for="addr_extension_virus" class="col-sm-3 control-label">{tmpl_var name='addr_extension_virus_txt'}</label> - <div class="col-sm-9"><input type="text" name="addr_extension_virus" id="addr_extension_virus" value="{tmpl_var name='addr_extension_virus'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="addr_extension_spam" class="col-sm-3 control-label">{tmpl_var name='addr_extension_spam_txt'}</label> - <div class="col-sm-9"><input type="text" name="addr_extension_spam" id="addr_extension_spam" value="{tmpl_var name='addr_extension_spam'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="addr_extension_banned" class="col-sm-3 control-label">{tmpl_var name='addr_extension_banned_txt'}</label> - <div class="col-sm-9"><input type="text" name="addr_extension_banned" id="addr_extension_banned" value="{tmpl_var name='addr_extension_banned'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="addr_extension_bad_header" class="col-sm-3 control-label">{tmpl_var name='addr_extension_bad_header_txt'}</label> - <div class="col-sm-9"><input type="text" name="addr_extension_bad_header" id="addr_extension_bad_header" value="{tmpl_var name='addr_extension_bad_header'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="warnvirusrecip" class="col-sm-3 control-label">{tmpl_var name='warnvirusrecip_txt'}</label> - <div class="col-sm-9"><select name="warnvirusrecip" id="warnvirusrecip" class="form-control"> - {tmpl_var name='warnvirusrecip'} - </select></div> - </div> - <div class="form-group"> - <label for="warnbannedrecip" class="col-sm-3 control-label">{tmpl_var name='warnbannedrecip_txt'}</label> - <div class="col-sm-9"><select name="warnbannedrecip" id="warnbannedrecip" class="form-control"> - {tmpl_var name='warnbannedrecip'} - </select></div> - </div> - <div class="form-group"> - <label for="warnbadhrecip" class="col-sm-3 control-label">{tmpl_var name='warnbadhrecip_txt'}</label> - <div class="col-sm-9"><select name="warnbadhrecip" id="warnbadhrecip" class="form-control"> - {tmpl_var name='warnbadhrecip'} - </select></div> - </div> - <div class="form-group"> - <label for="newvirus_admin" class="col-sm-3 control-label">{tmpl_var name='newvirus_admin_txt'}</label> - <div class="col-sm-9"><input type="text" name="newvirus_admin" id="newvirus_admin" value="{tmpl_var name='newvirus_admin'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="virus_admin" class="col-sm-3 control-label">{tmpl_var name='virus_admin_txt'}</label> - <div class="col-sm-9"><input type="text" name="virus_admin" id="virus_admin" value="{tmpl_var name='virus_admin'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="banned_admin" class="col-sm-3 control-label">{tmpl_var name='banned_admin_txt'}</label> - <div class="col-sm-9"><input type="text" name="banned_admin" id="banned_admin" value="{tmpl_var name='banned_admin'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="bad_header_admin" class="col-sm-3 control-label">{tmpl_var name='bad_header_admin_txt'}</label> - <div class="col-sm-9"><input type="text" name="bad_header_admin" id="bad_header_admin" value="{tmpl_var name='bad_header_admin'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_admin" class="col-sm-3 control-label">{tmpl_var name='spam_admin_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_admin" id="spam_admin" value="{tmpl_var name='spam_admin'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="message_size_limit" class="col-sm-3 control-label">{tmpl_var name='message_size_limit_txt'}</label> - <div class="col-sm-9"><div class="input-group"><input type="text" name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" class="form-control" aria-describedby="message_size_limit-desc" /><span class="input-group-addon" id="message_size_limit-desc">Bytes</span></div></div> - </div> - <div class="form-group"> - <label for="banned_rulenames" class="col-sm-3 control-label">{tmpl_var name='banned_rulenames_txt'}</label> - <div class="col-sm-9"><input type="text" name="banned_rulenames" id="banned_rulenames" value="{tmpl_var name='banned_rulenames'}" class="form-control" /></div></div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm index 317bbdb82283b5a6be84558c5e7bc9ca98a726e4..11fd8e73d13a80c4e9708633d922b4a147d4074f 100644 --- a/interface/web/mail/templates/spamfilter_policy_edit.htm +++ b/interface/web/mail/templates/spamfilter_policy_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="policy_name" class="col-sm-3 control-label">{tmpl_var name='policy_name_txt'}</label> <div class="col-sm-9"><input type="text" name="policy_name" id="policy_name" value="{tmpl_var name='policy_name'}" class="form-control" /></div></div> @@ -20,41 +13,11 @@ {tmpl_var name='spam_lover'} </select></div> </div> - <div class="form-group"> - <label for="banned_files_lover" class="col-sm-3 control-label">{tmpl_var name='banned_files_lover_txt'}</label> - <div class="col-sm-9"><select name="banned_files_lover" id="banned_files_lover" class="form-control"> - {tmpl_var name='banned_files_lover'} - </select></div> - </div> - <div class="form-group"> - <label for="bad_header_lover" class="col-sm-3 control-label">{tmpl_var name='bad_header_lover_txt'}</label> - <div class="col-sm-9"><select name="bad_header_lover" id="bad_header_lover" class="form-control"> - {tmpl_var name='bad_header_lover'} - </select></div> - </div> - <div class="form-group"> - <label for="bypass_virus_checks" class="col-sm-3 control-label">{tmpl_var name='bypass_virus_checks_txt'}</label> - <div class="col-sm-9"><select name="bypass_virus_checks" id="bypass_virus_checks" class="form-control"> - {tmpl_var name='bypass_virus_checks'} - </select></div> - </div> - <div class="form-group"> - <label for="bypass_banned_checks" class="col-sm-3 control-label">{tmpl_var name='bypass_banned_checks_txt'}</label> - <div class="col-sm-9"><select name="bypass_banned_checks" id="bypass_banned_checks" class="form-control"> - {tmpl_var name='bypass_banned_checks'} - </select></div> - </div> - <div class="form-group"> - <label for="bypass_header_checks" class="col-sm-3 control-label">{tmpl_var name='bypass_header_checks_txt'}</label> - <div class="col-sm-9"><select name="bypass_header_checks" id="bypass_header_checks" class="form-control"> - {tmpl_var name='bypass_header_checks'} - </select></div> - </div> - + <input type="hidden" name="id" value="{tmpl_var name='id'}"> <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/spamfilter_policy_list.htm b/interface/web/mail/templates/spamfilter_policy_list.htm index da1183d75f9af0dcbf526e0ac68cb400c33d6942..665fa613af05201c97e035e43610893d9df5c013 100644 --- a/interface/web/mail/templates/spamfilter_policy_list.htm +++ b/interface/web/mail/templates/spamfilter_policy_list.htm @@ -19,16 +19,20 @@ <th data-column="policy_name"><tmpl_var name="policy_name_txt"></th> <th data-column="virus_lover"><tmpl_var name="virus_lover_txt"></th> <th data-column="spam_lover"><tmpl_var name="spam_lover_txt"></th> + <tmpl_if name='content_filter' op='==' value='amavisd'> <th data-column="banned_files_lover"><tmpl_var name="banned_files_lover_txt"></th> <th data-column="bad_header_lover"><tmpl_var name="bad_header_lover_txt"></th> + </tmpl_if> <th class="small-col text-right">{tmpl_var name='search_limit'}</th> </tr> <tr> <td><input class="form-control" type="text" name="search_policy_name" value="{tmpl_var name='search_policy_name'}" /></td> <td><select class="form-control" name="search_virus_lover">{tmpl_var name='search_virus_lover'}</select></td> <td><select class="form-control" name="search_spam_lover">{tmpl_var name='search_spam_lover'}</select></td> + <tmpl_if name='content_filter' op='==' value='amavisd'> <td><select class="form-control" name="search_banned_files_lover">{tmpl_var name='search_banned_files_lover'}</select></td> <td><select class="form-control" name="search_bad_header_lover">{tmpl_var name='search_bad_header_lover'}</select></td> + </tmpl_if> <td class="text-right"> <button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_list.php"><span class="icon icon-filter"></span></button> </td> @@ -40,23 +44,25 @@ <td><a href="#" data-load-content="mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}">{tmpl_var name="policy_name"}</a></td> <td><a href="#" data-load-content="mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}">{tmpl_var name="virus_lover"}</a></td> <td><a href="#" data-load-content="mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}">{tmpl_var name="spam_lover"}</a></td> + <tmpl_if name='content_filter' op='==' value='amavisd'> <td><a href="#" data-load-content="mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}">{tmpl_var name="banned_files_lover"}</a></td> <td><a href="#" data-load-content="mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}">{tmpl_var name="bad_header_lover"}</a></td> + </tmpl_if> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_policy_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_policy_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> <tmpl_unless name="records"> <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="6">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + <td colspan="{tmpl_if name='content_filter' op='==' value='amavisd'}6{/tmpl_else}4{/tmpl_if}">{tmpl_var name='globalsearch_noresults_text_txt'}</td> </tr> </tmpl_unless> </tbody> <tfoot> <tr> - <td colspan="6"><tmpl_var name="paging"></td> + <td colspan="{tmpl_if name='content_filter' op='==' value='amavisd'}6{/tmpl_else}4{/tmpl_if}"><tmpl_var name="paging"></td> </tr> </tfoot> </table> diff --git a/interface/web/mail/templates/spamfilter_quarantine_edit.htm b/interface/web/mail/templates/spamfilter_quarantine_edit.htm deleted file mode 100644 index 7f44b58020f1c093cb825b39b0cecacaaa399630..0000000000000000000000000000000000000000 --- a/interface/web/mail/templates/spamfilter_quarantine_edit.htm +++ /dev/null @@ -1,35 +0,0 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - - <div class="form-group"> - <label for="virus_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='virus_quarantine_to_txt'}</label> - <div class="col-sm-9"><input type="text" name="virus_quarantine_to" id="virus_quarantine_to" value="{tmpl_var name='virus_quarantine_to'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='spam_quarantine_to_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_quarantine_to" id="spam_quarantine_to" value="{tmpl_var name='spam_quarantine_to'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="banned_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='banned_quarantine_to_txt'}</label> - <div class="col-sm-9"><input type="text" name="banned_quarantine_to" id="banned_quarantine_to" value="{tmpl_var name='banned_quarantine_to'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="bad_header_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='bad_header_quarantine_to_txt'}</label> - <div class="col-sm-9"><input type="text" name="bad_header_quarantine_to" id="bad_header_quarantine_to" value="{tmpl_var name='bad_header_quarantine_to'}" class="form-control" /></div></div> - <!-- - <div class="form-group"> - <label for="clean_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='clean_quarantine_to_txt'}</label> - <div class="col-sm-9"><input type="text" name="clean_quarantine_to" id="clean_quarantine_to" value="{tmpl_var name='clean_quarantine_to'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="other_quarantine_to" class="col-sm-3 control-label">{tmpl_var name='other_quarantine_to_txt'}</label> - <div class="col-sm-9"><input type="text" name="other_quarantine_to" id="other_quarantine_to" value="{tmpl_var name='other_quarantine_to'}" class="form-control" /></div></div> - --> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_rspamd_edit.htm b/interface/web/mail/templates/spamfilter_rspamd_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..5d1602514a85f23a843debca49fc804ae688e8b8 --- /dev/null +++ b/interface/web/mail/templates/spamfilter_rspamd_edit.htm @@ -0,0 +1,25 @@ + <div class="form-group"> + <label for="rspamd_spam_greylisting_level" class="col-sm-3 control-label">{tmpl_var name='rspamd_spam_greylisting_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="rspamd_spam_greylisting_level" id="rspamd_spam_greylisting_level" value="{tmpl_var name='rspamd_spam_greylisting_level'}" class="form-control" /></div> + </div> + <div class="form-group"> + <label for="rspamd_spam_tag_level" class="col-sm-3 control-label">{tmpl_var name='rspamd_spam_tag_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="rspamd_spam_tag_level" id="rspamd_spam_tag_level" value="{tmpl_var name='rspamd_spam_tag_level'}" class="form-control" /></div> + </div> + <div class="form-group"> + <label for="rspamd_spam_tag_method" class="col-sm-3 control-label">{tmpl_var name='rspamd_spam_tag_method_txt'}</label> + <div class="col-sm-9"><select name="rspamd_spam_tag_method" id="rspamd_spam_tag_method" class="form-control"> + {tmpl_var name='rspamd_spam_tag_method'} + </select></div> + </div> + <div class="form-group"> + <label for="rspamd_spam_kill_level" class="col-sm-3 control-label">{tmpl_var name='rspamd_spam_kill_level_txt'}</label> + <div class="col-sm-9"><input type="text" name="rspamd_spam_kill_level" id="rspamd_spam_kill_level" value="{tmpl_var name='rspamd_spam_kill_level'}" class="form-control" /></div> + </div> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="clear"><div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button> + </div></div> diff --git a/interface/web/mail/templates/spamfilter_taglevel_edit.htm b/interface/web/mail/templates/spamfilter_taglevel_edit.htm deleted file mode 100644 index ba92662ba6f1b96a138dc0afcfc43136eac68cf3..0000000000000000000000000000000000000000 --- a/interface/web/mail/templates/spamfilter_taglevel_edit.htm +++ /dev/null @@ -1,42 +0,0 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - - <div class="form-group"> - <label for="spam_tag_level" class="col-sm-3 control-label">{tmpl_var name='spam_tag_level_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_tag_level" id="spam_tag_level" value="{tmpl_var name='spam_tag_level'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_tag2_level" class="col-sm-3 control-label">{tmpl_var name='spam_tag2_level_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_tag2_level" id="spam_tag2_level" value="{tmpl_var name='spam_tag2_level'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_kill_level" class="col-sm-3 control-label">{tmpl_var name='spam_kill_level_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_kill_level" id="spam_kill_level" value="{tmpl_var name='spam_kill_level'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_dsn_cutoff_level" class="col-sm-3 control-label">{tmpl_var name='spam_dsn_cutoff_level_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_dsn_cutoff_level" id="spam_dsn_cutoff_level" value="{tmpl_var name='spam_dsn_cutoff_level'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_quarantine_cutoff_level" class="col-sm-3 control-label">{tmpl_var name='spam_quarantine_cutoff_level_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_quarantine_cutoff_level" id="spam_quarantine_cutoff_level" value="{tmpl_var name='spam_quarantine_cutoff_level'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_modifies_subj" class="col-sm-3 control-label">{tmpl_var name='spam_modifies_subj_txt'}</label> - <div class="col-sm-9"><select name="spam_modifies_subj" id="spam_modifies_subj" class="form-control"> - {tmpl_var name='spam_modifies_subj'} - </select></div> - </div> - <div class="form-group"> - <label for="spam_subject_tag" class="col-sm-3 control-label">{tmpl_var name='spam_subject_tag_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_subject_tag" id="spam_subject_tag" value="{tmpl_var name='spam_subject_tag'}" class="form-control" /></div></div> - <div class="form-group"> - <label for="spam_subject_tag2" class="col-sm-3 control-label">{tmpl_var name='spam_subject_tag2_txt'}</label> - <div class="col-sm-9"><input type="text" name="spam_subject_tag2" id="spam_subject_tag2" value="{tmpl_var name='spam_subject_tag2'}" class="form-control" /></div></div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_users_edit.htm b/interface/web/mail/templates/spamfilter_users_edit.htm index 7c75c5ee345d818f1a1691166648c7795e069226..80bdbd66ca6b55596bdd2ad5ab7af2036beae697 100644 --- a/interface/web/mail/templates/spamfilter_users_edit.htm +++ b/interface/web/mail/templates/spamfilter_users_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -42,4 +35,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_users_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_users_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/spamfilter_users_list.htm b/interface/web/mail/templates/spamfilter_users_list.htm index 5f8ef83baecf356f8496554ace6e759b435ad066..d13fe32ccb4c1aaa1ba47e6e87b6a2a6eada1d9b 100644 --- a/interface/web/mail/templates/spamfilter_users_list.htm +++ b/interface/web/mail/templates/spamfilter_users_list.htm @@ -43,7 +43,7 @@ <td><a href="#" data-load-content="mail/spamfilter_users_edit.php?id={tmpl_var name='id'}">{tmpl_var name="policy_id"}</a></td> <td><a href="#" data-load-content="mail/spamfilter_users_edit.php?id={tmpl_var name='id'}">{tmpl_var name="fullname"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_users_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_users_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/spamfilter_whitelist_edit.htm b/interface/web/mail/templates/spamfilter_whitelist_edit.htm index aefe5f9fec0ba075af734b2e1d56e82256f014ef..fcc6e09a2ebe5c21ee1c076de620d5c45cdb0c27 100644 --- a/interface/web/mail/templates/spamfilter_whitelist_edit.htm +++ b/interface/web/mail/templates/spamfilter_whitelist_edit.htm @@ -1,11 +1,4 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - - <!-- + <!-- <div class="form-group"> <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label> <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control"> @@ -42,4 +35,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_whitelist_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_whitelist_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mail/templates/spamfilter_whitelist_list.htm b/interface/web/mail/templates/spamfilter_whitelist_list.htm index 87ef0bde23215e76c9580f605804635ca0895bda..614f2a8f5e3ff163ccb97fcd043b314b46d8b158 100644 --- a/interface/web/mail/templates/spamfilter_whitelist_list.htm +++ b/interface/web/mail/templates/spamfilter_whitelist_list.htm @@ -43,7 +43,7 @@ <td><a href="#" data-load-content="mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="rid"}</a></td> <td><a href="#" data-load-content="mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}">{tmpl_var name="email"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_whitelist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/spamfilter_whitelist_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/user_quota_stats_list.htm b/interface/web/mail/templates/user_quota_stats_list.htm index 4b4b831aab7cc4bbc066d85d4671e249cfbf3395..99690d6a332bc30401a50585f2453d61df2d11d0 100644 --- a/interface/web/mail/templates/user_quota_stats_list.htm +++ b/interface/web/mail/templates/user_quota_stats_list.htm @@ -17,7 +17,7 @@ </tr> <tr> <td><input class="form-control" type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td><input class="form-control" type="text" name="search_system_user" value="{tmpl_var name='search_name'}" /></td> + <td><input class="form-control" type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> <td> </td> <td> </td> <td> </td> @@ -50,5 +50,5 @@ </tfoot> </table> </div> - + </div> diff --git a/interface/web/mail/templates/xmpp_domain_admin_list.htm b/interface/web/mail/templates/xmpp_domain_admin_list.htm index ccda2d503263caa1a1dc00f61294b6bfa61c8b3d..c6338037f1ad9cfdbabd2a0eb2c960cbf0dc4d1c 100644 --- a/interface/web/mail/templates/xmpp_domain_admin_list.htm +++ b/interface/web/mail/templates/xmpp_domain_admin_list.htm @@ -39,7 +39,7 @@ <td><a href="#" data-load-content="mail/xmpp_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="mail/xmpp_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/xmpp_domain_edit.htm b/interface/web/mail/templates/xmpp_domain_edit.htm index 5c4e8d79a096fb594d574a7830479f0688139c0b..6953fbfb14848f6684774bb2d7a093a6ce513fd4 100644 --- a/interface/web/mail/templates/xmpp_domain_edit.htm +++ b/interface/web/mail/templates/xmpp_domain_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <tmpl_if name="is_admin"> <div class="form-group"> <tmpl_if name="edit_disabled"> diff --git a/interface/web/mail/templates/xmpp_domain_edit_modules.htm b/interface/web/mail/templates/xmpp_domain_edit_modules.htm index 8efcf509760b533849287d79e2894d4ce0d57c49..f705c495daa65707317aae7045f6805c843347e8 100644 --- a/interface/web/mail/templates/xmpp_domain_edit_modules.htm +++ b/interface/web/mail/templates/xmpp_domain_edit_modules.htm @@ -1,9 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - <tmpl_if name="limit_xmpp_anon" value="y"> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='use_anon_host_txt'}</label> diff --git a/interface/web/mail/templates/xmpp_domain_edit_muc.htm b/interface/web/mail/templates/xmpp_domain_edit_muc.htm index dd46514cae130308cc87bcf26c1df50c879d0d90..542582235256daab4890701dc5a0b07ab1556669 100644 --- a/interface/web/mail/templates/xmpp_domain_edit_muc.htm +++ b/interface/web/mail/templates/xmpp_domain_edit_muc.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='use_muc_host_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/mail/templates/xmpp_domain_edit_ssl.htm b/interface/web/mail/templates/xmpp_domain_edit_ssl.htm index 2bb7d059aade1ee4015a8041c0df6f45f38cacf5..0ef2e2c96266c80b33bcee4aec13b80aa8fb0c6c 100644 --- a/interface/web/mail/templates/xmpp_domain_edit_ssl.htm +++ b/interface/web/mail/templates/xmpp_domain_edit_ssl.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -97,4 +92,4 @@ } </tmpl_if> //--> -</script> \ No newline at end of file +</script> diff --git a/interface/web/mail/templates/xmpp_domain_list.htm b/interface/web/mail/templates/xmpp_domain_list.htm index 79579142d7e874d8a71524c4774ed163925892e3..dff0adb3992022e51d74f5e29b47508b9eba5b16 100644 --- a/interface/web/mail/templates/xmpp_domain_list.htm +++ b/interface/web/mail/templates/xmpp_domain_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/xmpp_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="mail/xmpp_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/templates/xmpp_user_edit.htm b/interface/web/mail/templates/xmpp_user_edit.htm index 467b83fb529ae7fe6babe48aca3659f2e66b02b2..c70155d8f56fa0e99a48c3e015d2da5043fd22dd 100644 --- a/interface/web/mail/templates/xmpp_user_edit.htm +++ b/interface/web/mail/templates/xmpp_user_edit.htm @@ -1,7 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> <div class="form-group"> <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='jid_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/mail/templates/xmpp_user_list.htm b/interface/web/mail/templates/xmpp_user_list.htm index 68668b4928975cc2ac21081e8b38de5fe95a6ce1..bb8e91c6d08eed9dd8e86ee96f0725cb52be640b 100644 --- a/interface/web/mail/templates/xmpp_user_list.htm +++ b/interface/web/mail/templates/xmpp_user_list.htm @@ -53,7 +53,7 @@ <td><a href="#" data-load-content="mail/xmpp_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="is_domain_admin"}</a></td> <td><a href="#" data-load-content="mail/xmpp_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="is_muc_admin"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> </td> </tr> </tmpl_loop> diff --git a/interface/web/mail/user_quota_stats.php b/interface/web/mail/user_quota_stats.php index 90a92558fa03871336c6396fe2dee241ab1e724b..9699acafda6f5e8f90292b403bd4f860967b2864 100644 --- a/interface/web/mail/user_quota_stats.php +++ b/interface/web/mail/user_quota_stats.php @@ -52,7 +52,7 @@ class list_action extends listform_actions { if (!is_numeric($rec['used'])) $rec['used']=$rec['used'][1]; if($rec['quota'] == 0){ - $rec['quota'] = $app->lng('unlimited'); + $rec['quota'] = $app->lng('unlimited_txt'); $rec['percentage'] = ''; $rec['percentage_sort'] = 0; } else { diff --git a/interface/web/mail/xmpp_domain_edit.php b/interface/web/mail/xmpp_domain_edit.php index a89d27c4524a76332f22bbdf0f996ddc870e318f..500757c15907e0dcf5c23f6ec8a0f35b984d97f8 100644 --- a/interface/web/mail/xmpp_domain_edit.php +++ b/interface/web/mail/xmpp_domain_edit.php @@ -182,7 +182,7 @@ class page_action extends tform_actions { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains("xmpp_domain", $this->dataRecord["domain"]); - $domain_select = ''; + $domain_select = "<option value=''></option>"; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ foreach( $domains as $domain) { diff --git a/interface/web/mailuser/form/mail_user_filter.tform.php b/interface/web/mailuser/form/mail_user_filter.tform.php index b785ae0263ab03176d5b2677bff31827804e80a6..9fdd8bdfc0ef45c9168a4c5c0d7a6cae694fa651 100644 --- a/interface/web/mailuser/form/mail_user_filter.tform.php +++ b/interface/web/mailuser/form/mail_user_filter.tform.php @@ -83,7 +83,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt') + 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'List-Id'=>'list_id_txt') ), 'op' => array ( 'datatype' => 'VARCHAR', @@ -128,7 +128,7 @@ $form["tabs"]['filter'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng b/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/br.lng b/interface/web/mailuser/lib/lang/br.lng index 55eca578a4cb61ffeb603a7db8d6966f00dc2dfa..64f93468087de1ecffb6397b4f3dcccad606d0a2 100644 --- a/interface/web/mailuser/lib/lang/br.lng +++ b/interface/web/mailuser/lib/lang/br.lng @@ -1,9 +1,9 @@ <?php -$wb['Email Account'] = 'Contas de e-mail'; -$wb['Overview'] = 'Visão geral'; -$wb['Autoresponder'] = 'Resposta automática'; -$wb['Send copy'] = 'Enviar cópia para'; +$wb['Email Account'] = 'Conta de e-mail'; +$wb['Overview'] = 'Visão Geral'; +$wb['Password'] = 'Senha'; +$wb['Autoresponder'] = 'Auto-resposta'; +$wb['Send copy'] = 'Enviar cópia'; $wb['Spamfilter'] = 'Filtro anti-spam'; $wb['Email Filters'] = 'Filtros de e-mail'; -$wb['Password'] = 'Senha'; ?> diff --git a/interface/web/mailuser/lib/lang/br_index.lng b/interface/web/mailuser/lib/lang/br_index.lng index eb7d7e1e7e40e63fc58a75fcdb35b20d3f24a57f..9be2fbdb2aece4e439fe79301515ecce0209f96b 100644 --- a/interface/web/mailuser/lib/lang/br_index.lng +++ b/interface/web/mailuser/lib/lang/br_index.lng @@ -1,12 +1,12 @@ <?php -$wb['page_head_txt'] = 'Configurações de contas de e-mail'; -$wb['page_desc_txt'] = 'Aqui você edita as configurações para as contas de e-mail.'; +$wb['page_head_txt'] = 'Configurações de conta de e-mail'; +$wb['page_desc_txt'] = 'Aqui você pode editar as configurações da conta de e-mail.'; $wb['email_txt'] = 'Endereço de e-mail'; $wb['login_txt'] = 'Acesso'; $wb['server_address_txt'] = 'Endereço do servidor de e-mails'; -$wb['cc_txt'] = 'Enviar cópia para (CC)'; -$wb['quota_txt'] = 'Tamanho da caixa postal'; -$wb['unlimited_txt'] = 'ilimitada'; +$wb['cc_txt'] = 'Enviar cópia oculta (BCC) para'; +$wb['quota_txt'] = 'Cota da conta de e-mail'; +$wb['unlimited_txt'] = 'Ilimitado'; $wb['mb_txt'] = 'MB'; $wb['none_txt'] = 'Nenhum'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng index 6e00682a446b6356a86c31afdde3256cbdf031c0..9de387d7988c1b3910083be4afd3d9e73ddb5981 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng @@ -1,13 +1,13 @@ <?php -$wb['mailbox_autoresponder_txt'] = 'Autoresposta'; -$wb['autoresponder_subject'] = 'Resposta de ausência temporária'; +$wb['mailbox_autoresponder_txt'] = 'Auto-resposta'; +$wb['autoresponder_subject'] = 'Resposta automática'; $wb['autoresponder_text_txt'] = 'Texto'; $wb['autoresponder_txt'] = 'Ativo'; -$wb['autoresponder_start_date_txt'] = 'InÃcio'; -$wb['autoresponder_start_date_isfuture'] = 'A data de inÃcio não pode ser menor que a data atual.'; -$wb['autoresponder_end_date_txt'] = 'Término'; -$wb['autoresponder_end_date_isgreater'] = 'A data de término não pode ser menor que a data de inÃcio.'; -$wb['autoresponder_active'] = 'Habilitar autoresposta'; +$wb['autoresponder_start_date_txt'] = 'Iniciar em'; +$wb['autoresponder_start_date_isfuture'] = 'O campo "Iniciar em" não pode ser menor que data atual.'; +$wb['autoresponder_end_date_txt'] = 'Terminar em'; +$wb['autoresponder_end_date_isgreater'] = 'O campo "Terminar em" não pode ser menor que "Iniciar em".'; +$wb['autoresponder_active'] = 'Habilitar auto-resposta'; $wb['now_txt'] = 'Agora'; $wb['autoresponder_subject_txt'] = 'Assunto'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_cc.lng b/interface/web/mailuser/lib/lang/br_mail_user_cc.lng index f6d96f02a34bd2affccdc75e4e8b919922ef2ed6..7a1e9a3d95a91ecea9173c8b7104cfc9cf8b2f19 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_cc.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_cc.lng @@ -1,9 +1,9 @@ <?php -$wb['mailbox_cc_txt'] = 'Enviar cópia para o e-mail'; +$wb['mailbox_cc_txt'] = 'Enviar cópia para endereço de e-mail'; $wb['cc_txt'] = 'Enviar cópia para'; -$wb['email_txt'] = 'e-mail'; -$wb['cc_error_isemail'] = 'Endereço de e-mail inválido em \'enviar cópia para\'.'; -$wb['email_is_cc_error'] = 'Endereço de e-mail e -enviar cópia para- não podem ser iguais.'; +$wb['email_txt'] = 'e-Mail'; +$wb['cc_error_isemail'] = 'Endereço de e-mail inválido no campo "Enviar cópia para".'; +$wb['email_is_cc_error'] = 'Endereço de e-mail e "Enviar cópia para" não podem ser os mesmos.'; $wb['name_optional_txt'] = '(Opcional)'; -$wb['cc_note_txt'] = '(Separar múltiplos e-mails por vÃrgulas)'; +$wb['cc_note_txt'] = '(separar múltiplos endereços de e-mail com vÃrgulas)'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng index 37196f5d6c961fe17e01d989e9238722493e235e..acefe8be6eeff36105556b42011eefd2fb2f67c1 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng @@ -5,17 +5,17 @@ $wb['target_txt'] = 'Pasta'; $wb['active_txt'] = 'Ativo'; $wb['rulename_error_empty'] = 'Nome está em branco.'; $wb['searchterm_is_empty'] = 'Termo de pesquisa está em branco.'; -$wb['source_txt'] = 'Fonte'; -$wb['target_error_regex'] = 'O alvo pode conter os seguintes caracteres: \'a-z\', \'0-9\', \'-\', \'.\', \'_\', e \'{espaço}\'.'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mails para esta conta foi alcançado.'; +$wb['source_txt'] = 'Origem'; +$wb['target_error_regex'] = 'O alvo pode conter apenas estes caracteres: "a-z", "0-9", "-", ".", "_", e "{espaço}".'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; +$wb['mailbox_filter_txt'] = 'Filtro de conta de e-mail'; $wb['subject_txt'] = 'Assunto'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Para'; -$wb['contains_txt'] = 'Contém'; -$wb['is_txt'] = 'É'; +$wb['contains_txt'] = 'Contêm'; +$wb['is_txt'] = 'é'; $wb['begins_with_txt'] = 'Iniciando com'; -$wb['ends_with_txt'] = 'Terminando com'; +$wb['ends_with_txt'] = 'Finalizando com'; $wb['move_to_txt'] = 'Mover para'; $wb['delete_txt'] = 'Remover'; -$wb['mailbox_filter_txt'] = 'Filtro de e-mail'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng index 5d0f2419745b00f495c353c7c3ef15cf705d4b3f..5e13e8c303b3aed9b05f01ce985868e885ae8909 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng @@ -4,5 +4,5 @@ $wb['rulename_txt'] = 'Nome'; $wb['add_new_record_txt'] = 'Adicionar novo filtro'; $wb['page_txt'] = 'Página'; $wb['page_of_txt'] = 'de'; -$wb['delete_confirmation'] = 'Você tem certeza que gostaria de remover este filtro de e-mail?'; +$wb['delete_confirmation'] = 'Você tem certeza que deseja remover este filtro de e-mail?'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_password.lng b/interface/web/mailuser/lib/lang/br_mail_user_password.lng index 154a44cd7b11743ae755a874df735edf3b0d1198..7a64df748a9b8e70baf2bed833daf90da4cd2417 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_password.lng @@ -1,11 +1,11 @@ <?php -$wb['mailbox_password_txt'] = 'Senha da Caixa Postal'; +$wb['mailbox_password_txt'] = 'Senha da conta de e-mail'; $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['email_txt'] = 'e-mail'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; +$wb['email_txt'] = 'e-Mail'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; $wb['password_mismatch_txt'] = 'As senhas não coincidem.'; $wb['password_match_txt'] = 'As senhas coincidem.'; -$wb['password_click_to_set_txt'] = 'Confirmar'; +$wb['password_click_to_set_txt'] = 'Clique para configurar'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng index a4973817a201e6fc2c25d0f02a9145a5ad0fd928..eb369220412e340952738ed60bffcd81f943c356 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng @@ -1,7 +1,7 @@ <?php $wb['mailbox_spamfilter_txt'] = 'Filtros anti-spam'; $wb['spamfilter_txt'] = 'Filtro anti-spam'; -$wb['email_txt'] = 'e-mail'; +$wb['email_txt'] = 'e-Mail'; $wb['no_policy'] = '-desabilitado-'; $wb['policy_txt'] = 'PolÃtica'; ?> diff --git a/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng index e164d54bb2aefb167824b6377dce1fe32489848a..0a92f580a10ab1548c4a3426f73e1a8cc8fece9b 100644 --- a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nÃ¥et.'; $wb['subject_txt'] = 'Emne'; $wb['from_txt'] = 'Fra'; $wb['to_txt'] = 'Til'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Indeholder'; $wb['is_txt'] = 'Er'; $wb['begins_with_txt'] = 'Begynder med'; diff --git a/interface/web/mailuser/lib/lang/el_mail_user_filter.lng b/interface/web/mailuser/lib/lang/el_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/el_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/el_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/en_mail_user_filter.lng b/interface/web/mailuser/lib/lang/en_mail_user_filter.lng index 23451b74dba6d02a5e79cd6029f6b430713e87b7..c26150ba1d183e8cea68c1aa9e3d0d3fc246664d 100644 --- a/interface/web/mailuser/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/en_mail_user_filter.lng @@ -12,6 +12,7 @@ $wb['mailbox_filter_txt'] = 'Mailbox filter'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/es.lng b/interface/web/mailuser/lib/lang/es.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/es_index.lng b/interface/web/mailuser/lib/lang/es_index.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/es_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/es_mail_user_autoresponder.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/es_mail_user_cc.lng b/interface/web/mailuser/lib/lang/es_mail_user_cc.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/es_mail_user_filter.lng b/interface/web/mailuser/lib/lang/es_mail_user_filter.lng old mode 100755 new mode 100644 index 426ad1ad010a293f586d320b43569d149f60bbdd..b8a19359f538c8da7ff662b0310b29eb3c95e96a --- a/interface/web/mailuser/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/es_mail_user_filter.lng @@ -17,5 +17,6 @@ $wb['subject_txt'] = 'Asunto'; $wb['target_error_regex'] = 'La carpeta solo debe contener estos caracteres: a-z, 0-9, -, ., _, y {espacio}'; $wb['target_txt'] = 'Carpeta'; $wb['to_txt'] = 'Para'; +$wb['list_id_txt'] = 'List ID'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; ?> diff --git a/interface/web/mailuser/lib/lang/es_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/es_mail_user_filter_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/es_mail_user_password.lng b/interface/web/mailuser/lib/lang/es_mail_user_password.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/es_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/es_mail_user_spamfilter.lng old mode 100755 new mode 100644 diff --git a/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng b/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng b/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/id_mail_user_filter.lng b/interface/web/mailuser/lib/lang/id_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/id_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/nl.lng b/interface/web/mailuser/lib/lang/nl.lng index 114dec9b9195adcaa18ca636b75e5d162569d6b1..6383a82864d6aa28122674ed58cabdb2008022a4 100644 --- a/interface/web/mailuser/lib/lang/nl.lng +++ b/interface/web/mailuser/lib/lang/nl.lng @@ -1,8 +1,8 @@ <?php $wb['Email Account'] = 'Email Account'; -$wb['Overview'] = 'Overview'; -$wb['Password'] = 'Password'; -$wb['Autoresponder'] = 'Autoresponder'; +$wb['Overview'] = 'Overzicht'; +$wb['Password'] = 'Wachtwoord'; +$wb['Autoresponder'] = 'Autobeantwoorden'; $wb['Send copy'] = 'Send copy'; $wb['Spamfilter'] = 'Spamfilter'; $wb['Email Filters'] = 'Email Filters'; diff --git a/interface/web/mailuser/lib/lang/nl_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/nl_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..7c8283c83897b52567ded53609ea88af7a1ae50d 100644 --- a/interface/web/mailuser/lib/lang/nl_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/nl_mail_user_autoresponder.lng @@ -1,13 +1,13 @@ <?php -$wb['mailbox_autoresponder_txt'] = 'Autoresponder'; -$wb['autoresponder_subject'] = 'Out of office reply'; -$wb['autoresponder_text_txt'] = 'Text'; -$wb['autoresponder_txt'] = 'Active'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['autoresponder_active'] = 'Enable the autoresponder'; -$wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['mailbox_autoresponder_txt'] = 'Autobeantwoorden'; +$wb['autoresponder_subject'] = 'Out of office antwoord'; +$wb['autoresponder_text_txt'] = 'Tekst'; +$wb['autoresponder_txt'] = 'Actief'; +$wb['autoresponder_start_date_txt'] = 'Start op'; +$wb['autoresponder_start_date_isfuture'] = 'Startdatum mag niet in het verleden liggen.'; +$wb['autoresponder_end_date_txt'] = 'Eindigt op'; +$wb['autoresponder_end_date_isgreater'] = 'Einddatum moet later zijn dan de startdatum.'; +$wb['autoresponder_active'] = 'Inschakelen autobeantwoorden'; +$wb['now_txt'] = 'Nu'; +$wb['autoresponder_subject_txt'] = 'E-mail onderwerp'; ?> diff --git a/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng b/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..0092c288a06a1845afa038f398c497dd2129e7b1 100644 --- a/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng @@ -1,21 +1,21 @@ <?php -$wb['rulename_txt'] = 'Name'; -$wb['action_txt'] = 'Action'; -$wb['target_txt'] = 'Folder'; -$wb['active_txt'] = 'Active'; -$wb['rulename_error_empty'] = 'Name is empty.'; -$wb['searchterm_is_empty'] = 'Search term is empty.'; -$wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; -$wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; -$wb['subject_txt'] = 'Subject'; -$wb['from_txt'] = 'From'; -$wb['to_txt'] = 'To'; -$wb['contains_txt'] = 'Contains'; -$wb['is_txt'] = 'Is'; -$wb['begins_with_txt'] = 'Begins with'; -$wb['ends_with_txt'] = 'Ends with'; -$wb['move_to_txt'] = 'Move to'; -$wb['delete_txt'] = 'Delete'; -$wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['rulename_txt'] = "Naam"; +$wb['action_txt'] = "Actie"; +$wb['target_txt'] = "Map"; +$wb['active_txt'] = "Actief"; +$wb['rulename_error_empty'] = "Naam is niet ingevuld."; +$wb['searchterm_is_empty'] = "Zoekterm is niet ingvuld."; +$wb['source_txt'] = "Bron"; +$wb['target_error_regex'] = 'Het doel mag alleen de volgende karakters bevatten: a-z, 0-9, -, ., _, en {spatie}'; +$wb['limit_mailfilter_txt'] = "Het max. aantal e-mail filters voor uw account is bereikt."; +$wb['subject_txt'] = "Onderwerp"; +$wb['from_txt'] = "Afzender"; +$wb['to_txt'] = "Bestemming"; +$wb['contains_txt'] = "Bevat"; +$wb['is_txt'] = "Is"; +$wb['begins_with_txt'] = "Begint met"; +$wb['ends_with_txt'] = "Endigt in"; +$wb['move_to_txt'] = "Verplaatsen naar"; +$wb['delete_txt'] = "Verwijderen"; +$wb['mailbox_filter_txt'] = "Mailbox filter"; ?> diff --git a/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng b/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng b/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng index f10dd4ddb24e7abead46488aa725e142b5f93dba..d834e4057a0688ee6c2302933a9edf07d1aa0d43 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Ðктивно'; $wb['rulename_error_empty'] = 'Ð˜Ð¼Ñ Ð¿ÑƒÑтое.'; $wb['searchterm_is_empty'] = 'Поле поиÑка пуÑтое.'; $wb['source_txt'] = 'ИÑточник'; -$wb['target_error_regex'] = 'Ðазначение может Ñодержать только Ñледующие Ñимволы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; +$wb['target_error_regex'] = 'Ðазначение может Ñодержать только Ñледующие Ñимволы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'МакÑимальное чиÑло почтовых фильтров доÑтигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng b/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng index 4069a153518d08a7ab855e15bad2a7c3707e0ebc..9ac4be357efcb3ce2912c717d9e6f341e9f2941e 100644 --- a/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/tr.lng b/interface/web/mailuser/lib/lang/tr.lng index fa5a7e12abbb492d7ab139dee668d2e3946595e4..c9d03bfff682f8253c666813b596934ae26ae496 100644 --- a/interface/web/mailuser/lib/lang/tr.lng +++ b/interface/web/mailuser/lib/lang/tr.lng @@ -4,6 +4,6 @@ $wb['Overview'] = 'Özet'; $wb['Password'] = 'Parola'; $wb['Autoresponder'] = 'Otomatik yanıtlayıcı'; $wb['Send copy'] = 'Kopya gönder'; -$wb['Spamfilter'] = 'Önemsiz posta süzgeci'; +$wb['Spamfilter'] = 'Önemsiz ileti süzgeci'; $wb['Email Filters'] = 'E-posta Süzgeçleri'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_index.lng b/interface/web/mailuser/lib/lang/tr_index.lng index 4c0c553b79f18638a1ac7ae0db64559cd0686f17..47e12d69822d6cb1da3e7a4a12495a6642a5aeec 100644 --- a/interface/web/mailuser/lib/lang/tr_index.lng +++ b/interface/web/mailuser/lib/lang/tr_index.lng @@ -1,11 +1,11 @@ <?php -$wb['page_head_txt'] = 'Posta Kutusu Ayarları'; +$wb['page_head_txt'] = 'E-posta Kutusu Ayarları'; $wb['page_desc_txt'] = 'E-posta hesabı ayarları buradan yapılabilir.'; $wb['email_txt'] = 'E-posta adresi'; $wb['login_txt'] = 'Kullanıcı Adı'; -$wb['server_address_txt'] = 'Posta sunucusu adresi'; -$wb['cc_txt'] = 'Kopya adresi (CC)'; -$wb['quota_txt'] = 'Posta kutusu boyutu'; +$wb['server_address_txt'] = 'E-posta Sunucusu Adresi'; +$wb['cc_txt'] = 'Kopya Adresi (CC)'; +$wb['quota_txt'] = 'E-posta Kutusu Boyutu'; $wb['unlimited_txt'] = 'Sınırsız'; $wb['mb_txt'] = 'MB'; $wb['none_txt'] = 'Yok'; diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng b/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng index ac4938d76851b1f7eeae112ca5a1215726de72f1..57db1979013af74c8877a86dda4283395f99ceee 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng @@ -7,7 +7,7 @@ $wb['rulename_error_empty'] = 'Ad boÅŸ olamaz.'; $wb['searchterm_is_empty'] = 'Arama ifadesi boÅŸ olamaz.'; $wb['source_txt'] = 'Kaynak'; $wb['target_error_regex'] = 'Hedef için yalnız ÅŸu karakterler kullanılabilir: a-z, 0-9, -, ., _, ve {boÅŸluk}'; -$wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla önemsiz posta süzgeci sayısı sınırına ulaÅŸtınız.'; +$wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla önemsiz ileti süzgeci sayısı sınırına ulaÅŸtınız.'; $wb['subject_txt'] = 'Konu'; $wb['from_txt'] = 'Kimden'; $wb['to_txt'] = 'Kime'; @@ -17,5 +17,5 @@ $wb['begins_with_txt'] = 'Åžununla baÅŸlayan'; $wb['ends_with_txt'] = 'Åžununla biten'; $wb['move_to_txt'] = 'Åžuraya taşı'; $wb['delete_txt'] = 'Sil'; -$wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['mailbox_filter_txt'] = 'E-posta kutusu süzgeci'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng index 36bfe6a25ce3015bacd7c73d18909d3015dfc34f..3a14043e9254adb5eeebfd7df1517e8a7237458e 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng @@ -4,5 +4,5 @@ $wb['rulename_txt'] = 'Ad'; $wb['add_new_record_txt'] = 'Süzgeç Ekle'; $wb['page_txt'] = 'Sayfa'; $wb['page_of_txt'] = '/'; -$wb['delete_confirmation'] = 'Posta süzgecini silmek istediÄŸinize emin misiniz?'; +$wb['delete_confirmation'] = 'E-posta süzgecini silmek istediÄŸinize emin misiniz?'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_password.lng b/interface/web/mailuser/lib/lang/tr_mail_user_password.lng index d06ad94bb059394423c3a6e18984dcfe8e01bbc6..c35319ced1b2c8ec926ce84aea5efef7c06b502d 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_password.lng @@ -1,11 +1,11 @@ <?php -$wb['mailbox_password_txt'] = 'Posta kutusu parolası'; +$wb['mailbox_password_txt'] = 'E-posta kutusu parolası'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['email_txt'] = 'E-posta'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['password_click_to_set_txt'] = 'Click to set'; +$wb['password_click_to_set_txt'] = 'Ayarlamak için tıklayın'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng index d63f274e4993a606bb11dce8ece53c1a2c5619bc..3426385a2effcb7bb7a449896f768a4e03b772b2 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng @@ -1,6 +1,6 @@ <?php -$wb['mailbox_spamfilter_txt'] = 'Önemsiz Posta Süzgeci'; -$wb['spamfilter_txt'] = 'Önemsiz posta süzgeci'; +$wb['mailbox_spamfilter_txt'] = 'Önemsiz İleti Süzgeci'; +$wb['spamfilter_txt'] = 'Önemsiz ileti süzgeci'; $wb['email_txt'] = 'E-posta'; $wb['no_policy'] = '- devre dışı -'; $wb['policy_txt'] = 'Kural'; diff --git a/interface/web/mailuser/mail_user_autoresponder_edit.php b/interface/web/mailuser/mail_user_autoresponder_edit.php index d93151bf24094f72829e2da89dcfb5321b6ee413..827a585e509edfb5fb261d810d4dd6501f290521 100644 --- a/interface/web/mailuser/mail_user_autoresponder_edit.php +++ b/interface/web/mailuser/mail_user_autoresponder_edit.php @@ -66,6 +66,12 @@ class page_action extends tform_actions { if (!isset($_POST['autoresponder']) && array_key_exists('autoresponder_start_date', $_POST)) { $this->dataRecord['autoresponder_start_date'] = array_map(create_function('$item', 'return 0;'), $this->dataRecord['autoresponder_start_date']); $this->dataRecord['autoresponder_end_date'] = array_map(create_function('$item', 'return 0;'), $this->dataRecord['autoresponder_end_date']); + + /* To be used when we go to PHP 7.x as min PHP version + $this->dataRecord['autoresponder_start_date'] = array_map( function ('$item') { 'return 0;' }, $this->dataRecord['autoresponder_start_date']); + $this->dataRecord['autoresponder_end_date'] = array_map( function ('$item') { 'return 0;' }, $this->dataRecord['autoresponder_end_date']); + */ + } parent::onSubmit(); diff --git a/interface/web/mailuser/templates/index.htm b/interface/web/mailuser/templates/index.htm index 8f870355622b3680149e263d6c8368cb75d07fab..5f065f9fa411c113018677d73167eda7b1279745 100644 --- a/interface/web/mailuser/templates/index.htm +++ b/interface/web/mailuser/templates/index.htm @@ -1,7 +1,6 @@ <div class='page-header'> <h1><tmpl_var name="page_head_txt"></h1> </div> -<p><tmpl_var name="page_desc_txt"></p> <div class="panel panel_mailuser"> @@ -33,4 +32,4 @@ </div> -</div> \ No newline at end of file +</div> diff --git a/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm b/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm index 98b28cebf8da1c80a59b07966403fadfe158a033..898f285e53d61b7dfcc9981fb03a2681550c046e 100644 --- a/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm +++ b/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm @@ -1,13 +1,7 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="autoresponder_subject" class="col-sm-3 control-label">{tmpl_var name='autoresponder_subject_txt'}</label> - <div class="col-sm-9"><input class="form-control" type="text" name="autoresponder_subject" id="autoresponder_subject" value="{tmpl_var name='autoresponder_subject'}" /></div></div> + <div class="col-sm-9"><input class="form-control" type="text" name="autoresponder_subject" id="autoresponder_subject" value="{tmpl_var name='autoresponder_subject'}" /></div> + </div> <div class="form-group"> <label for="autoresponder_text" class="col-sm-3 control-label">{tmpl_var name='autoresponder_text_txt'}</label> <div class="col-sm-9"><textarea class="form-control" name="autoresponder_text" id="autoresponder_text" rows='15' cols='30'>{tmpl_var name='autoresponder_text'}</textarea></div> @@ -30,4 +24,4 @@ <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_autoresponder_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mailuser/templates/mail_user_cc_edit.htm b/interface/web/mailuser/templates/mail_user_cc_edit.htm index 7c59fadf11a271286ab84a0b6c478762ce9b9536..914f74ae3fe304f71219c823401d3b2ddde44a49 100644 --- a/interface/web/mailuser/templates/mail_user_cc_edit.htm +++ b/interface/web/mailuser/templates/mail_user_cc_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label> <div class="col-sm-9"><div class="checkbox">{tmpl_var name='email'}</div></div> @@ -20,4 +13,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_cc_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mailuser/templates/mail_user_filter_edit.htm b/interface/web/mailuser/templates/mail_user_filter_edit.htm index b09874263b59a86e2b70602f5d92b8d7f240cf24..441ffba48407788db3e3567c2bfbaf39e8d66c69 100644 --- a/interface/web/mailuser/templates/mail_user_filter_edit.htm +++ b/interface/web/mailuser/templates/mail_user_filter_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="rulename" class="col-sm-3 control-label">{tmpl_var name='rulename_txt'}</label> <div class="col-sm-9"><input type="text" id="rulename" name="rulename" value="{tmpl_var name='rulename'}" class="form-control"></div></div> @@ -29,4 +22,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_filter_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/mail_user_filter_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mailuser/templates/mail_user_filter_list.htm b/interface/web/mailuser/templates/mail_user_filter_list.htm index 32d093844ed05e9ddd6787b7a4a9b82d5e914e45..b81793b63189926c8b1f3a25b1f2a06d9b96acce 100644 --- a/interface/web/mailuser/templates/mail_user_filter_list.htm +++ b/interface/web/mailuser/templates/mail_user_filter_list.htm @@ -30,7 +30,7 @@ <tr> <td><a href="#" data-load-content="mailuser/mail_user_filter_edit.php?id={tmpl_var name='id'}">{tmpl_var name="rulename"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mailuser/mail_user_filter_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mailuser/mail_user_filter_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/mailuser/templates/mail_user_password_edit.htm b/interface/web/mailuser/templates/mail_user_password_edit.htm index b487a1e9b2877c6f041b3a71776950c9ebb9c8ae..c7a28dc48e7c65e6100354224c3fcccb50a2677e 100644 --- a/interface/web/mailuser/templates/mail_user_password_edit.htm +++ b/interface/web/mailuser/templates/mail_user_password_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label> <div class="col-sm-9"> @@ -44,4 +37,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_password_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/mailuser/templates/mail_user_spamfilter_edit.htm b/interface/web/mailuser/templates/mail_user_spamfilter_edit.htm index 3528daead1c38c8edb096291551636e826658516..66758467697fa5df99c70998bf248883c4b76b16 100644 --- a/interface/web/mailuser/templates/mail_user_spamfilter_edit.htm +++ b/interface/web/mailuser/templates/mail_user_spamfilter_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label> <div class="col-sm-9"> @@ -24,4 +17,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_spamfilter_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/monitor/dataloghistory_view.php b/interface/web/monitor/dataloghistory_view.php index 2b5ea1e0323c4dbe135baaacaef6f26a7ed1ef54..b86334b0af38f8052914436228385fbd564ec348 100644 --- a/interface/web/monitor/dataloghistory_view.php +++ b/interface/web/monitor/dataloghistory_view.php @@ -50,9 +50,48 @@ $id = intval($_GET['id']); $record = $app->db->queryOneRecord('SELECT * FROM sys_datalog WHERE datalog_id = ?', $id); $out['id'] = $id; +$out['username'] = $record['user']; $out['timestamp'] = date($app->lng('conf_format_datetime'), $record['tstamp']); $out['table'] = $record['dbtable']; +list($key, $value) = explode(':', $record['dbidx']); +if (!empty($value)) { + if ($record['action'] == 'd') { + // No link for deleted content. + $out['table_id'] = $record['dbidx']; + } else { + switch ($out['table']) { + case 'mail_forwarding': + $file = 'mail/mail_forward_edit.php'; + break; + case 'mail_user': + $file = 'mail/mail_user_edit.php'; + break; + case 'mail_domain': + $file = 'mail/mail_domain_edit.php'; + break; + case 'web_domain': + $file = 'sites/web_vhost_domain_edit.php'; + break; + case 'web_database': + $file = 'sites/database_edit.php'; + break; + case 'web_database_user': + $file = 'sites/database_user_edit.php'; + break; + + // TODO Add a link per content type + default: + $file = ''; + } + + if (!empty($file)) { + $out['table_id'] = '<a href="#" data-load-content="' . $file . '?id=' . $value + . '" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="link">' + . $record['dbidx'] . '</a>'; + } + } +} $out['action_char'] = $record['action']; $out['action_name'] = $app->lng($record['action']); diff --git a/interface/web/monitor/lib/lang/ar.lng b/interface/web/monitor/lib/lang/ar.lng index e00287a8e75da8aade3675ae8ff9b6d0100092cb..6a63ea9ab572a4399fcbe56ad052be0fb1609b16 100644 --- a/interface/web/monitor/lib/lang/ar.lng +++ b/interface/web/monitor/lib/lang/ar.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/bg.lng b/interface/web/monitor/lib/lang/bg.lng index 0db4623d03fc374f1f6388ef5c4aac55c4912054..ec2896958159bc9059dcaf1f0196d06babe6b172 100644 --- a/interface/web/monitor/lib/lang/bg.lng +++ b/interface/web/monitor/lib/lang/bg.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_view.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/br.lng b/interface/web/monitor/lib/lang/br.lng index 048fec64be5cbfac4bbcd8175b298cc5bf792552..781dd1e7e1d565bcf9f204d432b48fce7aedbc7d 100644 --- a/interface/web/monitor/lib/lang/br.lng +++ b/interface/web/monitor/lib/lang/br.lng @@ -1,37 +1,39 @@ <?php -$wb['Server online since'] = 'Servidor online desde'; +$wb['Server online since'] = 'Servidor on-line desde'; $wb['Users online'] = 'Usuários on-line'; $wb['System load 1 minute'] = 'Carga do sistema - 1 min'; $wb['System load 5 minutes'] = 'Carga do sistema - 5 min'; $wb['System load 15 minutes'] = 'Carga do sistema - 15 min'; -$wb['Server Load'] = 'Carga do servidor'; -$wb['Disk usage'] = 'Uso do disco'; -$wb['Memory usage'] = 'Uso da memória'; -$wb['no_data_serverload_txt'] = 'Sem registros da carga do servidor disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_memusage_txt'] = 'Sem registro uso de memória disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_diskusage_txt'] = 'Sem registros sobre o uso dos discos disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_cpuinfo_txt'] = 'Sem registros sobre CPU disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_services_txt'] = 'Sem registro sobre os serviços disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_updates_txt'] = 'Sem atualização de dados disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_raid_txt'] = 'Sem registros sobre RAID disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_rkhunter_txt'] = 'Sem registros sobre o RKHUNTER disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_data_mailq_txt'] = 'Sem registro sobre a fila de e-mails disponÃveis no momento. Tente novamente mais tarde.'; -$wb['no_logdata_txt'] = 'Sem registros de log disponÃveis no momento. Tente novamente mais tarde.'; -$wb['Monitoring'] = 'Monitoramento'; +$wb['Server Load'] = 'Carga do Sistema'; +$wb['Disk usage'] = 'Uso do Disco'; +$wb['Memory usage'] = 'Uso da Memória'; +$wb['no_data_serverload_txt'] = 'Nenhum dado sobre o servidor disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_memusage_txt'] = 'Nenhum dado sobre uso da memória disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_diskusage_txt'] = 'Nenhum dado sobre o uso do disco disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_database_size_txt'] = 'Nenhum dado sobre o uso do banco de dados disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_cpuinfo_txt'] = 'Nenhum dado sobre a CPU disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_services_txt'] = 'Nenhum dado sobre os serviços disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_updates_txt'] = 'Nenhum dado sobre atualizações disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_raid_txt'] = 'Nenhum dados sobre o RAID disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_rkhunter_txt'] = 'Nenhum dado sobre o RKHunter disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_data_mailq_txt'] = 'Nenhum dados sobre as filas de e-mail disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['no_logdata_txt'] = 'Nenhum dado de log disponÃvel no momento. Por favor, verifique mais tarde.'; +$wb['Monitoring'] = 'Monitorando'; $wb['Server to Monitor'] = 'Servidor a monitorar'; -$wb['Logfiles'] = 'Arquivos de log'; -$wb['Status of services'] = 'Estado dos serviços'; -$wb['No Refresh'] = 'Não atualize'; +$wb['Logfiles'] = 'Log'; +$wb['Status of services'] = 'Estado dos Serviços'; +$wb['No Refresh'] = 'Não atualizar'; $wb['minutes'] = 'minutos'; -$wb['Show Overview'] = 'Visão geral'; -$wb['System State (All Servers)'] = 'Estado do Sistema (todos os servidores)'; -$wb['Hardware-Information'] = 'Informação de hardware'; +$wb['Show Overview'] = 'Exibir visão geral'; +$wb['System State (All Servers)'] = 'Estado do Sistema (Todos os servidores)'; +$wb['Hardware-Information'] = 'Informações do Hardware'; $wb['Show CPU info'] = 'Exibir informações da CPU'; $wb['Server State'] = 'Estado do Servidor'; $wb['Show Update State'] = 'Exibir estado atual'; $wb['Show RAID state'] = 'Exibir estado do RAID'; $wb['Show Server load'] = 'Exibir carga do servidor'; $wb['Show Disk usage'] = 'Exibir uso do disco'; +$wb['Show MySQL Database size'] = 'Exibir tamanho do banco de dados mysql'; $wb['Show Memory usage'] = 'Exibir uso da memória'; $wb['Show Services'] = 'Exibir serviços'; $wb['Show Mail-Queue'] = 'Exibir fila de e-mails'; @@ -42,123 +44,125 @@ $wb['Show System-Log'] = 'Exibir log do sistema'; $wb['Show ISPC Cron-Log'] = 'Exibir log do cron'; $wb['Show Freshclam-Log'] = 'Exibir log do freshclam'; $wb['Show Clamav-Log'] = 'Exibir log do clamav'; -$wb['Show ISPConfig-Log'] = 'Exibir log do ispconfig'; +$wb['Show ISPConfig-Log'] = 'Exibir log do ISPConfig'; $wb['Show RKHunter-Log'] = 'Exibir log do rkhunter'; -$wb['Show Jobqueue'] = 'Exibir fila de trabalho'; +$wb['Show Jobqueue'] = 'Exibir fila de tarefas'; +$wb['Show Data Log History'] = 'Exibir histórico do log'; +$wb['Show fail2ban-Log'] = 'Exibir log do fail2ban'; +$wb['Show MongoDB-Log'] = 'Exibir log do mongodb'; +$wb['Show IPTables'] = 'Exibir regras de firewall'; +$wb['Show OpenVz VE BeanCounter'] = 'Exibir beancounter do openvz'; $wb['monitor_general_serverstate_txt'] = 'Estado do servidor'; $wb['monitor_general_systemstate_txt'] = 'Estado do sistema'; -$wb['monitor_diskusage_filesystem_txt'] = 'Sistema de arquivos'; +$wb['monitor_diskusage_filesystem_txt'] = 'Arquivos do sistema'; $wb['monitor_diskusage_type_txt'] = 'Tipo'; $wb['monitor_diskusage_size_txt'] = 'Tamanho'; -$wb['monitor_diskusage_used_txt'] = 'Utilizado'; +$wb['monitor_diskusage_used_txt'] = 'Uso'; $wb['monitor_diskusage_available_txt'] = 'DisponÃvel'; -$wb['monitor_diskusage_usage_txt'] = 'Uso %'; +$wb['monitor_diskusage_usage_txt'] = 'Percentual Utilizado'; $wb['monitor_diskusage_mounted_txt'] = 'Montado em'; -$wb['monitor_logs_mail_txt'] = 'Log de e-mail'; -$wb['monitor_logs_mailwarn_txt'] = 'Alertas de e-mails'; -$wb['monitor_logs_mailerr_txt'] = 'Erros de e-mails'; -$wb['monitor_logs_messages_txt'] = 'Log do sistema'; -$wb['monitor_logs_ispccron_txt'] = 'Log do cron'; -$wb['monitor_logs_freshclam_txt'] = 'Logo do freshclam'; -$wb['monitor_logs_clamav_txt'] = 'Log do clamav '; -$wb['monitor_logs_ispc_txt'] = 'Log do ispconfig'; -$wb['monitor_norkhunter_txt'] = 'RKHunter não está instalado, então não existem logs a exibir'; +$wb['monitor_database_name_txt'] = 'Banco de dados'; +$wb['monitor_database_size_txt'] = 'Tamanho'; +$wb['monitor_database_client_txt'] = 'Cliente'; +$wb['monitor_database_domain_txt'] = 'DomÃnio'; +$wb['monitor_logs_mail_txt'] = 'Log - e-Mails'; +$wb['monitor_logs_mailwarn_txt'] = 'Log - Alertas de e-mail'; +$wb['monitor_logs_mailerr_txt'] = 'Log - Erros de e-mail'; +$wb['monitor_logs_messages_txt'] = 'Log - Mensagens do sistema'; +$wb['monitor_logs_ispccron_txt'] = 'Log - Tarefas no cron'; +$wb['monitor_logs_freshclam_txt'] = 'Log - freshclam'; +$wb['monitor_logs_clamav_txt'] = 'Log - clamav'; +$wb['monitor_logs_ispc_txt'] = 'Log - ISPConfig'; +$wb['monitor_nosupportedraid1_txt'] = 'No momento possuÃmos suporte para \'mdadm\'ou \'mpt-status\' para monitoramento do RAID.<br> Não encontramos nenhum dos dois neste servidor.<br><br> Isto significa que não podemos oferecer suporte ao seu RAID ainda.'; +$wb['monitor_norkhunter_txt'] = 'O RKHunter não está instalado, desta forma, não existe log'; $wb['monitor_serverstate_server_txt'] = 'Servidor'; $wb['monitor_serverstate_kernel_txt'] = 'Kernel'; $wb['monitor_serverstate_state_txt'] = 'Estado'; -$wb['monitor_serverstate_unknown_txt'] = 'desconhecido(s)'; -$wb['monitor_serverstate_info_txt'] = 'informação(es)'; -$wb['monitor_serverstate_warning_txt'] = 'aviso(s)'; -$wb['monitor_serverstate_critical_txt'] = 'crÃtico(s)'; -$wb['monitor_serverstate_error_txt'] = 'erro(s)'; +$wb['monitor_serverstate_unknown_txt'] = 'desconhecido'; +$wb['monitor_serverstate_info_txt'] = 'info'; +$wb['monitor_serverstate_warning_txt'] = 'alerta'; +$wb['monitor_serverstate_critical_txt'] = 'crÃtico'; +$wb['monitor_serverstate_error_txt'] = 'erro'; $wb['monitor_serverstate_moreinfo_txt'] = 'Mais informações...'; $wb['monitor_serverstate_more_txt'] = 'Mais...'; -$wb['monitor_serverstate_fclamok_txt'] = 'Definições de anti-vÃrus OK'; -$wb['monitor_serverstate_fclamoutdated_txt'] = 'Definições de anti-vÃrus DESATUALIZADAS!'; +$wb['monitor_serverstate_fclamok_txt'] = 'A proteção anti-vÃrus está ok'; +$wb['monitor_serverstate_fclamoutdated_txt'] = 'A proteção anti-vÃrus está desatualizada!'; $wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!'; -$wb['monitor_serverstate_hdok_txt'] = 'Disco OK'; -$wb['monitor_serverstate_hdgoingfull_txt'] = 'Disco cheio'; -$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Disco com pouco espaço'; -$wb['monitor_serverstate_hdveryfull_txt'] = 'Disco com espaço insuficiente'; -$wb['monitor_serverstate_hdfull_txt'] = 'Disco sem espaço'; -$wb['monitor_serverstate_hdunknown_txt'] = 'Disco rÃgido: ???'; +$wb['monitor_serverstate_hdok_txt'] = 'O uso do disco está ok'; +$wb['monitor_serverstate_hdgoingfull_txt'] = 'O uso do disco está moderado'; +$wb['monitor_serverstate_hdnearlyfull_txt'] = 'O uso do disco está próximo do limite'; +$wb['monitor_serverstate_hdveryfull_txt'] = 'O uso do disco está crÃtico'; +$wb['monitor_serverstate_hdfull_txt'] = 'Não existe mais espaço no disco para uso'; +$wb['monitor_serverstate_hdunknown_txt'] = 'Disco(HDD): ???'; $wb['monitor_serverstate_listok_txt'] = 'ok'; -$wb['monitor_serverstate_listinfo_txt'] = 'informação'; -$wb['monitor_serverstate_listwarning_txt'] = 'aviso'; +$wb['monitor_serverstate_listinfo_txt'] = 'info'; +$wb['monitor_serverstate_listwarning_txt'] = 'alerta'; $wb['monitor_serverstate_listcritical_txt'] = 'crÃtico'; $wb['monitor_serverstate_listerror_txt'] = 'erro'; $wb['monitor_serverstate_listunknown_txt'] = 'desconhecido'; -$wb['monitor_serverstate_loadok_txt'] = 'Carga do servidor OK'; -$wb['monitor_serverstate_loadheavy_txt'] = 'Carga do servidor: alta'; -$wb['monitor_serverstate_loadhigh_txt'] = 'Carga do servidor: média'; -$wb['monitor_serverstate_loaghigher_txt'] = 'Carga do servidor: excessiva'; -$wb['monitor_serverstate_loadhighest_txt'] = 'Carga do servidor: extrema'; -$wb['monitor_serverstate_loadunknown_txt'] = 'Carga do servidor: ???'; -$wb['monitor_serverstate_mailqok_txt'] = 'Fila de e-mails OK'; -$wb['monitor_serverstate_mailqheavy_txt'] = 'Fila de e-mails: alta'; -$wb['monitor_serverstate_mailqhigh_txt'] = 'Fila de e-mails: média'; -$wb['monitor_serverstate_mailqhigher_txt'] = 'Fila de e-mails: excessiva'; -$wb['monitor_serverstate_mailqhighest_txt'] = 'Fila de e-mails: extrema'; +$wb['monitor_serverstate_loadok_txt'] = 'A carga do servidor está ok'; +$wb['monitor_serverstate_loadheavy_txt'] = 'O servidor está sob carga média'; +$wb['monitor_serverstate_loadhigh_txt'] = 'O servidor está sob carga alta'; +$wb['monitor_serverstate_loaghigher_txt'] = 'O servidor está sob carga muito alta'; +$wb['monitor_serverstate_loadhighest_txt'] = 'O servidor está sob carga crÃtica'; +$wb['monitor_serverstate_loadunknown_txt'] = 'Carga do Servidor: ???'; +$wb['monitor_serverstate_mailqok_txt'] = 'A fila de e-mails está ok'; +$wb['monitor_serverstate_mailqheavy_txt'] = 'A fila de e-mails está moderada'; +$wb['monitor_serverstate_mailqhigh_txt'] = 'A fila de e-mails está grande'; +$wb['monitor_serverstate_mailqhigher_txt'] = 'A fila de está muito grande'; +$wb['monitor_serverstate_mailqhighest_txt'] = 'A fila de e-mails está crÃtica'; $wb['monitor_serverstate_mailqunknown_txt'] = 'Fila de e-mails: ???'; -$wb['monitor_serverstate_raidok_txt'] = 'RAID OK'; -$wb['monitor_serverstate_raidresync_txt'] = 'RAID em modo RESYNC'; -$wb['monitor_serverstate_raidfault_txt'] = 'RAID possui um disco com falhas. Troque-o o mais rápido possÃvel!'; -$wb['monitor_serverstate_raiderror_txt'] = 'RAID parado.'; -$wb['monitor_serverstate_raidunknown_txt'] = 'RAID: ???'; -$wb['monitor_serverstate_servicesonline_txt'] = 'Todos os serviços necessários estão on-line'; -$wb['monitor_serverstate_servicesoffline_txt'] = 'Um ou mais serviços necessários estão off-line'; +$wb['monitor_serverstate_raidok_txt'] = 'O RAID está ok'; +$wb['monitor_serverstate_raidresync_txt'] = 'O RAID está em modo RESYNC'; +$wb['monitor_serverstate_raidfault_txt'] = 'O RAID possui uma disco com falha. Substitua o mais rápido possÃvel!'; +$wb['monitor_serverstate_raiderror_txt'] = 'O RAID não está funcionando'; +$wb['monitor_serverstate_raidunknown_txt'] = 'Estado do RAID: ???'; +$wb['monitor_serverstate_servicesonline_txt'] = 'Todos os serviços estão on-line'; +$wb['monitor_serverstate_servicesoffline_txt'] = 'Um ou mais serviços estão off-line'; $wb['monitor_serverstate_servicesunknown_txt'] = 'Serviços: ???'; -$wb['monitor_serverstate_syslogok_txt'] = 'O log do sistema está OK'; -$wb['monitor_serverstate_syslogwarning_txt'] = 'Existem alguns alertas no log do sistema'; -$wb['monitor_serverstate_syslogerror_txt'] = 'Existem erros no log do sistema'; -$wb['monitor_serverstate_syslogunknown_txt'] = 'syslog:???'; -$wb['monitor_serverstate_updatesok_txt'] = 'Sistema atualizado.'; -$wb['monitor_serverstate_updatesneeded_txt'] = 'Um ou mais componentes necessitam de atualização'; -$wb['monitor_serverstate_updatesunknown_txt'] = 'Estado do sistema:???'; +$wb['monitor_serverstate_syslogok_txt'] = 'O log do sistema está ok.'; +$wb['monitor_serverstate_syslogwarning_txt'] = 'Existem algumas mensagens de alerta no log do sistema'; +$wb['monitor_serverstate_syslogerror_txt'] = 'Existem algumas mensagens de erros no log do sistema'; +$wb['monitor_serverstate_syslogunknown_txt'] = 'Log do sistema: ???'; +$wb['monitor_serverstate_updatesok_txt'] = 'O sistema está atualizado.'; +$wb['monitor_serverstate_updatesneeded_txt'] = 'Um ou mais componentes do sistema necessitam atualização'; +$wb['monitor_serverstate_updatesunknown_txt'] = 'Atualizar Sistema: ???'; +$wb['monitor_serverstate_beancounterok_txt'] = 'O beancounter está ok'; +$wb['monitor_serverstate_beancounterinfo_txt'] = 'Existe uma falha de visualização no beancounter'; +$wb['monitor_serverstate_beancounterwarning_txt'] = 'Existe alguma falha no beancounter'; +$wb['monitor_serverstate_beancountercritical_txt'] = 'Existem várias falhas no beancounter'; +$wb['monitor_serverstate_beancountererror_txt'] = 'Existem muitas falhas no beancounter'; $wb['monitor_services_online_txt'] = 'On-line'; $wb['monitor_services_offline_txt'] = 'Off-line'; -$wb['monitor_services_web_txt'] = 'Servidor de páginas:'; -$wb['monitor_services_ftp_txt'] = 'Servidor ftp:'; -$wb['monitor_services_smtp_txt'] = 'Servidor smtp:'; -$wb['monitor_services_pop_txt'] = 'Servidor pop:'; -$wb['monitor_services_imap_txt'] = 'Servidor imap:'; -$wb['monitor_services_mydns_txt'] = 'Servidor dns:'; -$wb['monitor_services_mysql_txt'] = 'Servidor mysql:'; -$wb['monitor_settings_datafromdate_txt'] = 'Data de: '; -$wb['monitor_settings_datetimeformat_txt'] = 'd/m/Y H:i'; -$wb['monitor_settings_refreshsq_txt'] = 'Atualizar sequência:'; +$wb['monitor_services_web_txt'] = 'Servidor WEB:'; +$wb['monitor_services_ftp_txt'] = 'Servidor FTP:'; +$wb['monitor_services_smtp_txt'] = 'Servidor SMTP:'; +$wb['monitor_services_pop_txt'] = 'Servidor POP3:'; +$wb['monitor_services_imap_txt'] = 'Servidor IMAP:'; +$wb['monitor_services_mydns_txt'] = 'Servidor DNS:'; +$wb['monitor_services_mongodb_txt'] = 'Servidor MONGODB:'; +$wb['monitor_services_mysql_txt'] = 'Servidor MYSQL:'; +$wb['monitor_settings_datafromdate_txt'] = 'Dados de: '; +$wb['monitor_settings_datetimeformat_txt'] = 'd-m-Y H:i'; +$wb['monitor_settings_refreshsq_txt'] = 'Sequência de atualização:'; $wb['monitor_settings_server_txt'] = 'Servidor'; -$wb['monitor_title_cpuinfo_txt'] = 'Informação da cpu'; -$wb['monitor_title_updatestate_txt'] = 'Atualizar estado'; +$wb['monitor_title_cpuinfo_txt'] = 'Informações de CPU'; +$wb['monitor_title_updatestate_txt'] = 'Atualizar Estado'; $wb['monitor_title_mailq_txt'] = 'Fila de e-mails'; $wb['monitor_title_raidstate_txt'] = 'Estado do RAID'; -$wb['monitor_title_rkhunterlog_txt'] = 'Log do RKHunter'; -$wb['monitor_updates_nosupport_txt'] = 'Sua distribuição não suporta este tipo de monitoramento'; +$wb['monitor_title_rkhunterlog_txt'] = 'Log do rkhunter'; $wb['monitor_title_fail2ban_txt'] = 'Log do fail2ban'; -$wb['monitor_nosupportedraid1_txt'] = 'Até o presente momento, o suporte a mdadm ou mpt-status para monitoramento do RAID não foi encontrado.<br><br>Provavelmente seu servidor não possui recursos de RAID a serem monitorados.'; -$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter OK'; -$wb['monitor_serverstate_beancounterinfo_txt'] = 'Existem poucas falhas no beancounter'; -$wb['monitor_serverstate_beancounterwarning_txt'] = 'Existem algumas falhas no beancounter'; -$wb['monitor_serverstate_beancountercritical_txt'] = 'Existem falhas crÃticas no beancounter'; -$wb['monitor_serverstate_beancountererror_txt'] = 'Existem diversas falhas no beancounter'; -$wb['monitor_title_beancounter_txt'] = 'Beancounter openvz ve'; -$wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um um contêiner openvz e não contém informações de beancounter.'; -$wb['monitor_title_iptables_txt'] = 'Regras do firewall'; -$wb['Show fail2ban-Log'] = 'Exibir log do fail2ban'; -$wb['Show IPTables'] = 'Exibir regras do firewall'; -$wb['Show OpenVz VE BeanCounter'] = 'Exibir beancounter do openvz'; +$wb['monitor_title_mongodb_txt'] = 'Log do mongodb'; +$wb['monitor_title_iptables_txt'] = 'Regras de Firewall'; +$wb['monitor_title_beancounter_txt'] = 'Beancounter openvz'; +$wb['monitor_updates_nosupport_txt'] = 'Sua distribuição não é suportada por este monitoramento'; +$wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um openvz e não possui nenhuma informação do beancounter'; $wb['Show Monit'] = 'Exibir Monit'; -$wb['no_monit_url_defined_txt'] = 'Nenhuma url do Monit configurada.'; +$wb['no_monit_url_defined_txt'] = 'Nenhuma URL do Monit definida.'; $wb['no_permissions_to_view_monit_txt'] = 'Você não tem permissão para acessar o Monit.'; $wb['Show Munin'] = 'Exibir Munin'; -$wb['no_munin_url_defined_txt'] = 'Nenhuma url do Muni configurada.'; +$wb['no_munin_url_defined_txt'] = 'Nenhuma URL do Munin definida.'; $wb['no_permissions_to_view_munin_txt'] = 'Você não tem permissão para acessar o Munin.'; -$wb['no_data_database_size_txt'] = 'Nenhuma informação de uso do banco de dados disponÃvel no momento. Por favor verifique novamente mais tarde.'; -$wb['monitor_database_name_txt'] = 'Banco de dados'; -$wb['monitor_database_size_txt'] = 'Tamanho'; -$wb['monitor_database_client_txt'] = 'Cliente'; -$wb['monitor_database_domain_txt'] = 'DomÃnio'; -$wb['Show MongoDB-Log'] = 'Exibir logs do MongoDB'; -$wb['monitor_services_mongodb_txt'] = 'Servidor MongoDB:'; -$wb['monitor_title_mongodb_txt'] = 'Logs do MongoDB'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/br_datalog_list.lng b/interface/web/monitor/lib/lang/br_datalog_list.lng index e6b2f554c339049812daa0504d398d61304295f6..8e044daeb7447a8125eed0c133743753d43e717a 100644 --- a/interface/web/monitor/lib/lang/br_datalog_list.lng +++ b/interface/web/monitor/lib/lang/br_datalog_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Fila de trabalho'; +$wb['list_head_txt'] = 'Fila de tarefas'; $wb['tstamp_txt'] = 'Data'; $wb['server_id_txt'] = 'Servidor'; $wb['dbtable_txt'] = 'Tabela do BD'; $wb['action_txt'] = 'Ação'; -$wb['status_txt'] = 'Situação'; +$wb['status_txt'] = 'Estado'; ?> diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_list.lng b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..0a02fda077e1ba5cbf716f4f841255307e7977f5 --- /dev/null +++ b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Histórico do log'; +$wb['tstamp_txt'] = 'Data'; +$wb['server_id_txt'] = 'Servidor'; +$wb['dbtable_txt'] = 'Tabela do BD'; +$wb['action_txt'] = 'Ação'; +$wb['status_txt'] = 'Estado'; +?> diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..be544e61194dd47b6ae3d356f816d167acbd5cd6 --- /dev/null +++ b/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Histórico do log'; +$wb['success_txt'] = 'O comando "Desfazer ação" foi realizado com sucesso'; +$wb['error_txt'] = 'Erro durante desfazer ação: O registro não existe mais'; +$wb['error_undelete_txt'] = 'Erro durante a remoção: Registro com ID primário ainda existe.'; +$wb['btn_cancel_txt'] = 'Voltar'; +?> diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_view.lng b/interface/web/monitor/lib/lang/br_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..83546932809cc54956ef4b19b03c562becb283fd --- /dev/null +++ b/interface/web/monitor/lib/lang/br_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Inserir'; +$wb['u'] = 'Atualizar'; +$wb['d'] = 'Remover'; +$wb['list_head_txt'] = 'Histórico do log'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Data/Hora'; +$wb['table_txt'] = 'Tabela'; +$wb['action_txt'] = 'Ação'; +$wb['session_id_txt'] = 'ID da sessão'; +$wb['fields_txt'] = 'Campos'; +$wb['fields_inserted_txt'] = 'Campos cadastrados'; +$wb['fields_updated_txt'] = 'Atualizar campos'; +$wb['fields_deleted_txt'] = 'Remover campos'; +$wb['no_changes_txt'] = 'Nenhuma alteração (sincronizar)'; +$wb['is_diff_txt'] = 'As diferenças são destacadas'; +$wb['is_diff_inserts_txt'] = 'Inserções'; +$wb['is_diff_deletes_txt'] = 'Remoções'; +$wb['field_txt'] = 'Campo'; +$wb['value_txt'] = 'Valor'; +$wb['old_txt'] = 'Antigo'; +$wb['new_txt'] = 'Novo'; +$wb['btn_cancel_txt'] = 'Voltar'; +$wb['undo_txt'] = 'Desfazer ação'; +$wb['undo_confirmation_txt'] = 'Você realmente deseja desfazer esta ação?'; +?> diff --git a/interface/web/monitor/lib/lang/br_syslog_list.lng b/interface/web/monitor/lib/lang/br_syslog_list.lng index 23f3c6d5daf43245f060b7de39004ede9e1895d4..ca5a3735644e78ef124a6b39011af8addf7f1fe4 100644 --- a/interface/web/monitor/lib/lang/br_syslog_list.lng +++ b/interface/web/monitor/lib/lang/br_syslog_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Log do Painel'; -$wb['tstamp_txt'] = 'Data'; +$wb['list_head_txt'] = 'Log do ISPConfig'; +$wb['tstamp_txt'] = 'Data/hora'; $wb['server_id_txt'] = 'Servidor'; -$wb['loglevel_txt'] = 'NÃvel do Log'; +$wb['loglevel_txt'] = 'NÃvel'; $wb['message_txt'] = 'Mensagem'; ?> diff --git a/interface/web/monitor/lib/lang/ca.lng b/interface/web/monitor/lib/lang/ca.lng index 4575be2ff1f54a8584363c49e8e1e869157d197c..ebceac346791643255b2e9b768bd74b5dcb53a4b 100644 --- a/interface/web/monitor/lib/lang/ca.lng +++ b/interface/web/monitor/lib/lang/ca.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng index dc3e3cb341781ce68ca9e5076e3cb4f43de27f22..604fbd5ceba54d48e0022f93d19c25bc10292c3a 100644 --- a/interface/web/monitor/lib/lang/cz.lng +++ b/interface/web/monitor/lib/lang/cz.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Klient'; $wb['monitor_database_domain_txt'] = 'Doména'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Zobrazit historii datového logu'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..ce89af1a880f3f29c4204d3b5ee25da6caeb27f9 --- /dev/null +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Protokol historie datového logu'; +$wb['tstamp_txt'] = 'Datum'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Tabulka'; +$wb['action_txt'] = 'Akce'; +$wb['status_txt'] = 'Stav'; +?> diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0d25364ec14b8c1a866ad65c0e17165fd7e6c768 --- /dev/null +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Záznam historie datového logu'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'ZpÄ›t'; +?> diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..1f20cf12d453d532ae95ba77615db60c0433dbc3 --- /dev/null +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Vložit'; +$wb['u'] = 'Aktualizace'; +$wb['d'] = 'Odstranit'; +$wb['list_head_txt'] = 'Záznam historie datového logu'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'ÄŒasové razÃtko'; +$wb['table_txt'] = 'Tabulka'; +$wb['action_txt'] = 'Akce'; +$wb['session_id_txt'] = 'ID Relace'; +$wb['fields_txt'] = 'Pole'; +$wb['fields_inserted_txt'] = 'Vložená pole'; +$wb['fields_updated_txt'] = 'Aktualizovaná pole'; +$wb['fields_deleted_txt'] = 'OdstranÄ›ná pole'; +$wb['no_changes_txt'] = 'Žádné zmÄ›ny (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'VloženÃ'; +$wb['is_diff_deletes_txt'] = 'OdstranÄ›nÃ'; +$wb['field_txt'] = 'Pole'; +$wb['value_txt'] = 'Hodnota'; +$wb['old_txt'] = 'Starý'; +$wb['new_txt'] = 'Nový'; +$wb['btn_cancel_txt'] = 'ZpÄ›t'; +$wb['undo_txt'] = 'Vrátit akci'; +$wb['undo_confirmation_txt'] = 'Opravdu chcete tuto akci vrátit zpÄ›t ?'; +?> diff --git a/interface/web/monitor/lib/lang/de.lng b/interface/web/monitor/lib/lang/de.lng index f8fabe7990633066917d01872f7ece90b2e72869..63cb5b9848b191074c7302c9e4fdca25ea09df0b 100644 --- a/interface/web/monitor/lib/lang/de.lng +++ b/interface/web/monitor/lib/lang/de.lng @@ -162,4 +162,6 @@ $wb['monitor_database_name_txt'] = 'Database'; $wb['monitor_database_size_txt'] = 'Size'; $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/dk.lng b/interface/web/monitor/lib/lang/dk.lng index dc43c1306fcbf486e6e2462142848ee8ff2e9049..0a7f8bc19e289bc3cd883b1fb0e52fb75287c49d 100644 --- a/interface/web/monitor/lib/lang/dk.lng +++ b/interface/web/monitor/lib/lang/dk.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_view.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/el.lng b/interface/web/monitor/lib/lang/el.lng index 414642e2e359fa1fe4c3b3ad416691d569e4169f..1d783f3da7edb9c02290bf6cfb76f6d925b65fc4 100644 --- a/interface/web/monitor/lib/lang/el.lng +++ b/interface/web/monitor/lib/lang/el.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_list.lng b/interface/web/monitor/lib/lang/el_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/el_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/el_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/el_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_view.lng b/interface/web/monitor/lib/lang/el_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/el_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/en.lng b/interface/web/monitor/lib/lang/en.lng index 194bbc5030fcfddd210f4ce9cf23f1e5039d367d..f507f54229b3685ef62dd100ec2cf3236457749d 100644 --- a/interface/web/monitor/lib/lang/en.lng +++ b/interface/web/monitor/lib/lang/en.lng @@ -162,4 +162,6 @@ $wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.' $wb['Show Munin'] = 'Show Munin'; $wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; $wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/en_dataloghistory_view.lng b/interface/web/monitor/lib/lang/en_dataloghistory_view.lng index df9ddd286f46e816e06132e7465929ab8dd87229..3d5d6829aeb76a374815c411b2d59fcb146ac0b3 100644 --- a/interface/web/monitor/lib/lang/en_dataloghistory_view.lng +++ b/interface/web/monitor/lib/lang/en_dataloghistory_view.lng @@ -23,4 +23,5 @@ $wb['new_txt'] = 'New'; $wb['btn_cancel_txt'] = 'Back'; $wb['undo_txt'] = 'Undo action'; $wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +$wb['username_txt'] = 'Username'; ?> diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng old mode 100755 new mode 100644 index 8cc87b4801809002201cb6f6e9b929a59edf86d9..56ce9a4222d73d78067090740ab275bf131a98be --- a/interface/web/monitor/lib/lang/es.lng +++ b/interface/web/monitor/lib/lang/es.lng @@ -161,4 +161,7 @@ $wb['System load 15 minutes'] = 'Carga del sistema hace 15 minutos'; $wb['System load 5 minutes'] = 'Carga del sistema hace 5 minutos'; $wb['System State (All Servers)'] = 'Estado de los sistemas'; $wb['Users online'] = 'Usuarios en lÃnea'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/es_datalog_list.lng b/interface/web/monitor/lib/lang/es_datalog_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_list.lng b/interface/web/monitor/lib/lang/es_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/es_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/es_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/es_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_view.lng b/interface/web/monitor/lib/lang/es_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/es_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/es_syslog_list.lng b/interface/web/monitor/lib/lang/es_syslog_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/monitor/lib/lang/fi.lng b/interface/web/monitor/lib/lang/fi.lng old mode 100755 new mode 100644 index 44143f3d207ced3c6086a8f6a90a65a1b1508b59..f825f6e20bc0d9768d3149e95bdabece11878505 --- a/interface/web/monitor/lib/lang/fi.lng +++ b/interface/web/monitor/lib/lang/fi.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/fi_datalog_list.lng b/interface/web/monitor/lib/lang/fi_datalog_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_view.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/fi_syslog_list.lng b/interface/web/monitor/lib/lang/fi_syslog_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/monitor/lib/lang/fr.lng b/interface/web/monitor/lib/lang/fr.lng index 9fb2ab5e8c41de82de381d5724b97bcd067c82c1..8bf754cb9b76572b8e51f70e7a028f84238328f3 100644 --- a/interface/web/monitor/lib/lang/fr.lng +++ b/interface/web/monitor/lib/lang/fr.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_view.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/hr.lng b/interface/web/monitor/lib/lang/hr.lng index d878568104d37fd8c9700d1c1d3f09325bca0db6..4c8037604a929d101deb3ccc232a168525f12773 100644 --- a/interface/web/monitor/lib/lang/hr.lng +++ b/interface/web/monitor/lib/lang/hr.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_view.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/hu.lng b/interface/web/monitor/lib/lang/hu.lng index 85fda979087b48f424ea1f3d828b90a3bebfb781..e9ac7009f07f70f35905faecf2d731b1fb9d9e70 100644 --- a/interface/web/monitor/lib/lang/hu.lng +++ b/interface/web/monitor/lib/lang/hu.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_view.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/id.lng b/interface/web/monitor/lib/lang/id.lng index d77f1456496bc650db3e2ff4c6ebaf554d574d53..8a1bba91d8a43895ee5dc1a55ce5054269434803 100644 --- a/interface/web/monitor/lib/lang/id.lng +++ b/interface/web/monitor/lib/lang/id.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_list.lng b/interface/web/monitor/lib/lang/id_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/id_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/id_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/id_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_view.lng b/interface/web/monitor/lib/lang/id_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/id_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/it.lng b/interface/web/monitor/lib/lang/it.lng index c7a6823683d4c32d2ce8f92e257317ccd0f9eb25..675f27494b8c5a343e01221e2e2f3a4db74cfd12 100644 --- a/interface/web/monitor/lib/lang/it.lng +++ b/interface/web/monitor/lib/lang/it.lng @@ -161,4 +161,7 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_list.lng b/interface/web/monitor/lib/lang/it_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/it_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/it_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/it_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_view.lng b/interface/web/monitor/lib/lang/it_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/it_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/ja.lng b/interface/web/monitor/lib/lang/ja.lng index bc2c7d2b5c2cf2fb5068934db32e3c428a1ac251..3ea8fb1dfd888fe37561f9360dc7002d678d5048 100644 --- a/interface/web/monitor/lib/lang/ja.lng +++ b/interface/web/monitor/lib/lang/ja.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/nl.lng b/interface/web/monitor/lib/lang/nl.lng index 81caa02b704a990f6b3c72c5b2a39577d5a05ad1..bef9eb80a26ad8fbf297d8792c64f02405724d05 100644 --- a/interface/web/monitor/lib/lang/nl.lng +++ b/interface/web/monitor/lib/lang/nl.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_view.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/pl.lng b/interface/web/monitor/lib/lang/pl.lng index 77d05e0569e66a0154103a505e72a84ab8296f4c..6900d31b9236c998eaeaf77a5c763052afc9cbd1 100644 --- a/interface/web/monitor/lib/lang/pl.lng +++ b/interface/web/monitor/lib/lang/pl.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_view.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/pt.lng b/interface/web/monitor/lib/lang/pt.lng index 2218ede892b5a89f327d54cc49f61bcc38791587..f48c41e9fea25e64c9ab6ea003216f784f0ad772 100644 --- a/interface/web/monitor/lib/lang/pt.lng +++ b/interface/web/monitor/lib/lang/pt.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_view.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/ro.lng b/interface/web/monitor/lib/lang/ro.lng index 7b06c4ba0c37b9b65d1c39b85d8230979babdac5..2a2423927fcc51495ffdccd70bfdbba8ad8a5b1d 100644 --- a/interface/web/monitor/lib/lang/ro.lng +++ b/interface/web/monitor/lib/lang/ro.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/ru.lng b/interface/web/monitor/lib/lang/ru.lng index 49e9d4604d6cd1bb8a8c525c6b41c537f2da6ed8..c256c2faafdd47c343f0eebac9dfd0fa0b9f71d7 100644 --- a/interface/web/monitor/lib/lang/ru.lng +++ b/interface/web/monitor/lib/lang/ru.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Домен'; $wb['Show MongoDB-Log'] = 'Показать журнал MongoDB'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Ñервер:'; $wb['monitor_title_mongodb_txt'] = 'Журнал MongoDB'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng index 732805d2a633d2c37ff15be6ef40ee2d424853b7..54b504c9bbd1eb837946dd630c5aa78972a886ed 100644 --- a/interface/web/monitor/lib/lang/se.lng +++ b/interface/web/monitor/lib/lang/se.lng @@ -161,4 +161,7 @@ $wb['no_permissions_to_view_munin_txt'] = 'Du har inte behörighet att visa Muni $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_list.lng b/interface/web/monitor/lib/lang/se_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/se_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/se_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/se_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_view.lng b/interface/web/monitor/lib/lang/se_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/se_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/sk.lng b/interface/web/monitor/lib/lang/sk.lng index 7697242386a4cd279ae2f0b5be354d6e1e5b421b..59af60685618eb45ce5ce5c390ef0f8ff2f1b8ae 100644 --- a/interface/web/monitor/lib/lang/sk.lng +++ b/interface/web/monitor/lib/lang/sk.lng @@ -161,4 +161,7 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_view.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/lib/lang/tr.lng b/interface/web/monitor/lib/lang/tr.lng index 00beedb1dc2d54f704d0cb848a0ddee746ce332d..836f38ce9715cb34cde5d22252736ef884484efc 100644 --- a/interface/web/monitor/lib/lang/tr.lng +++ b/interface/web/monitor/lib/lang/tr.lng @@ -1,21 +1,22 @@ <?php $wb['Server online since'] = 'Sunucu ÅŸu zamandan beri çevrimiçi'; $wb['Users online'] = 'Çevrimiçi Kullanıcılar'; -$wb['System load 1 minute'] = '1 dakikalık sistem yükü'; -$wb['System load 5 minutes'] = '5 dakikalık sistem yükü'; -$wb['System load 15 minutes'] = '15 dakikalık sistem yükü'; +$wb['System load 1 minute'] = 'Son 1 dakika sistem yükü'; +$wb['System load 5 minutes'] = 'Son 5 dakika sistem yükü'; +$wb['System load 15 minutes'] = 'Son 15 dakika sistem yükü'; $wb['Server Load'] = 'Sunucu Yükü'; $wb['Disk usage'] = 'Disk Kullanımı'; $wb['Memory usage'] = 'Bellek Kullanımı'; $wb['no_data_serverload_txt'] = 'Henüz sunucu yükü hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_data_memusage_txt'] = 'Henüz bellek kullanımı hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_data_diskusage_txt'] = 'Henüz disk kullanımı hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; +$wb['no_data_database_size_txt'] = 'Henüz veritabanı kullanımı ile ilgili bir veri yok. Lütfen daha sonra yeniden deneyin.'; $wb['no_data_cpuinfo_txt'] = 'Henüz iÅŸlemci hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_data_services_txt'] = 'Henüz hizmetler hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_data_updates_txt'] = 'Henüz güncellemeler hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_data_raid_txt'] = 'Henüz RAID hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_data_rkhunter_txt'] = 'Henüz RKHunter hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; -$wb['no_data_mailq_txt'] = 'Henüz posta kuyruÄŸu hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; +$wb['no_data_mailq_txt'] = 'Henüz e-posta kuyruÄŸu hakkında bir veri yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['no_logdata_txt'] = 'Henüz bir günlük verisi yok. Lütfen bir süre sonra yeniden deneyin.'; $wb['Monitoring'] = 'İzleme'; $wb['Server to Monitor'] = 'İzlenecek Sunucu'; @@ -34,10 +35,10 @@ $wb['Show Server load'] = 'Sistem Yükü'; $wb['Show Disk usage'] = 'Disk Kullanımı'; $wb['Show Memory usage'] = 'Bellek Kullanımı'; $wb['Show Services'] = 'Hizmetler'; -$wb['Show Mail-Queue'] = 'Posta KuyruÄŸu'; -$wb['Show Mail-Log'] = 'Posta Günlüğü'; -$wb['Show Mail warn-Log'] = 'Posta Uyarı Günlüğü'; -$wb['Show Mail err-Log'] = 'Posta Hata Günlüğü'; +$wb['Show Mail-Queue'] = 'E-posta KuyruÄŸu'; +$wb['Show Mail-Log'] = 'E-posta Günlüğü'; +$wb['Show Mail warn-Log'] = 'E-posta Uyarı Günlüğü'; +$wb['Show Mail err-Log'] = 'E-posta Hata Günlüğü'; $wb['Show System-Log'] = 'Sistem Günlüğü'; $wb['Show ISPC Cron-Log'] = 'Zamanlı Görev Günlüğü'; $wb['Show Freshclam-Log'] = 'Freshclam Günlüğü'; @@ -46,27 +47,32 @@ $wb['Show ISPConfig-Log'] = 'ISPConfig Günlüğü'; $wb['Show RKHunter-Log'] = 'RKHunter Günlüğü'; $wb['Show Jobqueue'] = 'İş KuyruÄŸu'; $wb['Show fail2ban-Log'] = 'Fail2ban Günlüğü'; -$wb['Show IPTables'] = 'IPTabloları'; +$wb['Show MongoDB-Log'] = 'MongoDB Günlüğünü Görüntüle'; +$wb['Show IPTables'] = 'IPTables Günlüğü'; $wb['Show OpenVz VE BeanCounter'] = 'OpenVz VE BeanCounter'; $wb['monitor_general_serverstate_txt'] = 'Sunucu Durumu'; $wb['monitor_general_systemstate_txt'] = 'Sistem Durumu'; $wb['monitor_diskusage_filesystem_txt'] = 'Dosya Sistemi'; -$wb['monitor_diskusage_type_txt'] = 'Tip'; +$wb['monitor_diskusage_type_txt'] = 'Tür'; $wb['monitor_diskusage_size_txt'] = 'Boyut'; $wb['monitor_diskusage_used_txt'] = 'Kullanılan'; $wb['monitor_diskusage_available_txt'] = 'Kullanılabilir'; $wb['monitor_diskusage_usage_txt'] = 'Kullanım%'; $wb['monitor_diskusage_mounted_txt'] = 'BaÄŸlantı'; -$wb['monitor_logs_mail_txt'] = 'Posta Günlüğü'; -$wb['monitor_logs_mailwarn_txt'] = 'Posta Uyarı Günlüğü'; -$wb['monitor_logs_mailerr_txt'] = 'Posta Hata Günlüğü'; +$wb['monitor_database_name_txt'] = 'Veritabanı'; +$wb['monitor_database_size_txt'] = 'Boyut'; +$wb['monitor_database_client_txt'] = 'İstemci'; +$wb['monitor_database_domain_txt'] = 'Etki Alanı'; +$wb['monitor_logs_mail_txt'] = 'E-posta Günlüğü'; +$wb['monitor_logs_mailwarn_txt'] = 'E-posta Uyarı Günlüğü'; +$wb['monitor_logs_mailerr_txt'] = 'E-posta Hata Günlüğü'; $wb['monitor_logs_messages_txt'] = 'Sistem İletileri Günlüğü'; $wb['monitor_logs_ispccron_txt'] = 'ISPConfig Zamanlı Görev Günlüğü'; $wb['monitor_logs_freshclam_txt'] = 'Freshclam GÜnlüğü'; $wb['monitor_logs_clamav_txt'] = 'Clamav Günlüğü'; $wb['monitor_logs_ispc_txt'] = 'ISPConfig Günlüğü'; -$wb['monitor_nosupportedraid1_txt'] = 'Åžimdilik RAID durumunu izlemek için mdadm ya da mpt-status destekleniyor.<br>Bunlardan biri sunucunuzda bulunamadı.<br><br>Bu nedenle RAID sürücünüz henüz desteklenemiyor.'; -$wb['monitor_norkhunter_txt'] = 'RKHunter yüklü olmadığından herhangi bir günlük verisi yok'; +$wb['monitor_nosupportedraid1_txt'] = 'Åžimdilik RAID durumunu izlemek için ya da destekleniyor.<br>Bunlardan biri sunucunuzda bulunamadı.<br><br>Bu nedenle RAID sürücünüz henüz desteklenemiyor.'; +$wb['monitor_norkhunter_txt'] = 'RKHunter kurulu olmadığından herhangi bir günlük verisi yok'; $wb['monitor_serverstate_server_txt'] = 'Sunucu'; $wb['monitor_serverstate_kernel_txt'] = 'Kernel'; $wb['monitor_serverstate_state_txt'] = 'Durum'; @@ -75,7 +81,7 @@ $wb['monitor_serverstate_info_txt'] = 'bilgi'; $wb['monitor_serverstate_warning_txt'] = 'uyarı'; $wb['monitor_serverstate_critical_txt'] = 'kritik'; $wb['monitor_serverstate_error_txt'] = 'hata'; -$wb['monitor_serverstate_moreinfo_txt'] = 'Ayrıntılı bilgi...'; +$wb['monitor_serverstate_moreinfo_txt'] = 'Ayrıntılı bilgiler...'; $wb['monitor_serverstate_more_txt'] = 'Ayrıntılar...'; $wb['monitor_serverstate_fclamok_txt'] = 'Virüs koruması sorunsuz'; $wb['monitor_serverstate_fclamoutdated_txt'] = 'Virüs koruması GÜNCEL DEĞİL!'; @@ -93,17 +99,17 @@ $wb['monitor_serverstate_listcritical_txt'] = 'kritik'; $wb['monitor_serverstate_listerror_txt'] = 'hata'; $wb['monitor_serverstate_listunknown_txt'] = 'bilinmiyor'; $wb['monitor_serverstate_loadok_txt'] = 'Sunucu yükü: Sorunsuz'; -$wb['monitor_serverstate_loadheavy_txt'] = 'Sunucu yükü: Ağır'; +$wb['monitor_serverstate_loadheavy_txt'] = 'Sunucu yükü: Fazla'; $wb['monitor_serverstate_loadhigh_txt'] = 'Sunucu yükü: Yüksek'; $wb['monitor_serverstate_loaghigher_txt'] = 'Sunucu yükü: Çok yüksek'; $wb['monitor_serverstate_loadhighest_txt'] = 'Sunucu yükü: En yüksek'; $wb['monitor_serverstate_loadunknown_txt'] = 'Sunucu yükü: ???'; -$wb['monitor_serverstate_mailqok_txt'] = 'Posta kuyruÄŸu yükü: Sorunsuz'; -$wb['monitor_serverstate_mailqheavy_txt'] = 'Posta kuyruÄŸu yükü: Ağır'; -$wb['monitor_serverstate_mailqhigh_txt'] = 'Posta kuyruÄŸu yükü: Yüksek'; -$wb['monitor_serverstate_mailqhigher_txt'] = 'Posta kuyruÄŸu yükü: Çok yüksek'; -$wb['monitor_serverstate_mailqhighest_txt'] = 'Posta kuyruÄŸu yükü: En yüksek'; -$wb['monitor_serverstate_mailqunknown_txt'] = 'Posta kuyruÄŸu yükü: ???'; +$wb['monitor_serverstate_mailqok_txt'] = 'E-posta kuyruÄŸu yükü: Sorunsuz'; +$wb['monitor_serverstate_mailqheavy_txt'] = 'E-posta kuyruÄŸu yükü: Fazla'; +$wb['monitor_serverstate_mailqhigh_txt'] = 'E-posta kuyruÄŸu yükü: Yüksek'; +$wb['monitor_serverstate_mailqhigher_txt'] = 'E-posta kuyruÄŸu yükü: Çok yüksek'; +$wb['monitor_serverstate_mailqhighest_txt'] = 'E-posta kuyruÄŸu yükü: En yüksek'; +$wb['monitor_serverstate_mailqunknown_txt'] = 'E-posta kuyruÄŸu yükü: ???'; $wb['monitor_serverstate_raidok_txt'] = 'RAID sorunsuz'; $wb['monitor_serverstate_raidresync_txt'] = 'RAID, RESYNC kipinde'; $wb['monitor_serverstate_raidfault_txt'] = 'RAID dizisinde hatalı bir disk var. Bu diski en kısa sürede deÄŸiÅŸtirmelisiniz!'; @@ -118,6 +124,7 @@ $wb['monitor_serverstate_syslogerror_txt'] = 'Sistem günlüğünde hatalar var' $wb['monitor_serverstate_syslogunknown_txt'] = 'Sistem Günlüğü: ???'; $wb['monitor_serverstate_updatesok_txt'] = 'Sistem güncel'; $wb['monitor_serverstate_updatesneeded_txt'] = 'Bir ya da daha fazla bileÅŸenin güncellenmesi gerekiyor'; +$wb['monitor_serverstate_updatesunknown_txt'] = 'Sistem Güncelleme: ???'; $wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter sorunsuz'; $wb['monitor_serverstate_beancounterinfo_txt'] = 'Beancounter kayıtlarında az sayıda hata var'; $wb['monitor_serverstate_beancounterwarning_txt'] = 'Beancounter kayıtlarında ortalama sayıda hata var'; @@ -130,7 +137,8 @@ $wb['monitor_services_ftp_txt'] = 'FTP Sunucu:'; $wb['monitor_services_smtp_txt'] = 'SMTP Sunucu:'; $wb['monitor_services_pop_txt'] = 'POP3 Sunucu:'; $wb['monitor_services_imap_txt'] = 'IMAP Sunucu:'; -$wb['monitor_services_mydns_txt'] = 'myDNS Sunucu:'; +$wb['monitor_services_mydns_txt'] = 'DNS Sunucu:'; +$wb['monitor_services_mongodb_txt'] = 'MongoDB Sunucusu:'; $wb['monitor_services_mysql_txt'] = 'mySQL Sunucu:'; $wb['monitor_settings_datafromdate_txt'] = 'Veri tarihi: '; $wb['monitor_settings_datetimeformat_txt'] = 'Y-m-d H:i'; @@ -138,10 +146,11 @@ $wb['monitor_settings_refreshsq_txt'] = 'Yenileme Sıklığı:'; $wb['monitor_settings_server_txt'] = 'Sunucu'; $wb['monitor_title_cpuinfo_txt'] = 'İşlemci Bilgileri'; $wb['monitor_title_updatestate_txt'] = 'Güncellik Durumu'; -$wb['monitor_title_mailq_txt'] = 'Posta KuyruÄŸu'; +$wb['monitor_title_mailq_txt'] = 'E-posta KuyruÄŸu'; $wb['monitor_title_raidstate_txt'] = 'RAID Durumu'; $wb['monitor_title_rkhunterlog_txt'] = 'RKHunter Günlüğü'; $wb['monitor_title_fail2ban_txt'] = 'Fail2Ban Günlüğü'; +$wb['monitor_title_mongodb_txt'] = 'MongoDB Günlüğü'; $wb['monitor_title_iptables_txt'] = 'IPTables Kuralları'; $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter'; $wb['monitor_updates_nosupport_txt'] = 'Dağıtımınız, bu izlemeyi desteklemiyor'; @@ -152,13 +161,6 @@ $wb['no_permissions_to_view_monit_txt'] = 'Monit eriÅŸimi izniniz yok.'; $wb['Show Munin'] = 'Munin Durumu'; $wb['no_munin_url_defined_txt'] = 'Munin adresi belirtilmemiÅŸ.'; $wb['no_permissions_to_view_munin_txt'] = 'Munin eriÅŸimi izniniz yok.'; -$wb['no_data_database_size_txt'] = 'No data about the database usage available at the moment. Please check again later.'; -$wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; -$wb['monitor_database_name_txt'] = 'Database'; -$wb['monitor_database_size_txt'] = 'Size'; -$wb['monitor_database_client_txt'] = 'Client'; -$wb['monitor_database_domain_txt'] = 'Domain'; -$wb['monitor_serverstate_updatesunknown_txt'] = 'System Update: ???'; -$wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; -$wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..f1ba8c67b8eed44c916f66d91ec4bd7a1af49872 --- /dev/null +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Datalog History'; +$wb['tstamp_txt'] = 'Date'; +$wb['server_id_txt'] = 'Server'; +$wb['dbtable_txt'] = 'DB Table'; +$wb['action_txt'] = 'Action'; +$wb['status_txt'] = 'Status'; +?> diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng new file mode 100644 index 0000000000000000000000000000000000000000..0e040a3e77d48b89a779f7c7d3fb4198df0fe02e --- /dev/null +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['success_txt'] = 'Undo successful'; +$wb['error_txt'] = 'Error during undo: Record does not exist anymore'; +$wb['error_undelete_txt'] = 'Error during undelete: Record with primary id already existing.'; +$wb['btn_cancel_txt'] = 'Back'; +?> diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_view.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_view.lng new file mode 100644 index 0000000000000000000000000000000000000000..df9ddd286f46e816e06132e7465929ab8dd87229 --- /dev/null +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_view.lng @@ -0,0 +1,26 @@ +<?php +$wb['i'] = 'Insert'; +$wb['u'] = 'Update'; +$wb['d'] = 'Delete'; +$wb['list_head_txt'] = 'Data Log History Entry'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = 'Timestamp'; +$wb['table_txt'] = 'Table'; +$wb['action_txt'] = 'Action'; +$wb['session_id_txt'] = 'Session ID'; +$wb['fields_txt'] = 'Fields'; +$wb['fields_inserted_txt'] = 'Inserted Fields'; +$wb['fields_updated_txt'] = 'Updated Fields'; +$wb['fields_deleted_txt'] = 'Deleted Fields'; +$wb['no_changes_txt'] = 'No changes (re-sync)'; +$wb['is_diff_txt'] = 'The differences are highlighted'; +$wb['is_diff_inserts_txt'] = 'Insertions'; +$wb['is_diff_deletes_txt'] = 'Deletions'; +$wb['field_txt'] = 'Field'; +$wb['value_txt'] = 'Value'; +$wb['old_txt'] = 'Old'; +$wb['new_txt'] = 'New'; +$wb['btn_cancel_txt'] = 'Back'; +$wb['undo_txt'] = 'Undo action'; +$wb['undo_confirmation_txt'] = 'Do you really want to undo this action?'; +?> diff --git a/interface/web/monitor/templates/datalog_list.htm b/interface/web/monitor/templates/datalog_list.htm index eb79f46b54457796fe58945e34db80c07835c980..53ca89997f039b1e01205d8a793013bbc289d937 100644 --- a/interface/web/monitor/templates/datalog_list.htm +++ b/interface/web/monitor/templates/datalog_list.htm @@ -33,7 +33,7 @@ <td>{tmpl_var name="action"}</td> <td>{tmpl_var name="dbtable"}</td> <td class="text-right"> - <!--<a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('monitor/datalog_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> --> + <!--<a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('monitor/datalog_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> --> </td> </tr> </tmpl_loop> diff --git a/interface/web/monitor/templates/dataloghistory_view.htm b/interface/web/monitor/templates/dataloghistory_view.htm index 4ba82bbf052a8aa7375d780a7b1c440c7cd2a8e0..9741d70be822c0afcf07fe7ec77471c2b5da5b51 100644 --- a/interface/web/monitor/templates/dataloghistory_view.htm +++ b/interface/web/monitor/templates/dataloghistory_view.htm @@ -12,13 +12,17 @@ </tr> </thead> <tbody> + <tr> + <td><tmpl_var name="username_txt"></td> + <td><tmpl_var name="username"></td> + </tr> <tr> <td><tmpl_var name="timestamp_txt"></td> <td><tmpl_var name="timestamp"></td> </tr> <tr> <td><tmpl_var name="table_txt"></td> - <td><tmpl_var name="table"></td> + <td><tmpl_var name="table"><tmpl_if name='table_id'> (<tmpl_var name="table_id">)</tmpl_if></td> </tr> <tr> <td><tmpl_var name="action_txt"></td> diff --git a/interface/web/monitor/templates/syslog_list.htm b/interface/web/monitor/templates/syslog_list.htm index 8f62422a847717cafec01fa7e11195bde73835ee..7196e3ab02bbeb413c994b2eaaeafdb54e8bf72e 100644 --- a/interface/web/monitor/templates/syslog_list.htm +++ b/interface/web/monitor/templates/syslog_list.htm @@ -34,10 +34,10 @@ <td>{tmpl_var name="message"}</td> <td class="text-right"> <tmpl_if name="loglevel" op="==" value="Error"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('monitor/log_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </tmpl_if> <tmpl_if name="loglevel" op="==" value="Warning"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('monitor/log_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </tmpl_if> </td> </tr> diff --git a/interface/web/remote/index.php b/interface/web/remote/index.php index 670a9db13b41b62daf99ab425174ac2d9cd03a7f..6352dfe5042745bf24e2670753f7ea03107c160f 100644 --- a/interface/web/remote/index.php +++ b/interface/web/remote/index.php @@ -8,7 +8,7 @@ require_once '../../lib/app.inc.php'; if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); -$app->load('soap_handler,getconf'); +$app->load('remoting_handler_base,soap_handler,getconf'); $security_config = $app->getconf->get_security_config('permissions'); if($security_config['remote_api_allowed'] != 'yes') die('Remote API is disabled in security settings.'); diff --git a/interface/web/remote/json.php b/interface/web/remote/json.php index 926a9953958afdd2ed8686c3112dce18f2be5351..d6eb8dcbc161888d09d41b9d7dae975ac73e5047 100644 --- a/interface/web/remote/json.php +++ b/interface/web/remote/json.php @@ -8,7 +8,7 @@ require_once '../../lib/app.inc.php'; if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); -$app->load('json_handler,getconf'); +$app->load('remoting_handler_base,json_handler,getconf'); $security_config = $app->getconf->get_security_config('permissions'); if($security_config['remote_api_allowed'] != 'yes') die('Remote API is disabled in security settings.'); diff --git a/interface/web/remote/monitor.php b/interface/web/remote/monitor.php index 132bcf29a5bc01a297eaf488565cd4db340fd810..914a09382ea4fa65d1442912d8fb42436e67ef09 100644 --- a/interface/web/remote/monitor.php +++ b/interface/web/remote/monitor.php @@ -59,73 +59,6 @@ if($token == '' or $secret == '' or $token != $secret) { } } $out['type'] = $type; - -function __json_encode($data) { - if( is_array($data) || is_object($data) ) { - $islist = is_array($data) && ( empty($data) || array_keys($data) === range(0, count($data)-1) ); - - if( $islist ) { - $json = '[' . implode(',', array_map('__json_encode', $data) ) . ']'; - } else { - $items = array(); - foreach( $data as $key => $value ) { - $items[] = __json_encode("$key") . ':' . __json_encode($value); - } - $json = '{' . implode(',', $items) . '}'; - } - } elseif( is_string($data) ) { - // Escape non-printable or Non-ASCII characters. - // I also put the \\ character first, as suggested in comments on the 'addcslashes' page. - $string = '"' . addcslashes($data, "\\\"\n\r\t/" . chr(8) . chr(12)) . '"'; - $json = ''; - $len = strlen($string); - // Convert UTF-8 to Hexadecimal Codepoints. - for( $i = 0; $i < $len; $i++ ) { - - $char = $string[$i]; - $c1 = ord($char); - - // Single byte; - if( $c1 <128 ) { - $json .= ($c1 > 31) ? $char : sprintf("\\u%04x", $c1); - continue; - } - - // Double byte - $c2 = ord($string[++$i]); - if ( ($c1 & 32) === 0 ) { - $json .= sprintf("\\u%04x", ($c1 - 192) * 64 + $c2 - 128); - continue; - } - - // Triple - $c3 = ord($string[++$i]); - if( ($c1 & 16) === 0 ) { - $json .= sprintf("\\u%04x", (($c1 - 224) <<12) + (($c2 - 128) << 6) + ($c3 - 128)); - continue; - } - - // Quadruple - $c4 = ord($string[++$i]); - if( ($c1 & 8 ) === 0 ) { - $u = (($c1 & 15) << 2) + (($c2>>4) & 3) - 1; - - $w1 = (54<<10) + ($u<<6) + (($c2 & 15) << 2) + (($c3>>4) & 3); - $w2 = (55<<10) + (($c3 & 15)<<6) + ($c4-128); - $json .= sprintf("\\u%04x\\u%04x", $w1, $w2); - } - } - } else { - // int, floats, bools, null - $json = strtolower(var_export( $data, true )); - } - return $json; -} - -if(function_exists('json_encode')) { // PHP >= 5.2 - echo json_encode($out); -} else { // PHP < 5.2 - echo __json_encode($out); -} +echo json_encode($out); exit; ?> diff --git a/interface/web/remote/rest.php b/interface/web/remote/rest.php index d57915004520e9895d4fafe1b463a3ffc47b1d21..381fd426559548329b8e5e67e01c40410e1b14f0 100644 --- a/interface/web/remote/rest.php +++ b/interface/web/remote/rest.php @@ -6,7 +6,11 @@ require_once '../../lib/config.inc.php'; $conf['start_session'] = false; require_once '../../lib/app.inc.php'; -$app->load('rest_handler'); +$app->load('remoting_handler_base,rest_handler,getconf'); + +$security_config = $app->getconf->get_security_config('permissions'); +if($security_config['remote_api_allowed'] != 'yes') die('Remote API is disabled in security settings.'); + $rest_handler = new ISPConfigRESTHandler(); $rest_handler->run(); diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php index 494f274f1033fa3a0b4d59c2099697497b68343f..8ca9cae31d620bd22bf205d1c045d99a58647aea 100644 --- a/interface/web/sites/ajax_get_json.php +++ b/interface/web/sites/ajax_get_json.php @@ -63,7 +63,7 @@ if($type == 'getserverid'){ $json .= '"}'; } -if($type == 'getphpfastcgi'){ +if($type == 'getserverphp'){ $json = '{'; $server_type = 'apache'; @@ -97,20 +97,22 @@ if($type == 'getphpfastcgi'){ } elseif($php_type == 'fast-cgi'){ $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ? AND active = 'y'".$sql_where, $server_id); } - $php_records[]=array('name' => $app->functions->htmlentities($web_config['php_default_name'])); + if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { + $php_records[]=array('name' => $app->functions->htmlentities($web_config['php_default_name'])); + } uasort($php_records, 'sort_php'); $php_select = ""; if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { if($php_type == 'php-fpm' || ($php_type == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + $php_version = $php_record['server_php_id']; } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + $php_version = $php_record['server_php_id']; } if($php_record['name'] != $web_config['php_default_name']) { $json .= '"'.$php_version.'": "'.$php_record['name'].'",'; } else { - $json .= '"": "'.$php_record['name'].'",'; + $json .= '"0": "'.$php_record['name'].'",'; } } } diff --git a/interface/web/sites/aps_do_operation.php b/interface/web/sites/aps_do_operation.php index ff0705f9bbb722114029f4f4a4db957e31ca64a8..8de3ed4e29b012793c8055a83b08173c8445030c 100644 --- a/interface/web/sites/aps_do_operation.php +++ b/interface/web/sites/aps_do_operation.php @@ -64,6 +64,9 @@ if($_GET['action'] == 'change_status') } else if($_GET['action'] == 'delete_instance') { + // Check CSRF Token + $app->auth->csrf_token_check('GET'); + // Make sure a valid package ID is given (also corresponding to the calling user) $client_id = 0; $is_admin = ($_SESSION['s']['user']['typ'] == 'admin') ? true : false; diff --git a/interface/web/sites/aps_install_package.php b/interface/web/sites/aps_install_package.php index 4739e25b8a69798e2d253a059e10a12f0e2652c3..04b815bb2d228e334d452d86b24e969e7960d438 100644 --- a/interface/web/sites/aps_install_package.php +++ b/interface/web/sites/aps_install_package.php @@ -49,8 +49,8 @@ $app->load_language_file('web/sites/'.$lngfile); // we will check only users, not admins if($_SESSION["s"]["user"]["typ"] == 'user') { - $app->tform->formDef['db_table_idx'] = 'client_id'; - $app->tform->formDef['db_table'] = 'client'; + $app->tform->formDef['db_table_idx'] = 'id'; + $app->tform->formDef['db_table'] = 'aps_instances'; if(!$app->tform->checkClientLimit('limit_aps')) { $app->error($app->lng("limit_aps_txt")); } @@ -93,6 +93,9 @@ if(!empty($domains_assoc)) foreach($domains_assoc as $domain) $domains[] = $doma $result['input'] = array(); if(count($_POST) > 1) { + // Check CSRF Token + $app->auth->csrf_token_check(); + $result = $gui->validateInstallerInput($_POST, $details, $domains, $settings); if(empty($result['error'])) { @@ -117,13 +120,16 @@ foreach($details as $key => $value) else if($key == 'Requirements PHP settings') $app->tpl->setLoop('pkg_requirements_php_settings', $details['Requirements PHP settings']); } +// get new csrf token +$csrf_token = $app->auth->csrf_token_get('aps_install_package'); +$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']); +$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']); + // Parse the template as far as possible, then do the rest manually $app->tpl_defaults(); $parsed_tpl = $app->tpl->grab(); -// ISPConfig has a very old and functionally limited template engine. We have to style parts on our own... - // Print the domain list $domains_tpl = ''; if(!empty($domains)) diff --git a/interface/web/sites/aps_installedpackages_list.php b/interface/web/sites/aps_installedpackages_list.php index 28f334019f5706f617602af096a7beb055e41d52..32849ad740f12f67f662a43cd7bca77532e866e5 100644 --- a/interface/web/sites/aps_installedpackages_list.php +++ b/interface/web/sites/aps_installedpackages_list.php @@ -112,12 +112,16 @@ if(!$is_admin) { $records = $app->db->queryAllRecords($query); $app->listform_actions->DataRowColor = '#FFFFFF'; +$csrf_token = $app->auth->csrf_token_get($app->listform->listDef['name']); +$_csrf_id = $csrf_token['csrf_id']; +$_csrf_key = $csrf_token['csrf_key']; + // Re-form all result entries and add extra entries $records_new = array(); if(is_array($records)) { $app->listform_actions->idx_key = $app->listform->listDef["table_idx"]; - foreach($records as $rec) + foreach($records as $key => $rec) { // Set an abbreviated install location to beware the page layout $ils = ''; @@ -129,7 +133,9 @@ if(is_array($records)) if($rec['instance_status'] != INSTANCE_REMOVE && $rec['instance_status'] != INSTANCE_INSTALL) $rec['delete_possible'] = 'true'; - $records_new[] = $app->listform_actions->prepareDataRow($rec); + $records_new[$key] = $app->listform_actions->prepareDataRow($rec); + $records_new[$key]['csrf_id'] = $_csrf_id; + $records_new[$key]['csrf_key'] = $_csrf_key; } } $app->tpl->setLoop('records', $records_new); diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 71e5acaf27c120d8d332485e494de8af8fd1689a..22f3302c6c4213c5d822280c67d6386707a11e4e 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -152,6 +152,12 @@ class page_action extends tform_actions { $app->tpl->setVar("database_name_prefix", $app->tools_sites->getPrefix($this->dataRecord['database_name_prefix'], $dbname_prefix, $global_config['dbname_prefix']), true); } + if($global_config['disable_client_remote_dbserver'] == 'y' && $_SESSION["s"]["user"]["typ"] != 'admin') { + $app->tpl->setVar("disable_remote_db", 1); + } else { + $app->tpl->setVar("disable_remote_db", 0); + } + if($this->id > 0) { //* we are editing a existing record $edit_disabled = @($_SESSION["s"]["user"]["typ"] == 'admin')? 0 : 1; //* admin can change the database-name @@ -351,9 +357,14 @@ class page_action extends tform_actions { if($tmp['server_id'] && $tmp['server_id'] != $this->dataRecord['server_id']) { // we need remote access rights for this server, so get it's ip address $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); + + // Add default remote_ips from Main Configuration. + $remote_ips = explode(",", $global_config['default_remote_dbserver']); + if (!in_array($server_config['ip_address'], $default_remote_db)) { $remote_ips[] = $server_config['ip_address']; } + if($server_config['ip_address']!='') { if($this->dataRecord['remote_access'] != 'y'){ - $this->dataRecord['remote_ips'] = $server_config['ip_address']; + $this->dataRecord['remote_ips'] = implode(',', $remote_ips); $this->dataRecord['remote_access'] = 'y'; } else { if($this->dataRecord['remote_ips'] != ''){ @@ -361,6 +372,7 @@ class page_action extends tform_actions { $this->dataRecord['remote_ips'] .= ',' . $server_config['ip_address']; } $tmp = preg_split('/\s*,\s*/', $this->dataRecord['remote_ips']); + $tmp = array_merge($tmp, $remote_ips); $tmp = array_unique($tmp); $this->dataRecord['remote_ips'] = implode(',', $tmp); unset($tmp); @@ -430,9 +442,14 @@ class page_action extends tform_actions { if($tmp['server_id'] && $tmp['server_id'] != $this->dataRecord['server_id']) { // we need remote access rights for this server, so get it's ip address $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); + + // Add default remote_ips from Main Configuration. + $remote_ips = explode(",", $global_config['default_remote_dbserver']); + if (!in_array($server_config['ip_address'], $default_remote_db)) { $remote_ips[] = $server_config['ip_address']; } + if($server_config['ip_address']!='') { if($this->dataRecord['remote_access'] != 'y'){ - $this->dataRecord['remote_ips'] = $server_config['ip_address']; + $this->dataRecord['remote_ips'] = implode(',', $remote_ips); $this->dataRecord['remote_access'] = 'y'; } else { if($this->dataRecord['remote_ips'] != ''){ @@ -440,6 +457,7 @@ class page_action extends tform_actions { $this->dataRecord['remote_ips'] .= ',' . $server_config['ip_address']; } $tmp = preg_split('/\s*,\s*/', $this->dataRecord['remote_ips']); + $tmp = array_merge($tmp, $remote_ips); $tmp = array_unique($tmp); $this->dataRecord['remote_ips'] = implode(',', $tmp); unset($tmp); diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php index 148aa127ae493be1fdced8804f96276dc2c321c9..03431a6dedfb9dd7a298466dc5be7bf95b0c63ae 100644 --- a/interface/web/sites/database_quota_stats.php +++ b/interface/web/sites/database_quota_stats.php @@ -37,7 +37,7 @@ if(is_array($tmp_rec)) { } else { $temp['username'] = 'admin'; } - + if(is_array($temp) && !empty($temp)) { $monitor_data[$server_id.'.'.$db_name]['database_name'] = $data['database_name']; $monitor_data[$server_id.'.'.$db_name]['client'] = isset($temp['username']) ? $temp['username'] : ''; @@ -61,7 +61,7 @@ class list_action extends listform_actions { $rec['bgcolor'] = $this->DataRowColor; $database_name = $rec['database_name']; - + if(!empty($monitor_data[$rec['server_id'].'.'.$database_name])){ $rec['database'] = $monitor_data[$rec['server_id'].'.'.$database_name]['database_name']; $rec['client'] = $monitor_data[$rec['server_id'].'.'.$database_name]['client']; @@ -71,8 +71,8 @@ class list_action extends listform_actions { $rec['used'] = $monitor_data[$rec['server_id'].'.'.$database_name]['used']; $rec['quota'] = $monitor_data[$rec['server_id'].'.'.$database_name]['quota']; - if($rec['quota'] == 0){ - $rec['quota'] = $app->lng('unlimited'); + if($rec['quota'] <= 0){ + $rec['quota'] = $app->lng('unlimited_txt'); $rec['percentage'] = ''; } else { if ($rec['used'] > 0 ) $rec['percentage'] = round(100 * intval($rec['used']) / ( intval($rec['quota'])*1024*1024) ).'%'; @@ -83,7 +83,8 @@ class list_action extends listform_actions { } else { $web_database = $app->db->queryOneRecord("SELECT * FROM web_database WHERE database_id = ?", $rec[$this->idx_key]); $rec['database'] = $rec['database_name']; - $rec['server_name'] = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $web_database['server_id'])['server_name']; + $temp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $web_database['server_id']); + $rec['server_name'] = $temp['server_name']; $sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", $web_database['sys_groupid']); $client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", $sys_group['client_id']); $rec['client'] = $client['username']; diff --git a/interface/web/sites/form/cron.tform.php b/interface/web/sites/form/cron.tform.php index 4a169c3a6710f46926c73cddd68ef066c27acdac..aedfcb26ca74019bdd1c9d991f06a57a0bbbb2cd 100644 --- a/interface/web/sites/form/cron.tform.php +++ b/interface/web/sites/form/cron.tform.php @@ -185,7 +185,7 @@ $form["tabs"]['cron'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/database.tform.php b/interface/web/sites/form/database.tform.php index 3bb2f9af73c9c3875c2bf9069155d4b4e651ff2e..dd3910c0434a850915aec7eeb5ede5201955d0a9 100644 --- a/interface/web/sites/form/database.tform.php +++ b/interface/web/sites/form/database.tform.php @@ -185,7 +185,7 @@ $form["tabs"]['database'] = array ( 'searchable' => 2 ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/database_user.tform.php b/interface/web/sites/form/database_user.tform.php index 09d2c32b2c3e94ca714fd8e574bb09df3ebb0563..5f91cbd1f30a4617bdc702fd98cb21dfc8fa91c9 100644 --- a/interface/web/sites/form/database_user.tform.php +++ b/interface/web/sites/form/database_user.tform.php @@ -125,7 +125,7 @@ $form["tabs"]['database_user'] = array ( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index 239bfdb8583a7ec0a6e52b699a7ed98164dcbcb9..0b48d7a92d59da48a71698fd5fc50a660ad38ddc 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -146,7 +146,7 @@ $form["tabs"]['ftp'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -256,7 +256,7 @@ if($app->auth->is_admin()) { 'maxlength' => '7' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -276,7 +276,10 @@ if($app->auth->is_admin()) { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'directory_error_empty'), - 1 => array ( 'type' => 'CUSTOM', + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', + 'errmsg'=> 'directory_error_regex'), + 2 => array ( 'type' => 'CUSTOM', 'class' => 'validate_ftpuser', 'function' => 'ftp_dir', 'errmsg' => 'directory_error_notinweb'), @@ -287,7 +290,7 @@ if($app->auth->is_admin()) { 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index 4268fc08ecd8a6a8f6ef1f9c5634c517e1bc174d..f4e83a1b57e9b7469142286dab4cfb4a5ce7732a 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -164,7 +164,7 @@ $form["tabs"]['shell'] = array ( 'maxlength' => '600' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -248,7 +248,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/web_childdomain.tform.php b/interface/web/sites/form/web_childdomain.tform.php index 6cfaa38c2a5188f1441d8f3db59d44bea4a1f3be..01132a75dc4dcd20db5e23486e08c8531a64a4e3 100644 --- a/interface/web/sites/form/web_childdomain.tform.php +++ b/interface/web/sites/form/web_childdomain.tform.php @@ -146,7 +146,7 @@ $form["tabs"]['domain'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -193,7 +193,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/web_folder.tform.php b/interface/web/sites/form/web_folder.tform.php index 5fec523a690d55f416a6f8243adcac9aa1fbbe92..9f8418446cf36b5e0a80aa0ce06d838fe0cb2ba1 100644 --- a/interface/web/sites/form/web_folder.tform.php +++ b/interface/web/sites/form/web_folder.tform.php @@ -99,7 +99,7 @@ $form["tabs"]['folder'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/web_folder_user.tform.php b/interface/web/sites/form/web_folder_user.tform.php index c3386a5a223812ffffb5d67ca01a853395f3bad9..b5f0b711c6837a3398723328b6f9b276472b0e67 100644 --- a/interface/web/sites/form/web_folder_user.tform.php +++ b/interface/web/sites/form/web_folder_user.tform.php @@ -119,7 +119,7 @@ $form["tabs"]['user'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index e7698cbe876cea2e5734c9f3be54845cf5d03e29..eecb634c989be6e610e56784a9cb0b1afa4b7178 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -96,7 +96,7 @@ if(!$app->auth->is_admin()) { if($client['limit_backup'] != 'y') $backup_available = false; } -$app->uses('getconf'); +$app->uses('getconf,system'); $web_config = $app->getconf->get_global_config('sites'); $form["tabs"]['domain'] = array ( @@ -250,14 +250,14 @@ $form["tabs"]['domain'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'fast-cgi', - 'valuelimit' => 'client:web_php_options', + 'valuelimit' => 'system:sites:web_php_options;client:web_php_options', 'value' => array('no' => 'disabled_txt', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM'), 'searchable' => 2 ), - 'fastcgi_php_version' => array ( - 'datatype' => 'VARCHAR', + 'server_php_id' => array ( + 'datatype' => 'INTEGER', 'formtype' => 'SELECT', - 'default' => '', + 'default' => '0', /*'datasource' => array ( 'type' => 'SQL', 'querystring' => "SELECT ip_address,ip_address FROM server_ip WHERE ip_type = 'IPv4' AND {AUTHSQL} ORDER BY ip_address", 'keyfield'=> 'ip_address', @@ -299,7 +299,7 @@ $form["tabs"]['domain'] = array ( 'value' => array(0 => 'n', 1 => 'y') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ), 'plugins' => array ( @@ -435,7 +435,7 @@ $form["tabs"]['redirect'] = array ( ) ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -591,17 +591,8 @@ if($ssl_available) { 'default' => '', 'value' => array('' => 'none_txt', 'save' => 'save_certificate_txt', 'create' => 'create_certificate_txt', 'del' => 'delete_certificate_txt') ), - 'enable_spdy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array ( - 0 => 'n', - 1 => 'y' - ) - ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -638,10 +629,10 @@ $form["tabs"]['stats'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'awstats', - 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats', '' => 'None') + 'value' => array('awstats' => 'AWStats', 'goaccess' => 'GoAccess', 'webalizer' => 'Webalizer','' => 'None') ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); @@ -649,6 +640,28 @@ $form["tabs"]['stats'] = array ( //* Backup if ($backup_available) { + $missing_utils = array(); + $compressors_list = array( + 'gzip', + 'gunzip', + 'zip', + 'unzip', + 'pigz', + 'tar', + 'bzip2', + 'bunzip2', + 'xz', + 'unxz', + '7z', + 'rar', + ); + foreach ($compressors_list as $compressor) { + if (!$app->system->is_installed($compressor)) { + array_push($missing_utils, $compressor); + } + } + $app->tpl->setVar("missing_utils", implode(", ",$missing_utils), true); + $form["tabs"]['backup'] = array ( 'title' => "Backup", 'width' => 100, @@ -668,7 +681,7 @@ if ($backup_available) { 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10') + 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '15' => '15', '20' => '20', '30' => '30') ), 'backup_excludes' => array ( 'datatype' => 'VARCHAR', @@ -682,8 +695,60 @@ if ($backup_available) { 'width' => '30', 'maxlength' => '255' ), + 'backup_format_web' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array( + 'default' => 'backup_format_default_txt', + 'zip' => 'backup_format_zip_txt', + 'zip_bzip2' => 'backup_format_zip_bzip2_txt', + 'tar_gzip' => 'backup_format_tar_gzip_txt', + 'tar_bzip2' => 'backup_format_tar_bzip2_txt', + 'tar_xz' => 'backup_format_tar_xz_txt', + 'tar_7z_lzma2' => 'backup_format_tar_7z_lzma2_txt', + 'tar_7z_lzma' => 'backup_format_tar_7z_lzma_txt', + 'tar_7z_ppmd' => 'backup_format_tar_7z_ppmd_txt', + 'tar_7z_bzip2' => 'backup_format_tar_7z_bzip2_txt', + 'rar' => 'backup_format_rar_txt', + ) + ), + 'backup_format_db' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array( + 'zip' => 'backup_format_zip_txt', + 'zip_bzip2' => 'backup_format_zip_bzip2_txt', + 'gzip' => 'backup_format_gzip_txt', + 'bzip2' => 'backup_format_bzip2_txt', + 'xz' => 'backup_format_xz_txt', + '7z_lzma2' => 'backup_format_7z_lzma2_txt', + '7z_lzma' => 'backup_format_7z_lzma_txt', + '7z_ppmd' => 'backup_format_7z_ppmd_txt', + '7z_bzip2' => 'backup_format_7z_bzip2_txt', + 'rar' => 'backup_format_rar_txt', + ) + ), + 'backup_encrypt' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array ( + 0 => 'n', + 1 => 'y' + ) + ), + 'backup_password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ), 'plugins' => array ( @@ -766,6 +831,12 @@ if($_SESSION["s"]["user"]["typ"] == 'admin' 'width' => '30', 'maxlength' => '255' ), + 'proxy_protocol' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), 'php_fpm_use_socket' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -781,7 +852,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin' 'pm' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', - 'default' => 'dynamic', + 'default' => 'ondemand', 'value' => array('static' => 'static', 'dynamic' => 'dynamic', 'ondemand' => 'ondemand (PHP Version >= 5.3.9)') ), 'pm_max_children' => array ( @@ -972,7 +1043,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin' 'maxlength' => '4' ) //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/form/webdav_user.tform.php b/interface/web/sites/form/webdav_user.tform.php index 8d5c0c561f29b4a33db9da70f05367d5163ec21b..73ea898b680125df4a00b3da3be17db42463392f 100644 --- a/interface/web/sites/form/webdav_user.tform.php +++ b/interface/web/sites/form/webdav_user.tform.php @@ -85,7 +85,7 @@ $form["tabs"]['webdav'] = array ( 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'username_error_unique'), 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', + 'regex' => '/^[\w\.\-@]{0,64}$/', 'errmsg'=> 'username_error_regex'), ), 'default' => '', @@ -142,7 +142,7 @@ $form["tabs"]['webdav'] = array ( 'maxlength' => '255' ), //################################# - // ENDE Datatable fields + // END Datatable fields //################################# ) ); diff --git a/interface/web/sites/lib/lang/ar_web_aliasdomain.lng b/interface/web/sites/lib/lang/ar_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/ar_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ar_web_backup_list.lng b/interface/web/sites/lib/lang/ar_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/ar_web_backup_list.lng +++ b/interface/web/sites/lib/lang/ar_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_childdomain.lng b/interface/web/sites/lib/lang/ar_web_childdomain.lng index 636505f2487e4367810b7e453616ff82d29c30f1..95c9944f124ac962747005782b28dd4848613006 100644 --- a/interface/web/sites/lib/lang/ar_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ar_web_domain.lng b/interface/web/sites/lib/lang/ar_web_domain.lng index 1ab9c55d3d9f88099cdfb79a0166d46d39189308..11247be982e25fc479e038e4e11cfe9022997020 100644 --- a/interface/web/sites/lib/lang/ar_web_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng index bfaf07f226f35f2aa838b3b07209a85242a2e090..3ce40d9b0ca2e3128e1cbd7ad6c0d92454629755 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -96,7 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -138,7 +140,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_aps.lng b/interface/web/sites/lib/lang/bg_aps.lng index 5313f2d910ed4363508efab30a3cd3dd9b801d72..6a5f9819439880418389846d329389fcf2a13e02 100644 --- a/interface/web/sites/lib/lang/bg_aps.lng +++ b/interface/web/sites/lib/lang/bg_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['password_strength_txt'] = 'Сила на паролата'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/bg_web_aliasdomain.lng b/interface/web/sites/lib/lang/bg_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/bg_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_backup_list.lng b/interface/web/sites/lib/lang/bg_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/bg_web_backup_list.lng +++ b/interface/web/sites/lib/lang/bg_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_childdomain.lng b/interface/web/sites/lib/lang/bg_web_childdomain.lng index c7549b76f7ef95a2ce18cae7301a826f375c4029..e62b0af4d5a2d212c38412e41f100cd95626d258 100644 --- a/interface/web/sites/lib/lang/bg_web_childdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_domain.lng b/interface/web/sites/lib/lang/bg_web_domain.lng index 901c34a6ec85fd026c53c08f3e79b88d2c11d37b..2146229cd01cf02b3da2ba7fe845176c009ac727 100644 --- a/interface/web/sites/lib/lang/bg_web_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_domain.lng @@ -91,7 +91,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'квотата за диÑковото проÑтранÑтво е грешна.'; $wb['traffic_quota_error_regex'] = 'Трафик квота е грешна.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng index 0c01cbfdaca6728e7df0fcab5467fa92bfdd4959..828b79931f23f3322200928553f6ea36aa7e5c95 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -93,7 +93,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'квотата за диÑковото проÑтранÑтво е грешна.'; $wb['traffic_quota_error_regex'] = 'Трафик квота е грешна.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/br.lng b/interface/web/sites/lib/lang/br.lng index 3fdd93585ec8e05b83eb8750964d30e38e2c46d6..8710dc11407242a2a88cecbb7b335cee88ccdd69 100644 --- a/interface/web/sites/lib/lang/br.lng +++ b/interface/web/sites/lib/lang/br.lng @@ -2,34 +2,37 @@ $wb['Websites'] = 'Sites'; $wb['Website'] = 'Site'; $wb['Subdomain'] = 'SubdomÃnio'; -$wb['Aliasdomain'] = 'Apelido de domÃnio'; -$wb['Database'] = 'Bancos de dados'; +$wb['Aliasdomain'] = 'Alias de domÃnio'; +$wb['Database'] = 'Banco de dados'; +$wb['Database User'] = 'Usuários do banco de dados'; $wb['Web Access'] = 'Acesso web'; $wb['FTP-User'] = 'Usuários ftp'; $wb['Webdav-User'] = 'Usuários webdav'; $wb['Folder'] = 'Pastas protegidas'; -$wb['Folder users'] = 'Usuários de pastas'; +$wb['Folder users'] = 'Usuários de pastas protegidas'; $wb['Command Line'] = 'Linha de comando'; -$wb['Shell-User'] = 'Usuários shell'; +$wb['Shell-User'] = 'Usuários do shell'; $wb['Cron Jobs'] = 'Tarefas no cron'; $wb['Statistics'] = 'EstatÃsticas'; $wb['Web traffic'] = 'Tráfego web'; -$wb['Website quota (Harddisk)'] = 'Cota para sites (disco)'; +$wb['FTP traffic'] = 'Tráfego ftp'; +$wb['Website quota (Harddisk)'] = 'Cota de site (disco)'; +$wb['Database quota'] = 'Cota do banco de dados'; +$wb['Backup Stats'] = 'EstatÃsticas de backups'; $wb['Cron'] = 'Cron'; $wb['Stats'] = 'EstatÃsticas'; $wb['Shell'] = 'Shell'; $wb['Webdav'] = 'Webdav'; $wb['FTP'] = 'FTP'; $wb['Options'] = 'Opções'; +$wb['Domain'] = 'DomÃnio'; $wb['Redirect'] = 'Redirecionamento'; $wb['SSL'] = 'SSL'; $wb['Sites'] = 'Sites'; -$wb['Database User'] = 'Usuários'; -$wb['APS Installer'] = 'Instalação de apps'; +$wb['APS Installer'] = 'Instalador de APPs'; $wb['Available packages'] = 'Pacotes disponÃveis'; $wb['Installed packages'] = 'Pacotes instalados'; $wb['Update Packagelist'] = 'Atualizar lista de pacotes'; $wb['Subdomain (Vhost)'] = 'SubdomÃnio (vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \"proxy\" exige uma url como caminho do redirecionamento.'; -$wb['Domain'] = 'DomÃnio'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento "proxy" exige uma URL como caminho de redirecionamento.'; ?> diff --git a/interface/web/sites/lib/lang/br_aps.lng b/interface/web/sites/lib/lang/br_aps.lng index 46cfabfb0146dcfb8104d65c8e2c24b74f45d591..744c215192d5e8f4686b26e949fdfe51ee6f8a4c 100644 --- a/interface/web/sites/lib/lang/br_aps.lng +++ b/interface/web/sites/lib/lang/br_aps.lng @@ -5,59 +5,59 @@ $wb['available_packages_txt'] = 'Pacotes disponÃveis'; $wb['installed_packages_txt'] = 'Pacotes instalados'; $wb['yes_txt'] = 'Sim'; $wb['no_txt'] = 'Não'; -$wb['invalid_id_txt'] = 'Nenhuma ID válida inserida.'; +$wb['invalid_id_txt'] = 'Nenhuma ID válida informada.'; $wb['details_txt'] = 'Detalhes'; $wb['version_txt'] = 'Versão'; $wb['category_txt'] = 'Categoria'; -$wb['homepage_txt'] = 'Página'; +$wb['homepage_txt'] = 'Página Inicial'; $wb['supported_languages_txt'] = 'Idiomas suportados'; $wb['description_txt'] = 'Descrição'; $wb['config_script_txt'] = 'Script de configuração'; -$wb['installed_size_txt'] = 'Tamanho após instalação'; +$wb['installed_size_txt'] = 'Tamanho após a instalação'; $wb['license_txt'] = 'Licença'; -$wb['screenshots_txt'] = 'Telas'; -$wb['changelog_txt'] = 'Log de mudanças'; -$wb['server_requirements_txt'] = 'Requisitos do servidor'; -$wb['php_extensions_txt'] = 'Extensões PHP'; -$wb['php_settings_txt'] = 'Configurações do PHP'; -$wb['supported_php_versions_txt'] = 'Versões do PHP suportadas'; +$wb['screenshots_txt'] = 'Captura de telas'; +$wb['changelog_txt'] = 'Mudanças Recentes'; +$wb['server_requirements_txt'] = 'Requisitos do Servidor'; +$wb['php_extensions_txt'] = 'Extensões php'; +$wb['php_settings_txt'] = 'Configurações php'; +$wb['supported_php_versions_txt'] = 'Versões do php suportadas'; $wb['database_txt'] = 'Banco de Dados'; $wb['settings_txt'] = 'Configurações'; -$wb['install_package_txt'] = 'Instalar esse pacote'; +$wb['install_package_txt'] = 'Instalar este pacote'; $wb['installation_txt'] = 'Instalação'; $wb['install_location_txt'] = 'Local da instalação'; -$wb['acceptance_txt'] = 'Aceitação'; -$wb['acceptance_text_txt'] = 'Sim, eu li a licença e aceito os termos.'; +$wb['btn_install_txt'] = 'Instalar'; +$wb['btn_cancel_txt'] = 'Cancelar'; +$wb['acceptance_txt'] = 'Aceitar a licença'; +$wb['acceptance_text_txt'] = 'Sim, li e aceito os termos da licença.'; $wb['install_language_txt'] = 'Idioma da interface'; $wb['new_database_password_txt'] = 'Nova senha do banco de dados'; $wb['basic_settings_txt'] = 'Configurações básicas'; -$wb['package_settings_txt'] = 'Configurações do pacote'; -$wb['error_main_domain'] = 'O domÃnio no caminho da instalação é é inválido.'; -$wb['error_no_main_location'] = 'Você inseriu um caminho inválido para a instalação.'; -$wb['error_inv_main_location'] = 'A pasta informada para a instalação é inválida.'; -$wb['error_license_agreement'] = 'Para continuar é preciso aceitar os termos da licenciamento.'; -$wb['error_no_database_pw'] = 'Você informou uma senha inválida para o banco de dados.'; -$wb['error_short_database_pw'] = 'Por favor, escolha uma senha com maior complexidade para o banco de dados.'; -$wb['error_no_value_for'] = 'O campo \'%s\' não pode ficar está em branco.'; -$wb['error_short_value_for'] = 'O campo \'%s\' exige um valor maior.'; -$wb['error_long_value_for'] = 'O campo \'%s\' exige um valor mais curto.'; -$wb['error_inv_value_for'] = 'Você inseriu um valor inválido para o campo \'%s\'.'; -$wb['error_inv_email_for'] = 'Você inseriu um e-mail inválido para o campo \'%s\'.'; -$wb['error_inv_domain_for'] = 'Você inseriu um domÃnio inválido para o campo \'%s\'.'; -$wb['error_inv_integer_for'] = 'Você inseriu um número inválido para o campo \'%s\'.'; -$wb['error_inv_float_for'] = 'Você inseriu um número de ponto flutuante inválido para o campo \'%s\'.'; -$wb['error_used_location'] = 'O caminho da instalação contém um pacote de instalação.'; -$wb['installation_task_txt'] = 'Agendamento de instalação'; +$wb['package_settings_txt'] = 'Configurações de pacotes'; +$wb['error_main_domain'] = 'O domÃnio para a instalação é inválido.'; +$wb['error_no_main_location'] = 'Não foi informado um caminho válido para a instalação.'; +$wb['error_inv_main_location'] = 'Local da pasta de instalação informado é inválido.'; +$wb['error_license_agreement'] = 'Para continuar é necessário aceitar os termos da licença.'; +$wb['error_no_database_pw'] = 'Não foi informado uma senha válida para o banco de dados.'; +$wb['error_short_database_pw'] = 'Por favor informe uma senha do banco de dados com maior complexidade.'; +$wb['error_no_value_for'] = 'O campo "%s" não pode estar está em branco.'; +$wb['error_short_value_for'] = 'O campo "%s" requer um valor de entrada maior.'; +$wb['error_long_value_for'] = 'O campo "%s" requer um valor de entrada menor.'; +$wb['error_inv_value_for'] = 'O valor informado no campo "%s" é inválido.'; +$wb['error_inv_email_for'] = 'O e-mail informado no campo "%s" é inválido.'; +$wb['error_inv_domain_for'] = 'O domÃnio informado no campo "%s" é inválido.'; +$wb['error_inv_integer_for'] = 'O número informado no campo "%s" é inválido.'; +$wb['error_inv_float_for'] = 'O número de ponto flutuante informado no campo "%s" é inválido.'; +$wb['error_used_location'] = 'O caminho da instalação selecionado já possui uma instalação de pacote.'; +$wb['installation_task_txt'] = 'Instalação agendada'; $wb['installation_error_txt'] = 'Erro de instalação'; $wb['installation_success_txt'] = 'Instalado'; -$wb['installation_remove_txt'] = 'Remove agendamento'; -$wb['packagelist_update_finished_txt'] = 'Atualização da lista de pacotes finalizada.'; -$wb['btn_install_txt'] = 'Instalar'; -$wb['btn_cancel_txt'] = 'Cancelar'; -$wb['limit_aps_txt'] = 'O limite de instâncias de apps para esta conta foi alcançado.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['installation_remove_txt'] = 'Remover instalação agendada'; +$wb['packagelist_update_finished_txt'] = 'Lista de APPs atualizada.'; +$wb['limit_aps_txt'] = 'O limite de instâncias de APPs para esta conta foi alcançado.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/br_aps_instances_list.lng b/interface/web/sites/lib/lang/br_aps_instances_list.lng index fb6a2addd8db607ae6e4960d331db289e09328b2..da5b80d68e3e2380b59f4f2c6dc48ded2223c5c8 100644 --- a/interface/web/sites/lib/lang/br_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/br_aps_instances_list.lng @@ -5,7 +5,7 @@ $wb['version_txt'] = 'Versão'; $wb['customer_txt'] = 'Cliente'; $wb['status_txt'] = 'Estado'; $wb['install_location_txt'] = 'Local da instalação'; -$wb['pkg_delete_confirmation'] = 'Você realmente deseja remover esta instalação?'; +$wb['pkg_delete_confirmation'] = 'Deseja realmente remover esta instalação?'; $wb['filter_txt'] = 'Pesquisar'; $wb['delete_txt'] = 'Remover'; ?> diff --git a/interface/web/sites/lib/lang/br_aps_packages_list.lng b/interface/web/sites/lib/lang/br_aps_packages_list.lng index 641d807f52475f545c86ad32f2081ce7a74a7ff5..bbd0e1ad3d95ad97f4e3e3ddf3ead4d763088815 100644 --- a/interface/web/sites/lib/lang/br_aps_packages_list.lng +++ b/interface/web/sites/lib/lang/br_aps_packages_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Pacotes DisponÃveis'; +$wb['list_head_txt'] = 'Pacotes disponÃveis'; $wb['name_txt'] = 'Nome'; $wb['version_txt'] = 'Versão'; $wb['category_txt'] = 'Categoria'; diff --git a/interface/web/sites/lib/lang/br_aps_update_packagelist.lng b/interface/web/sites/lib/lang/br_aps_update_packagelist.lng index 8e53fbb6b1088542d35e1e1a40f1379848a27733..b81640384c9955ddcf1b68c767482adb76ad170e 100644 --- a/interface/web/sites/lib/lang/br_aps_update_packagelist.lng +++ b/interface/web/sites/lib/lang/br_aps_update_packagelist.lng @@ -1,7 +1,7 @@ <?php $wb['head_txt'] = 'Atualizar lista de pacotes'; -$wb['list_desc_txt'] = 'Lista de pacotes'; +$wb['list_desc_txt'] = ''; $wb['btn_start_txt'] = 'Atualizar lista de pacotes'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['legend_txt'] = 'Aqui você pode atualizar a lista de pacotes disponÃveis. Por favor, observe que este processo poderá levar alguns minutos. Você pode fechar esta página, o processo continuará em segundo plano.'; +$wb['legend_txt'] = 'Aqui é possÃvel atualizar a lista de pacotes disponÃveis. Por favor, observe que esta operação pode demorar vários minutos. Você poderá sair dessa página se quiser; o processo continuará a execução em segundo plano.'; ?> diff --git a/interface/web/sites/lib/lang/br_backup_stats_list.lng b/interface/web/sites/lib/lang/br_backup_stats_list.lng index 5f7f2d9ec740787e4e60e05619bccb7d24537bfe..932ad5dba71ae3e670e1f6f40c22e3ad9a364a48 100644 --- a/interface/web/sites/lib/lang/br_backup_stats_list.lng +++ b/interface/web/sites/lib/lang/br_backup_stats_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'EstatÃsticas do banco de Dados'; -$wb['database_name_txt'] = 'Nome do banco de dados'; +$wb['list_head_txt'] = 'EstatÃsticas de backup'; +$wb['database_name_txt'] = 'Banco de Dados'; $wb['active_txt'] = 'Ativo'; $wb['domain_txt'] = 'DomÃnio'; -$wb['backup_count_txt'] = 'Contador de backup'; +$wb['backup_count_txt'] = 'Contador de backups'; $wb['backup_server_txt'] = 'Servidor'; -$wb['backup_interval_txt'] = 'Intervalo/contador'; -$wb['backup_size_txt'] = 'Tamanho'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_size_txt'] = 'Tamanho do backup'; ?> diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng index eab5b9f688c89a6b8efcac26fb39d777592640a4..98d98efa25b2c75cd21b0dc46496e560952b43b4 100644 --- a/interface/web/sites/lib/lang/br_cron.lng +++ b/interface/web/sites/lib/lang/br_cron.lng @@ -8,19 +8,19 @@ $wb['run_hour_txt'] = 'Horas'; $wb['run_mday_txt'] = 'Dias do mês'; $wb['run_month_txt'] = 'Meses'; $wb['run_wday_txt'] = 'Dias da semana'; -$wb['command_txt'] = 'Comando a executar (os comandos serão executados via sh ou urls via wget)'; +$wb['command_txt'] = 'Comando a executar (comandos são executados através do sh, urls através do wget)'; $wb['limit_cron_txt'] = 'O limite de tarefas no cron foi alcançado.'; -$wb['limit_cron_frequency_txt'] = 'A frequência das tarefas no cron ultrapassou o limite permitido.'; -$wb['run_min_error_format'] = 'Formato dos minutos é inválido.'; -$wb['run_hour_error_format'] = 'Formato das horas é inválido.'; -$wb['run_mday_error_format'] = 'Formato dos dias do mês é inválido.'; -$wb['run_month_error_format'] = 'Formato dos meses é inválido.'; -$wb['run_wday_error_format'] = 'Formato dos dias da semana é inválido.'; -$wb['command_error_format'] = 'Formato de comando é inválido. Somente endereços url http/https são permitidos.'; -$wb['unknown_fieldtype_error'] = 'Um tipo desconhecido de campo foi usado.'; -$wb['server_id_error_empty'] = 'O ID do servidor está em branco.'; -$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \"http://\" e um comando do cron.'; -$wb['command_error_empty'] = 'Comando está em branco.'; -$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \"/var/www/clients/clientX/webY/meu_script.sh\" ou \"http://www.dominio.com.br/path/script.php\" e também a palavra reservada \"[web_root]\" substituÃdo por \"/var/www/clients/clientX/webY/web\".'; -$wb['log_output_txt'] = 'SaÃda do Log'; +$wb['limit_cron_frequency_txt'] = 'O limite de execuções das tarefas no cron foi alcançado.'; +$wb['run_min_error_format'] = 'Formato inválido para minutos.'; +$wb['run_hour_error_format'] = 'Formato inválido para horas.'; +$wb['run_mday_error_format'] = 'Formato inválido para dias do mês.'; +$wb['run_month_error_format'] = 'Formato inválido para meses.'; +$wb['run_wday_error_format'] = 'Formato inválido para dias da semana.'; +$wb['command_error_format'] = 'Comando possui formato inválido. Por favor, observe que em alguns casos somente chamadas http/https são permitidas.'; +$wb['unknown_fieldtype_error'] = 'Um tipo de campo desconhecido foi utilizado.'; +$wb['server_id_error_empty'] = 'O servidor está em branco.'; +$wb['command_hint_txt'] = 'ex.: /var/www/clients/clientX/webY/myscript.sh ou http://www.dominio.com.br/caminho/script.php, você pode utilizar a área reservada [web_root] para substituir /var/www/clients/clientX/webY/web.'; +$wb['log_output_txt'] = 'Gravar saÃda do log'; +$wb['limit_cron_url_txt'] = 'Somente URL no cron. Por favor insira uma URL iniciando com http:// como um comando no cron.'; +$wb['command_error_empty'] = 'Comando a executar está em branco.'; ?> diff --git a/interface/web/sites/lib/lang/br_cron_list.lng b/interface/web/sites/lib/lang/br_cron_list.lng index 89fe7932f6251434eeb10d66925fd2ed7efa385e..31017512d3f40c9663ef662c40ad788b1d3f7bbf 100644 --- a/interface/web/sites/lib/lang/br_cron_list.lng +++ b/interface/web/sites/lib/lang/br_cron_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Tarefas no Cron'; -$wb['active_txt'] = 'Ativas'; +$wb['list_head_txt'] = 'Tarefas no cron'; +$wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; -$wb['run_min_txt'] = 'Minutos'; -$wb['run_hour_txt'] = 'Horas'; -$wb['run_mday_txt'] = 'Dias do mês'; +$wb['run_min_txt'] = 'Minuto'; +$wb['run_hour_txt'] = 'Hora'; +$wb['run_mday_txt'] = 'Dia do mês'; $wb['run_month_txt'] = 'Mês'; $wb['run_wday_txt'] = 'Dia da semana'; $wb['command_txt'] = 'Comando'; diff --git a/interface/web/sites/lib/lang/br_database.lng b/interface/web/sites/lib/lang/br_database.lng index 57b97693eb8a97ebe0afb793ae5d3d2bf0055797..3690ee9cf8a30305958b91402b42bf32df78a404 100644 --- a/interface/web/sites/lib/lang/br_database.lng +++ b/interface/web/sites/lib/lang/br_database.lng @@ -3,47 +3,47 @@ $wb['server_id_txt'] = 'Servidor'; $wb['type_txt'] = 'Tipo'; $wb['database_name_txt'] = 'Nome do banco de dados'; $wb['database_user_txt'] = 'Usuário do banco de dados'; +$wb['database_ro_user_txt'] = 'Usuário somente leitura'; +$wb['optional_txt'] = 'opcional'; $wb['database_password_txt'] = 'Senha do banco de dados'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['database_charset_txt'] = 'Charset do banco de dados'; +$wb['select_dbuser_txt'] = 'Selecionar usuário'; +$wb['no_dbuser_txt'] = 'Nenhum'; $wb['remote_access_txt'] = 'Acesso Remoto'; +$wb['remote_ips_txt'] = 'Endereços IP para acesso remoto (separado por vÃrgula ou deixe em branco para <i>qualquer um</i>)'; +$wb['database_remote_error_ips'] = 'Ao menos um endereço IP informado é inválido.'; $wb['client_txt'] = 'Cliente'; $wb['active_txt'] = 'Ativo'; +$wb['database_client_differs_txt'] = 'O cliente do site pai e o banco de dados não coincidem.'; $wb['database_name_error_empty'] = 'Nome do banco de dados está em branco.'; -$wb['database_name_error_unique'] = 'Já existe um banco de dados com este nome no servidor. O nome escolhido deve ser exclusivo.'; -$wb['database_name_error_regex'] = 'Nome do banco de dados é inválido. Só é permitido para o nome do banco os caracteres: \'a-z\', \'A-Z\', \'0-9\' e o \'underscrore\'. Tamanho: 2 - 64 caracteres.'; -$wb['database_user_error_empty'] = 'Nome do usuário do banco de dados está em branco.'; -$wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. O nome escolhido deve ser exclusivo.'; -$wb['database_user_error_regex'] = 'Nome do usuário do banco de dados é inválido. Só é permitido para nome do usuário banco de dados os caracteres: \'a-z\', \'A-Z\', \'0-9\' e o \'underscrore\'. Tamanho: 2 - 64 caracteres.'; -$wb['limit_database_txt'] = 'O limite de bancos de dados permitido para esta conta foi alcançado.'; -$wb['database_name_change_txt'] = 'O nome do banco de dados não pode ser modificado.'; -$wb['database_charset_change_txt'] = 'O charset do banco de dados não pode ser modificado.'; -$wb['remote_ips_txt'] = 'Endereços IP Remotos (separados por vÃrgula. Em branco para <i>quaisquer IPs</i>)'; -$wb['database_remote_error_ips'] = 'Pelo menos um dos endereços IP informados não é válido.'; -$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres, incluindo o prefixo, é o limite permitido.'; -$wb['database_user_error_len'] = 'Nome do usuário do banco de dados \'{user}\' é muito longo. 16 caracteres, incluindo o prefixo, é o limite permitido.'; +$wb['database_name_error_unique'] = 'Já existe um banco de dados com este nome no servidor. Para ter um nome exclusivo, por exemplo, insira o domÃnio como prefixo do nome.'; +$wb['database_name_error_regex'] = 'Nome do banco de dados é inválido. O nome do banco de dados pode conter os seguintes caracteres: a-z, A-Z, 0-9 e underscore. Comprimento 2 - 64 caracteres.'; +$wb['database_user_error_empty'] = 'Usuário do banco de dados está em branco.'; +$wb['database_user_error_unique'] = 'Já existe um usuário de banco de dados com esse nome. Para ter um nome exclusivo, por exemplo, insira o domÃnio como prefixo do nome.'; +$wb['database_user_error_regex'] = 'Usuário do banco de dados é inválido. O nome do usuário pode conter os seguintes caracteres: a-z, A-Z, 0-9 e underscore. Comprimento: 2 a 16 caracteres.'; +$wb['limit_database_txt'] = 'O limite de banco de dados foi alcançado para esta conta.'; +$wb['database_name_change_txt'] = 'O nome do banco de dados não pode ser alterado.'; +$wb['database_user_missing_txt'] = 'Por favor, selecione um usuário para este banco de dados.'; +$wb['database_charset_change_txt'] = 'O charset do banco de dados não pode ser alterado.'; +$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - muito longo. O comprimento do nome do banco de dados, incluindo o prefixo, são 64 caracteres.'; +$wb['database_user_error_len'] = 'Nome do usuário do banco de dados - {user} - muito longo. O comprimento do nome do usuário, incluindo o prefixo, são 16 caracteres.'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['database_site_error_empty'] = 'Selecione o \"site\" ao qual o banco de dados pertence.'; -$wb['select_site_txt'] = '- Selecionar site -'; +$wb['database_site_error_empty'] = 'Selecione o site ao qual o banco de dados pertence.'; +$wb['select_site_txt'] = '-Selecionar Site-'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['globalsearch_resultslimit_of_txt'] = 'de'; $wb['globalsearch_resultslimit_results_txt'] = 'resultados'; $wb['globalsearch_noresults_text_txt'] = 'Sem resultados.'; $wb['globalsearch_noresults_limit_txt'] = '0 resultados'; $wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar'; $wb['globalsearch_suggestions_text_txt'] = 'Sugestões'; -$wb['database_ro_user_txt'] = 'Usuário do banco de dados somente leitura'; -$wb['optional_txt'] = 'opcional'; -$wb['select_dbuser_txt'] = 'Selecionar o usuário do banco de dados'; -$wb['no_dbuser_txt'] = 'Nenhum'; -$wb['database_client_differs_txt'] = 'O cliente do site e banco de dados não coincidem.'; -$wb['database_user_missing_txt'] = 'Por favor, selecione um usuário do banco de dados para este banco de dados.'; -$wb['limit_database_quota_txt'] = 'Cota para banco de dados'; -$wb['limit_database_quota_error_notint'] = 'O valor da cota para banco de dados deve ser um número positivo.'; -$wb['limit_database_quota_free_txt'] = 'Cota para banco de dados'; +$wb['limit_database_quota_txt'] = 'Cota do banco de dados'; +$wb['limit_database_quota_error_notint'] = 'O limite da cota do banco de dados deve ser um número.'; +$wb['limit_database_quota_free_txt'] = 'Limite da cota do banco de dados disponÃvel'; ?> diff --git a/interface/web/sites/lib/lang/br_database_admin_list.lng b/interface/web/sites/lib/lang/br_database_admin_list.lng index 4f8f6ba611a0f4aa001db9fd42a1fdbe613d73ad..eef9b6e3fae18536744fd569740ea12f99d6c83b 100644 --- a/interface/web/sites/lib/lang/br_database_admin_list.lng +++ b/interface/web/sites/lib/lang/br_database_admin_list.lng @@ -1,12 +1,12 @@ <?php -$wb['list_head_txt'] = 'Banco de dados'; +$wb['list_head_txt'] = 'Banco de Dados'; $wb['active_txt'] = 'Ativo'; -$wb['remote_access_txt'] = 'Acesso remoto'; +$wb['remote_access_txt'] = 'Acesso Remoto'; +$wb['type_txt'] = 'Tipo'; $wb['server_id_txt'] = 'Servidor'; $wb['database_user_txt'] = 'Usuário do banco de dados'; $wb['database_name_txt'] = 'Nome do banco de dados'; $wb['add_new_record_txt'] = 'Adicionar novo banco de dados'; $wb['sys_groupid_txt'] = 'Cliente'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['type_txt'] = 'Tipo'; ?> diff --git a/interface/web/sites/lib/lang/br_database_list.lng b/interface/web/sites/lib/lang/br_database_list.lng index afb5d36a0d32790fe7421b9350915f039dcd26d3..b3d438e04b4d94db408c54b55adf74fee0132eac 100644 --- a/interface/web/sites/lib/lang/br_database_list.lng +++ b/interface/web/sites/lib/lang/br_database_list.lng @@ -1,11 +1,11 @@ <?php -$wb['list_head_txt'] = 'Bancos de Dados'; +$wb['list_head_txt'] = 'Banco de Dados'; $wb['active_txt'] = 'Ativo'; $wb['remote_access_txt'] = 'Acesso Remoto'; +$wb['type_txt'] = 'Tipo'; $wb['server_id_txt'] = 'Servidor'; $wb['database_user_txt'] = 'Usuário do banco de dados'; $wb['database_name_txt'] = 'Nome do banco de dados'; -$wb['add_new_record_txt'] = 'Adicionar um novo banco de dados'; +$wb['add_new_record_txt'] = 'Adicionar novo registro'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['type_txt'] = 'Tipo'; ?> diff --git a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng index 90202f115f6c300bffbcd16f30203677e1633243..41fd305a3aa81872dd30baa2482e540509f00041 100644 --- a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng @@ -1,9 +1,9 @@ <?php -$wb['database_txt'] = 'Banco de dados'; +$wb['database_txt'] = 'Banco de Dados'; $wb['server_name_txt'] = 'Servidor'; $wb['client_txt'] = 'Cliente'; -$wb['used_txt'] = 'Espaço utilizado'; +$wb['used_txt'] = 'Espaço Utilizado'; $wb['quota_txt'] = 'Cota'; -$wb['percentage_txt'] = 'Espaço utilizado em %'; -$wb['list_head_txt'] = 'Cota para banco de dados'; +$wb['percentage_txt'] = 'Espaço Utilizado em %'; +$wb['list_head_txt'] = 'Cota do banco de dados'; ?> diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng index 518f0296e1c28a9fbbc6911fae73a1e74d3de6d8..193dbc7406d9feb95593294bdc6f0358be5eb702 100644 --- a/interface/web/sites/lib/lang/br_database_user.lng +++ b/interface/web/sites/lib/lang/br_database_user.lng @@ -1,25 +1,25 @@ <?php -$wb['database_user_txt'] = 'Usuário'; +$wb['database_user_txt'] = 'Usuário do banco de Dados'; $wb['database_password_txt'] = 'Senha do banco de dados'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['client_txt'] = 'Cliente'; $wb['active_txt'] = 'Ativo'; $wb['database_user_error_empty'] = 'Usuário do banco de dados está em branco.'; -$wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. Para configurar um nome exclusivo, use como prefixo o domÃnio para o nome do usuário.'; -$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; -$wb['database_user_error_len'] = 'O usuário do banco de dados - {user} - é muito longo. O limite do nome do usuário, incluindo o prefixo, são 16 caracteres.'; +$wb['database_user_error_unique'] = 'Já existe este usuário no servidor. Para ter um nome exclusivo insira um prefixo como o domÃnio antes do nome.'; +$wb['database_user_error_regex'] = 'Nome do usuário de banco de dados inválido. O nome do usuário deve conter apenas os caracteres: a-z, A-Z, 0-9 e underscore. Comprimento: 2 - 64 caracteres.'; +$wb['database_user_error_len'] = 'Nome do usuário de banco de dados - {user} - muito longo. Comprimento permitido, incluindo o prefixo, não pode ultrapassr 16 caracteres.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['globalsearch_resultslimit_of_txt'] = 'de'; $wb['globalsearch_resultslimit_results_txt'] = 'resultados'; $wb['globalsearch_noresults_text_txt'] = 'Sem resultados.'; -$wb['globalsearch_noresults_limit_txt'] = '0 resultados'; +$wb['globalsearch_noresults_limit_txt'] = '0 resultado(s)'; $wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar'; $wb['globalsearch_suggestions_text_txt'] = 'Sugestões'; -$wb['limit_database_user_txt'] = 'O limite de usuários do banco de dados foi alcançado.'; +$wb['limit_database_user_txt'] = 'O limite de usuários do banco de dados para esta conta foi alcançado.'; $wb['database_password_error_empty'] = 'Senha do banco de dados está em branco.'; ?> diff --git a/interface/web/sites/lib/lang/br_database_user_admin_list.lng b/interface/web/sites/lib/lang/br_database_user_admin_list.lng index 1d610bd1b0aef7b656ea993675ff3df274f6b316..bb21e97b1c2e8f77c282e2af42286c39f8d1b76e 100644 --- a/interface/web/sites/lib/lang/br_database_user_admin_list.lng +++ b/interface/web/sites/lib/lang/br_database_user_admin_list.lng @@ -1,6 +1,6 @@ <?php -$wb['list_head_txt'] = 'Usuários'; -$wb['database_user_txt'] = 'Usuário'; +$wb['list_head_txt'] = 'Usuário do banco de dados'; +$wb['database_user_txt'] = 'Nome do usuário'; $wb['add_new_record_txt'] = 'Adicionar novo usuário'; $wb['sys_groupid_txt'] = 'Cliente'; ?> diff --git a/interface/web/sites/lib/lang/br_database_user_list.lng b/interface/web/sites/lib/lang/br_database_user_list.lng index 855265e958b0f04edf3a43686c044ef5ed020a8e..d2e4332fc79e0a921a4e0240ca5bae8526c00a80 100644 --- a/interface/web/sites/lib/lang/br_database_user_list.lng +++ b/interface/web/sites/lib/lang/br_database_user_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Usuários'; -$wb['database_user_txt'] = 'Usuário'; +$wb['list_head_txt'] = 'Usuário do banco de dados'; +$wb['database_user_txt'] = 'Usuário do banco de dados'; $wb['add_new_record_txt'] = 'Adicionar novo usuário'; ?> diff --git a/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng index 93a02f6c25419fa0f2d246fc5b77e948e8876ccf..e4fabd595987fbdb2ddae777beb6cc0abd0713dc 100644 --- a/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Tráfego ftp'; +$wb['list_head_txt'] = 'Tráfego FTP'; $wb['domain_txt'] = 'DomÃnio'; $wb['this_month_txt'] = 'Este mês'; $wb['last_month_txt'] = 'Último mês'; $wb['this_year_txt'] = 'Este ano'; $wb['last_year_txt'] = 'Último ano'; $wb['sum_txt'] = 'Soma (Download + Upload)'; -$wb['in_out_txt'] = 'DL/UL'; +$wb['in_out_txt'] = 'DOWN/UP'; ?> diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index bb8d99ceb05622cced7949ca108500fe6bfa80e4..370fe0f36687cdcf86045aa7adeddc3e0ed12095 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -1,35 +1,36 @@ <?php -$wb['uid_txt'] = 'UID'; -$wb['gid_txt'] = 'GID'; +$wb['uid_txt'] = 'ID do usuário (UID)'; +$wb['gid_txt'] = 'ID do grupo (GID)'; $wb['dir_txt'] = 'Diretório'; $wb['quota_files_txt'] = 'Cota de arquivos'; $wb['quota_files_unity_txt'] = 'Arquivos'; -$wb['ul_ratio_txt'] = 'Taxa para upload'; -$wb['dl_ratio_txt'] = 'Taxa para download'; -$wb['ul_bandwidth_txt'] = 'Banda para upload'; -$wb['dl_bandwidth_txt'] = 'Banda para download'; +$wb['ul_ratio_txt'] = 'Taxa de upload'; +$wb['dl_ratio_txt'] = 'Taxa de download'; +$wb['ul_bandwidth_txt'] = 'Banda de upload'; +$wb['dl_bandwidth_txt'] = 'Banda de download'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Site'; $wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['quota_size_txt'] = 'Cota de disco'; +$wb['quota_size_txt'] = 'Cota do Disco'; $wb['active_txt'] = 'Ativo'; -$wb['limit_ftp_user_txt'] = 'o limite de usuários ftp para esta conta foi alcançado.'; -$wb['username_error_empty'] = 'Nome do usuário está em branco.'; +$wb['limit_ftp_user_txt'] = 'O limite de usuários ftp para esta conta foi alcançado.'; +$wb['username_error_empty'] = 'Usuário está em branco.'; $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; -$wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; +$wb['username_error_regex'] = 'O nome do usuário possui caracteres não permitidos.'; $wb['quota_size_error_empty'] = 'Cota está em branco.'; +$wb['uid_error_empty'] = 'UID está em branco.'; $wb['uid_error_empty'] = 'GID está em branco.'; $wb['directory_error_empty'] = 'Diretório está em branco.'; -$wb['directory_error_notinweb'] = 'O diretório não está dentro do diretório web principal.'; +$wb['directory_error_notinweb'] = 'Diretório não está dentro do diretório web.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['expires_txt'] = 'Expira em'; +$wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0.'; +$wb['dir_dot_error'] = 'Não é permitido ".." no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido "./" no caminho.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['expires_txt'] = 'Expirar em'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index c92bf5baa4dff9219f43bf4b2c5997a4f2ccda75..8cd05205544545fcc43fd6d5d63b16533e7a9fd2 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -1,36 +1,36 @@ <?php +$wb['puser_txt'] = 'Usuário web'; +$wb['pgroup_txt'] = 'Grupo web'; $wb['shell_txt'] = 'Shell'; -$wb['dir_txt'] = 'Diretório'; +$wb['dir_txt'] = 'Diretório Base'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['username_txt'] = 'Nome do usuário'; +$wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['chroot_txt'] = 'Shell enjaulado (chroot)'; +$wb['chroot_txt'] = 'Chroot Shell'; $wb['quota_size_txt'] = 'Cota'; $wb['active_txt'] = 'Ativo'; -$wb['username_error_empty'] = 'Nome de usuário está em branco.'; -$wb['username_error_unique'] = 'O nome de usuário deve ser exclusivo.'; -$wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; +$wb['username_error_empty'] = 'Nome do usuário está em branco.'; +$wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; +$wb['username_error_regex'] = 'O nome do usuário possui caracteres não permitidos.'; $wb['quota_size_error_empty'] = 'Cota está em branco.'; $wb['uid_error_empty'] = 'GID está em branco.'; -$wb['directory_error_empty'] = 'Diretório está em branco.'; -$wb['limit_shell_user_txt'] = 'O limite de usuários shell para esta conta foi alcançado.'; +$wb['directory_error_empty'] = 'O diretório está em branco.'; +$wb['limit_shell_user_txt'] = 'O limite de usuários foi alcançado.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['puser_txt'] = 'Usuário web'; -$wb['pgroup_txt'] = 'Grupo web'; $wb['ssh_rsa_txt'] = 'Chave pública SSH-RSA (para acessos baseados em chave)'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['username_must_not_exceed_32_chars_txt'] = 'O nome do usuário não pode ultrapassar 32 caracteres.'; -$wb['username_not_allowed_txt'] = 'O nome do usuário nao é permitido.'; -$wb['invalid_system_user_or_group_txt'] = 'Usuário ou grupo inválido'; -$wb['directory_error_regex'] = 'Diretório inválido'; -$wb['shell_error_regex'] = 'Shell inválido'; -$wb['invalid_username_txt'] = 'Usuário inválido'; -$wb['directory_error_notinweb'] = 'O diretório deve estar dentro do diretório web principal.'; +$wb['dir_dot_error'] = 'Não é permitido \'..\' no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \'./\' no caminho.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'O nome do usuário não pode exceder 32 caracteres.'; +$wb['username_not_allowed_txt'] = 'O nome do usuário não é permitido.'; +$wb['invalid_system_user_or_group_txt'] = 'Usuário ou grupo inválido.'; +$wb['directory_error_regex'] = 'Diretório inválido.'; +$wb['shell_error_regex'] = 'Shell inválido.'; +$wb['invalid_username_txt'] = 'Usuário inválido.'; +$wb['directory_error_notinweb'] = 'O diretório deve estar dentro do diretório web.'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user_list.lng b/interface/web/sites/lib/lang/br_shell_user_list.lng index 587c988ccd56722e325ef1f761bafe67951e0ae9..21bb3d4dfd9d75cc023cb183118c59e609879b99 100644 --- a/interface/web/sites/lib/lang/br_shell_user_list.lng +++ b/interface/web/sites/lib/lang/br_shell_user_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Usuário shell'; +$wb['list_head_txt'] = 'Usuário do Shell'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Site'; diff --git a/interface/web/sites/lib/lang/br_user_quota_stats_list.lng b/interface/web/sites/lib/lang/br_user_quota_stats_list.lng index fe41b018dcb6f9ffcc54a9b5ec779679ade5b8b2..d97921048377a097533503f109c2fe13decd223f 100644 --- a/interface/web/sites/lib/lang/br_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/br_user_quota_stats_list.lng @@ -1,9 +1,9 @@ <?php -$wb['list_head_txt'] = 'Cota do Disco'; -$wb['domain_txt'] = 'DomÃnio'; +$wb['list_head_txt'] = 'Cota do disco para site'; +$wb['domain_txt'] = 'DomÃnio/Site'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['used_txt'] = 'Espaço utilizado'; -$wb['hard_txt'] = 'Limite'; +$wb['hard_txt'] = 'Limite para bloqueio'; $wb['soft_txt'] = 'Limite para alerta'; $wb['files_txt'] = 'Arquivos simples'; ?> diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index 9d4f1951d8090241d70c361f0dc1d4cbffd464d4..779d2c2383dd64795a4fbe77e707e6f69c9a37aa 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -1,7 +1,7 @@ <?php -$wb['domain_txt'] = 'Apelido de domÃnio'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias do backup'; +$wb['domain_txt'] = 'Alias de domÃnio'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['ssl_state_txt'] = 'Estado'; $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; @@ -10,64 +10,64 @@ $wb['ssl_country_txt'] = 'PaÃs'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_domain_txt'] = 'DomÃnio'; $wb['server_id_txt'] = 'Servidor'; -$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize o caractere barra(/).'; $wb['type_txt'] = 'Tipo'; -$wb['parent_domain_id_txt'] = 'Site pai'; +$wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho do redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; -$wb['document_root_txt'] = 'Pasta personalizada documentroot'; +$wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; $wb['ip_address_txt'] = 'Endereço IPv4'; -$wb['ipv6_address_txt'] = 'Endreço IPv6'; -$wb['vhost_type_txt'] = 'Tipo VHost'; -$wb['hd_quota_txt'] = 'Cota de Disco'; +$wb['ipv6_address_txt'] = 'Endereço IPv6'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; $wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; -$wb['errordocs_txt'] = 'Pasta personalizada errordocuments'; +$wb['errordocs_txt'] = 'Proprietário do Error-Documents'; $wb['subdomain_txt'] = 'SubdomÃnio automático'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; $wb['limit_web_domain_txt'] = 'O limite de domÃnios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domÃnio para esta conta foi alcançado.'; -$wb['limit_web_subdomain_txt'] = 'Limite subdomÃnios de site para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; +$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'O domÃnio está em branco.'; -$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou apelido de domÃnio com este nome.'; -$wb['domain_error_regex'] = 'DomÃnio inválido!'; +$wb['domain_error_empty'] = 'O campo "DomÃnio" está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou alias de domÃnio com este nome.'; +$wb['domain_error_regex'] = 'O campo "DomÃnio" é inválido.'; $wb['domain_error_autosub'] = 'Já existe um subdomÃnio com estas configurações.'; -$wb['hd_quota_error_empty'] = 'Cota de disco é 0 ou está em branco.'; +$wb['hd_quota_error_empty'] = 'Cota do disco é 0 ou está em branco.'; $wb['traffic_quota_error_empty'] = 'Cota de tráfego está em branco.'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Empresa\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'PaÃs\' está em branco.'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' está em branco.'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "PaÃs" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; $wb['client_group_id_txt'] = 'Cliente'; $wb['stats_password_txt'] = 'Configurar senha para estatÃsticas web'; -$wb['allow_override_txt'] = 'Diretiva apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Cota máxima de disco disponÃvel'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'PaÃs\' é inválido. São caracteres válidos: \'A-Z\'.'; -$wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponÃvel'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; -$wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; -$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; +$wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Limite da cota de disco disponÃvel'; +$wb['ssl_state_error_regex'] = 'O campo "Estado" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_locality_error_regex'] = 'O campo "Cidade" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organisation_error_regex'] = 'O campo "Empresa" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'O campo "Departamento" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_country_error_regex'] = 'O campo "PaÃs" é inválido. São caracteres válidos: "A-Z".'; +$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego disponÃvel'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. São redirecionamentos válidos, por exemplo, /teste/ ou http://www.dominio.com.br/teste/'; +$wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; +$wb['traffic_quota_exceeded_txt'] = 'O limite da cota de tráfego foi alcançado.'; $wb['ruby_txt'] = 'Ruby'; $wb['stats_user_txt'] = 'Usuário de estatÃsticas web'; -$wb['stats_type_txt'] = 'Programa de estatÃsticas web'; +$wb['stats_type_txt'] = 'Sistema de estatÃsticas web'; $wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini'; $wb['none_txt'] = 'Nenhum'; $wb['disabled_txt'] = 'Desabilitado'; @@ -77,39 +77,39 @@ $wb['save_certificate_txt'] = 'Salvar certificado'; $wb['create_certificate_txt'] = 'Adicionar certificado'; $wb['delete_certificate_txt'] = 'Remover certificado'; $wb['nginx_directives_txt'] = 'Diretivas do nginx'; -$wb['seo_redirect_txt'] = 'Redirecionamento SEO'; -$wb['non_www_to_www_txt'] = 'Diretivas Non-www -> www'; -$wb['www_to_non_www_txt'] = 'Diretivas www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM'; -$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.'; +$wb['seo_redirect_txt'] = 'Diretivas SEO'; +$wb['non_www_to_www_txt'] = 'non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Usar socket para php-fpm'; +$wb['error_no_sni_txt'] = 'SNI para SSL não está habilitado neste servidor. Somente poderá ser habilitado um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; -$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; -$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers'; -$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers'; -$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Os valores permitidos para configurações do PHP-FPM pm são: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.'; -$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.'; -$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.'; -$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.'; -$wb['hd_quota_error_regex'] = 'Valor inválido para cota de disco.'; -$wb['traffic_quota_error_regex'] = 'Valor inválido para cota de tráfego.'; -$wb['fastcgi_php_version_txt'] = 'Versão do PHP'; -$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM'; -$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout'; -$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.'; -$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponÃveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponÃveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponÃveis:'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['server_php_id_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponÃveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponÃveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponÃveis:'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponÃveis:'; -$wb['Domain'] = 'Apelido de domÃnio'; +$wb['Domain'] = 'Alias de DomÃnio'; ?> diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng index 153aa33400c197f9978c5f13b3c3b383c0c22749..770ec725e484ab99e4f11553758685f24dc3cf82 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng @@ -1,13 +1,13 @@ <?php -$wb['list_head_txt'] = 'Apelidos de domÃnios'; +$wb['list_head_txt'] = 'Alias de DomÃnio'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['domain_txt'] = 'Apelido de domÃnio'; -$wb['add_new_record_txt'] = 'Adicionar novo apelido'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; +$wb['domain_txt'] = 'Alias de DomÃnio'; +$wb['add_new_record_txt'] = 'Adicionar novo alias de domÃnio'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; $wb['domain_error_unique'] = 'O domÃnio deve ser exclusivo.'; -$wb['domain_error_regex'] = 'DomÃnio inválido!'; +$wb['domain_error_regex'] = 'O domÃnio é inválido.'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['none_txt'] = 'Nenhum'; diff --git a/interface/web/sites/lib/lang/br_web_backup_list.lng b/interface/web/sites/lib/lang/br_web_backup_list.lng index 137f8bc7e0e50900e1ab0fd551ccbe652c4467df..00384c6e15b5135e76905cb549e171b7184fa469 100644 --- a/interface/web/sites/lib/lang/br_web_backup_list.lng +++ b/interface/web/sites/lib/lang/br_web_backup_list.lng @@ -3,19 +3,51 @@ $wb['list_head_txt'] = 'Backups existentes'; $wb['date_txt'] = 'Data'; $wb['backup_type_txt'] = 'Tipo'; $wb['filename_txt'] = 'Arquivo de backup'; -$wb['restore_backup_txt'] = 'Restaurar backup'; -$wb['download_backup_txt'] = 'Baixar backup'; -$wb['download_info_txt'] = 'O arquivo de backup estará disponÃvel para download na pasta de backup do site em alguns minutos.'; -$wb['restore_info_txt'] = 'Restauração do backup iniciada. Esta ação poderá levar vários minutos para ser concluÃda. Aguarde.'; -$wb['restore_confirm_txt'] = 'A restauração do backup reescreverá os arquivos existes do seu site. Tem certeza que deseja restaurar este backup?'; -$wb['download_pending_txt'] = 'Já existe um download deste backup em execução.'; -$wb['restore_pending_txt'] = 'Já existe uma restauração deste backup em execução.'; -$wb['delete_backup_txt'] = 'Remover backup'; -$wb['delete_info_txt'] = 'Remoção do backup iniciada. Esta ação poderá levar vários minutos para ser concluÃda. Aguarde.'; +$wb['filesize_txt'] = 'Tamanho do arquivo'; +$wb['restore_backup_txt'] = 'Restaurar'; +$wb['download_backup_txt'] = 'Download'; +$wb['download_info_txt'] = 'O arquivo de backup estará disponÃvel para download na pasta de backup dentro de alguns minutos.'; +$wb['restore_info_txt'] = 'Restauração do backup foi iniciada. Esta ação demora vários minutos para concluir.'; +$wb['restore_confirm_txt'] = 'Restaurar arquivo de backup reescreve os arquivos existentes do site. Tem certeza que deseja restaurar este backup?'; +$wb['download_pending_txt'] = 'Já existe um download de backup em andamento.'; +$wb['restore_pending_txt'] = 'Já existe uma restauração de backup em andamento.'; +$wb['delete_backup_txt'] = 'Remover Backup'; +$wb['delete_info_txt'] = 'Remoção de backup foi iniciada. Esta ação demora vários minutos para concluir.'; $wb['delete_confirm_txt'] = 'Tem certeza que deseja remover este backup?'; -$wb['delete_pending_txt'] = 'Já existe uma remoção deste backup em execução.'; -$wb['backup_type_mysql'] = 'Banco de dados MySQL'; +$wb['delete_pending_txt'] = 'Já existe uma remoção de backup em andamento.'; +$wb['backup_type_mongodb'] = 'MongoDB'; +$wb['backup_type_mysql'] = 'MySQL'; $wb['backup_type_web'] = 'Arquivos do site'; -$wb['filesize_txt'] = 'Tamanho'; -$wb['backup_type_mongodb'] = 'Banco de dados MongoDB'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index 1c53d165842a693423b8c785152334f48304d366..fc5f31a2ec26c0743f7cce2e54c9fbf7abba64b1 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -4,117 +4,117 @@ $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; $wb['ssl_organisation_unit_txt'] = 'Departamento'; $wb['ssl_country_txt'] = 'PaÃs'; -$wb['ssl_request_txt'] = 'Requisição SSL'; -$wb['ssl_cert_txt'] = 'Certificado SSL'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_request_txt'] = 'Requisição'; +$wb['ssl_cert_txt'] = 'Certificado'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['type_txt'] = 'Tipo'; -$wb['parent_domain_id_txt'] = 'Site pai'; +$wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho para redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['vhost_type_txt'] = 'Tipo de vhost'; -$wb['hd_quota_txt'] = 'Cota de disco'; -$wb['traffic_quota_txt'] = 'Cota de tráfego'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; +$wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; -$wb['limit_web_domain_txt'] = 'o limite de domÃnios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domÃnio de site para esta conta foi alcançado.'; +$wb['limit_web_domain_txt'] = 'O limite de domÃnios de site para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; $wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'Já existe apelido de domÃnio ou subdomÃnio com este nome.'; -$wb['domain_error_regex'] = 'Nome de domÃnio é inválido.'; -$wb['host_txt'] = 'Nome do servidor'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou alias de domÃnio com este nome.'; +$wb['domain_error_regex'] = 'O domÃnio é inválido.'; +$wb['domain_error_acme_invalid'] = 'DomÃnio genérico inválido não permitido.'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomÃnios.'; +$wb['host_txt'] = 'Host'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; -$wb['domain_error_wildcard'] = 'Curingas para subdomÃnios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponÃveis:'; -$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \"proxy\" exige uma url no caminho de redirecionamento.'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias do backup'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento "proxy" exige uma URL como caminho de redirecionamento.'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['ssl_key_txt'] = 'Chave'; -$wb['ssl_domain_txt'] = 'DomÃnio do SSL'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \"/\".'; +$wb['ssl_domain_txt'] = 'DomÃnio'; +$wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize o caractere barra(/).'; $wb['ipv6_address_txt'] = 'Endereço IPv6'; -$wb['errordocs_txt'] = 'Pasta personalizada Error-Documents'; +$wb['errordocs_txt'] = 'Proprietário do Error-Documents'; $wb['subdomain_txt'] = 'SubdomÃnio automático'; $wb['domain_error_autosub'] = 'Já existe um subdomÃnio com estas configurações.'; -$wb['hd_quota_error_empty'] = 'Cota de disco é 0 ou está em branco.'; +$wb['hd_quota_error_empty'] = 'Cota do disco é 0 ou está em branco.'; $wb['traffic_quota_error_empty'] = 'Cota de tráfego está em branco.'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Organização\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'PaÃs\' está em branco.'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' em branco'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "PaÃs" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; $wb['client_group_id_txt'] = 'Cliente'; $wb['stats_password_txt'] = 'Configurar senha para estatÃsticas web'; -$wb['allow_override_txt'] = 'Diretiva apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Cota de disco'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'PaÃs\' é inválido. São caracteres válidos: \'A-Z\'.'; -$wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego'; +$wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Limite da cota de disco disponÃvel'; +$wb['ssl_state_error_regex'] = 'O campo "Estado" é inválido. Caracteres válidos são: "a-z", "0-9",".", "-", e "_".'; +$wb['ssl_locality_error_regex'] = 'O campo "Cidade" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organisation_error_regex'] = 'O campo "Empresa" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'O campo "Departamento" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_country_error_regex'] = 'O campo "PaÃs" é inválido. Caracteres válidos são: "A-Z".'; +$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego disponÃvel'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; -$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego alcançada'; +$wb['traffic_quota_exceeded_txt'] = 'O limite da cota de tráfego foi alcançado.'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Usuário para estatÃsticas web'; -$wb['stats_type_txt'] = 'Programa para estatÃsticas web'; +$wb['stats_user_txt'] = 'Usuário de estatÃsticas web'; +$wb['stats_type_txt'] = 'Sistema de estatÃsticas web'; $wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini'; $wb['none_txt'] = 'Nenhum'; -$wb['disabled_txt'] = 'Inativo'; +$wb['disabled_txt'] = 'Desabilitado'; $wb['save_certificate_txt'] = 'Salvar certificado'; $wb['create_certificate_txt'] = 'Adicionar certificado'; $wb['delete_certificate_txt'] = 'Remover certificado'; $wb['nginx_directives_txt'] = 'Diretivas do nginx'; -$wb['seo_redirect_txt'] = 'Redirecionamento SEO'; -$wb['non_www_to_www_txt'] = 'Diretivas Non-www -> www'; -$wb['www_to_non_www_txt'] = 'Diretivas www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Usar soquete para PHP-FPM'; -$wb['error_no_sni_txt'] = 'SNI para SSL não está ativo neste servidor. Você só pode ativar um certificado SSL para cada endereço IP.'; +$wb['seo_redirect_txt'] = 'Diretivas SEO'; +$wb['non_www_to_www_txt'] = 'non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Usar socket para php-fpm'; +$wb['error_no_sni_txt'] = 'SNI para SSL não está habilitado neste servidor. Somente poderá ser habilitado um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; -$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; -$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers'; -$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers'; -$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Valores para as configurações do PHP-FPM pm devem obedecer as seguintes condições: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.'; -$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.'; -$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.'; -$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.'; -$wb['hd_quota_error_regex'] = 'Valor da cota de disco é inválido.'; -$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é inválido.'; -$wb['fastcgi_php_version_txt'] = 'Versão do PHP'; -$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM'; -$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout'; -$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.'; -$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponÃveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponÃveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponÃveis:'; -$wb['Domain'] = 'Apelido de domÃnio'; -$wb['ssl_letsencrypt_exclude_txt'] = 'Não adicionar certificado Let\'s Encrypt'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['server_php_id_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponÃveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponÃveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponÃveis:'; +$wb['Domain'] = 'Alias de domÃnio'; +$wb['ssl_letsencrypt_exclude_txt'] = 'Sem certificado Let \'s Encrypt'; ?> diff --git a/interface/web/sites/lib/lang/br_web_childdomain_list.lng b/interface/web/sites/lib/lang/br_web_childdomain_list.lng index 20b559b128ad756ccd55299f2fc15a85b1bdd6f7..583ae2d3609d8a27600d4228ac0fcbab99b562f3 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain_list.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain_list.lng @@ -4,15 +4,15 @@ $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Site'; $wb['domain_txt'] = 'SubdomÃnio'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'O nome do domÃnio deve ser exclusivo.'; -$wb['domain_error_regex'] = 'Nome do domÃnio é inválido.'; +$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomÃnio'; +$wb['add_new_aliasdomain_txt'] = 'Adicionar novo alias de domÃnio'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; +$wb['domain_error_unique'] = 'O domÃnio deve ser exclusivo.'; +$wb['domain_error_regex'] = 'O domÃnio é inválido.'; +$wb['domain_error_acme_invalid'] = 'DomÃnio genérico inválido não permitido.'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['none_txt'] = 'Nenhum'; -$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomÃnio'; -$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido'; -$wb['aliasdomain_list_head_txt'] = 'Apelidos de domÃnios'; +$wb['aliasdomain_list_head_txt'] = 'Alias de domÃnios'; $wb['subdomain_list_head_txt'] = 'SubdomÃnios'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index f0fdabb75fc804d157f7fcece4acf9248584d1a4..31b39974f19d11b7137866aca6aea10b2a378780 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -1,116 +1,115 @@ <?php +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['ssl_state_txt'] = 'Estado'; $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; $wb['ssl_organisation_unit_txt'] = 'Departamento'; $wb['ssl_country_txt'] = 'PaÃs'; +$wb['ssl_key_txt'] = 'Chave'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; +$wb['ssl_domain_txt'] = 'DomÃnio'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; +$wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize o caractere barra(/).'; $wb['type_txt'] = 'Tipo'; -$wb['parent_domain_id_txt'] = 'Site pai'; +$wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho do redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; -$wb['document_root_txt'] = 'Diretório Documentroot'; +$wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; -$wb['ip_address_txt'] = 'Endereço IP'; -$wb['vhost_type_txt'] = 'Tipo de VHost'; -$wb['hd_quota_txt'] = 'Cota de disco'; -$wb['traffic_quota_txt'] = 'Cota de tráfego'; +$wb['ip_address_txt'] = 'Endereço IPv4'; +$wb['ipv6_address_txt'] = 'Endereço IPv6'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; +$wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; -$wb['errordocs_txt'] = 'Páginas de erro personalizadas (error-documents)'; +$wb['errordocs_txt'] = 'Proprietário do Error-Documents'; $wb['subdomain_txt'] = 'SubdomÃnio automático'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; $wb['limit_web_domain_txt'] = 'O limite de domÃnios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domÃnio domÃnio para esta conta foi alcançado.'; -$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; +$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'Já existe site, apelido ou subdomÃnio com este nome'; -$wb['domain_error_regex'] = 'Nome de domÃnio é inválido.'; -$wb['hd_quota_error_empty'] = 'Cota de disco está em branco.'; +$wb['domain_error_empty'] = 'O campo "DomÃnio" está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou alias de domÃnio com este nome.'; +$wb['domain_error_regex'] = 'O campo "DomÃnio" é inválido.'; +$wb['domain_error_autosub'] = 'Já existe um subdomÃnio com estas configurações.'; +$wb['hd_quota_error_empty'] = 'Cota do disco é 0 ou está em branco.'; $wb['traffic_quota_error_empty'] = 'Cota de tráfego está em branco.'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Empresa\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'PaÃs\' está em branco.'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'o Campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "PaÃs" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; $wb['client_group_id_txt'] = 'Cliente'; -$wb['stats_password_txt'] = 'Senha do diretório de estatÃsticas'; -$wb['ssl_domain_txt'] = 'DomÃnio'; -$wb['allow_override_txt'] = 'Permitir Sobrescrever'; -$wb['limit_web_quota_free_txt'] = 'Cota máxima de disco disponÃvel'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \\"a-z\\", \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'PaÃs\' é inválido. São caracteres válidos: \'A-Z\'.'; -$wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponÃvel'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['stats_password_txt'] = 'Configurar senha para estatÃsticas web'; +$wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Limite da cota do disco disponÃvel'; +$wb['ssl_locality_error_regex'] = 'O campo "Cidade" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organisation_error_regex'] = 'O campo "Empresa" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'O campo "Departamento" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_country_error_regex'] = 'O campo "PaÃs" é inválido. São caracteres válidos: "A-Z".'; +$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego disponÃvel'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; -$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias'; +$wb['traffic_quota_exceeded_txt'] = 'O limite da cota de tráfego foi alcançado.'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Usuário para estatÃsticas web'; -$wb['stats_type_txt'] = 'Tipo de estatÃsticas web'; -$wb['custom_php_ini_txt'] = 'php.ini personalizado'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' vazio'; -$wb['none_txt'] = 'Nenhuma'; +$wb['stats_user_txt'] = 'Usuário de estatÃsticas web'; +$wb['stats_type_txt'] = 'Sistema de estatÃsticas web'; +$wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini'; +$wb['none_txt'] = 'Nenhum'; $wb['disabled_txt'] = 'Desabilitado'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; -$wb['save_certificate_txt'] = 'Salvar certificado'; -$wb['create_certificate_txt'] = 'Adicionar certificado'; -$wb['delete_certificate_txt'] = 'Remover certificado'; -$wb['ipv6_address_txt'] = 'Endereço IPv6'; -$wb['nginx_directives_txt'] = 'Diretivas nginx'; -$wb['seo_redirect_txt'] = 'Redirecionamento SEO'; -$wb['non_www_to_www_txt'] = 'Diretiva Non-www -> www'; -$wb['www_to_non_www_txt'] = 'Diretiva www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Usar soquete para PHP-FPM'; -$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.'; +$wb['save_certificate_txt'] = 'Salvar Certificado'; +$wb['create_certificate_txt'] = 'Adicionar Certificado'; +$wb['delete_certificate_txt'] = 'Remover Certificado'; +$wb['nginx_directives_txt'] = 'Diretivas do nginx'; +$wb['seo_redirect_txt'] = 'Diretivas SEO'; +$wb['non_www_to_www_txt'] = 'non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Usar socket para php-fpm'; +$wb['error_no_sni_txt'] = 'SNI para SSL não está habilitado neste servidor. Somente poderá ser habilitado um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; -$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; -$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers'; -$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers'; -$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Valores para as configurações do PHP-FPM pm devem obedecer as seguintes condições: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.'; -$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um inteiro positvo.'; -$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.'; -$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.'; -$wb['hd_quota_error_regex'] = 'Valor da cota de disco é é inválido.'; -$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é é inválido.'; -$wb['ssl_key_txt'] = 'Chave'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Versão do PHP'; -$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM'; -$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout'; -$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.'; -$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \\"/\\".'; -$wb['domain_error_autosub'] = 'Já existe um subdomÃnio com estas configurações.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx:'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['server_php_id_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponÃveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponÃveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponÃveis:'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; -$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy:'; +$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponÃveis:'; $wb['no_server_error'] = 'Nenhum servidor selecionado.'; $wb['no_backup_txt'] = 'Sem backup'; $wb['daily_backup_txt'] = 'Diário'; @@ -118,20 +117,20 @@ $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; $wb['rewrite_rules_txt'] = 'Reescrever Regras'; $wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas'; -$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; -$wb['added_by_txt'] = 'Cadastrado por'; +$wb['added_by_txt'] = 'Cadastrador por'; $wb['added_date_txt'] = 'Data do cadastro'; -$wb['backup_excludes_txt'] = 'Diretórios excluÃdos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgula. Exemplo: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos contém caracteres inválidos!'; +$wb['backup_excludes_txt'] = 'Diretórios ExcluÃdos'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos possuem caracteres inválidos.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Configurações do php.ini inválidas'; -$wb['invalid_system_user_or_group_txt'] = 'Configurações inválidas para usuário ou grupo do sistema'; -$wb['apache_directive_blocked_error'] = 'Diretiva do apache bloqueada por configurações de segurança:'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; -$wb['nginx_directive_blocked_error'] = 'Nginx directive blocked by security settings:'; +$wb['invalid_system_user_or_group_txt'] = 'Usuário ou grupo inválido.'; +$wb['apache_directive_blocked_error'] = 'Diretivas do apache bloqueadas pelas configurações de segurança:'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; +$wb['nginx_directive_blocked_error'] = 'Diretivas do nginx bloqueadas pelas configurações de segurança:'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder.lng b/interface/web/sites/lib/lang/br_web_folder.lng index 34a3f65b0cc159a32b6b6de47980fc4654ef37ad..193cb4636f3915db018a9ac73f0d64a6eaeef2d4 100644 --- a/interface/web/sites/lib/lang/br_web_folder.lng +++ b/interface/web/sites/lib/lang/br_web_folder.lng @@ -4,5 +4,5 @@ $wb['parent_domain_id_txt'] = 'Site'; $wb['path_txt'] = 'Caminho'; $wb['active_txt'] = 'Ativo'; $wb['path_error_regex'] = 'Caminho da pasta é inválido.'; -$wb['error_folder_already_protected_txt'] = 'Já existe um registro para esta pasta.'; +$wb['error_folder_already_protected_txt'] = 'Já existe esta pasta.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_user.lng b/interface/web/sites/lib/lang/br_web_folder_user.lng index dd63d02eec70f6580bd5e6289c81e099cb71d3ef..5dc0354fec4e260c2d04a005a128b459a9cac9e4 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user.lng @@ -1,14 +1,14 @@ <?php -$wb['web_folder_id_txt'] = 'Pastas protegidas'; +$wb['web_folder_id_txt'] = 'Pasta'; $wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; $wb['active_txt'] = 'Ativo'; $wb['folder_error_empty'] = 'Nenhuma pasta selecionada.'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['no_folder_perm'] = 'Você não tem permissão para esta pasta.'; $wb['error_user_exists_already_txt'] = 'Já existe um registro igual para este usuário.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_user_list.lng b/interface/web/sites/lib/lang/br_web_folder_user_list.lng index e108c219b91e6e0772224d884cfd5c4d942a8046..8ad8c48257b12d8a02aef7859366ba7ca00ba99f 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user_list.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Usuários de pastas'; +$wb['list_head_txt'] = 'Usuário de Pasta'; $wb['active_txt'] = 'Ativo'; -$wb['web_folder_id_txt'] = 'ID da pasta'; +$wb['web_folder_id_txt'] = 'Pasta'; $wb['username_txt'] = 'Usuário'; $wb['add_new_record_txt'] = 'Adicionar novo usuário'; ?> diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng index 8abb0504384c4b66164b0dde23a133686dd1d794..53cb94ab5459f590e418071ea2111d08b8e0f464 100644 --- a/interface/web/sites/lib/lang/br_web_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_subdomain.lng @@ -6,21 +6,21 @@ $wb['ssl_organisation_unit_txt'] = 'Departamento'; $wb['ssl_country_txt'] = 'PaÃs'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; -$wb['redirect_type_txt'] = 'Tipo do Redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho do Redirecionamento'; +$wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['vhost_type_txt'] = 'Tipo VHost'; -$wb['hd_quota_txt'] = 'Cota de Disco'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; $wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; @@ -29,22 +29,22 @@ $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; $wb['limit_web_domain_txt'] = 'O limite de domÃnios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domÃnio para esta conta foi alcançado.'; -$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; +$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'Já existe apelido de domÃnio ou subdomÃnio com este nome.'; -$wb['domain_error_regex'] = 'Nome do domÃnio é inválido.'; +$wb['domain_error_empty'] = 'O domÃnio está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou alias de domÃnio com este nome.'; +$wb['domain_error_regex'] = 'O domÃnio é inválido.'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomÃnios.'; $wb['host_txt'] = 'Host'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; -$wb['domain_error_wildcard'] = 'Curingas de subdomÃnios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponÃveis:'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \'proxy\' exige uma URL como caminho de redirecionamento.'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento "proxy" exige uma URL como caminho de redirecionamento.'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index 413863f1ebbfa3d863413e1823e6be7426007f25..706125676af0a28667a76783cd7cdc423b39a2d7 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -1,116 +1,118 @@ <?php +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['ssl_state_txt'] = 'Estado'; $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; $wb['ssl_organisation_unit_txt'] = 'Departamento'; $wb['ssl_country_txt'] = 'PaÃs'; +$wb['ssl_key_txt'] = 'Chave'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; +$wb['ssl_domain_txt'] = 'DomÃnio'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; +$wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize o caractere barra(/).'; $wb['type_txt'] = 'Tipo'; -$wb['parent_domain_id_txt'] = 'Site Parente'; -$wb['redirect_type_txt'] = 'Tipo Redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho do redirecionamento'; +$wb['parent_domain_id_txt'] = 'Site Pai'; +$wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; -$wb['document_root_txt'] = 'Pasta personalizada documentroot'; +$wb['document_root_txt'] = 'Document-root'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; -$wb['ip_address_txt'] = 'Endereço IP'; -$wb['vhost_type_txt'] = 'Tipo VHost'; -$wb['hd_quota_txt'] = 'Cota de Disco'; +$wb['ip_address_txt'] = 'Endereço IPv4'; +$wb['ipv6_address_txt'] = 'Endereço IPv6'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; $wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; -$wb['errordocs_txt'] = 'Pasta personalizada errordocuments'; +$wb['errordocs_txt'] = 'Proprietário do Error-Documents'; $wb['subdomain_txt'] = 'SubdomÃnio automático'; $wb['ssl_txt'] = 'SSL'; -$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; $wb['limit_web_domain_txt'] = 'O limite de domÃnios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domÃnio de site para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; $wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'Já existe site, apelido de domÃnio ou subdomÃnio com este nome'; -$wb['domain_error_regex'] = 'Nome do domÃnio é inválido.'; -$wb['hd_quota_error_empty'] = 'Cota de disco está em branco.'; +$wb['domain_error_empty'] = 'O campo "DomÃnio" está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou alias de domÃnio com este nome.'; +$wb['domain_error_regex'] = 'O campo "DomÃnio" é inválido.'; +$wb['domain_error_acme_invalid'] = 'DomÃnio genérico inválido não permitido.'; +$wb['domain_error_autosub'] = 'Já existe um subdomÃnio com estas configurações.'; +$wb['hd_quota_error_empty'] = 'Cota do disco é 0 ou está em branco.'; $wb['traffic_quota_error_empty'] = 'Cota de tráfego está em branco.'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Empresa\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'PaÃs\' está em branco.'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "PaÃs" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; $wb['client_group_id_txt'] = 'Cliente'; -$wb['stats_password_txt'] = 'Senha do diretório de estatÃsticas'; -$wb['ssl_domain_txt'] = 'DomÃnio SSL'; -$wb['allow_override_txt'] = 'Permitir sobrescrever'; -$wb['limit_web_quota_free_txt'] = 'Cota de disco máxima'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'PaÃs\' é inválido. São caracteres válidos: \'A-Z\'.'; -$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['stats_password_txt'] = 'Configurar senha para estatÃsticas web'; +$wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Limite da cota de disco disponÃvel'; +$wb['ssl_state_error_regex'] = 'O campo "Estado" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_locality_error_regex'] = 'O campo "Cidade" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organisation_error_regex'] = 'O campo "Empresa" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'O campo "Departamento" é inválido. São caracteres válidos: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_country_error_regex'] = 'O campo "PaÃs" é inválido. São caracteres válidos: "A-Z".'; +$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego disponÃvel'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; -$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias'; +$wb['traffic_quota_exceeded_txt'] = 'O limite da cota de tráfego foi alcançado.'; $wb['ruby_txt'] = 'Ruby'; $wb['stats_user_txt'] = 'Usuário de estatÃsticas web'; -$wb['stats_type_txt'] = 'Tipo de estatÃstica web'; -$wb['custom_php_ini_txt'] = 'php.ini personalizado'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' em branco'; -$wb['none_txt'] = 'Nenhuma'; +$wb['stats_type_txt'] = 'Sistema de estatÃsticas web'; +$wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini'; +$wb['none_txt'] = 'Nenhum'; $wb['disabled_txt'] = 'Desabilitado'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; -$wb['save_certificate_txt'] = 'Salvar certificado'; -$wb['create_certificate_txt'] = 'Adicionar certificado'; -$wb['delete_certificate_txt'] = 'Remover certificado'; -$wb['ipv6_address_txt'] = 'Endereço IPv6'; +$wb['save_certificate_txt'] = 'Salvar Certificado'; +$wb['create_certificate_txt'] = 'Adicionar Certificado'; +$wb['delete_certificate_txt'] = 'Remover Certificado'; $wb['nginx_directives_txt'] = 'Diretivas do nginx'; -$wb['seo_redirect_txt'] = 'Redirecionamento SEO'; -$wb['non_www_to_www_txt'] = 'Diretivas Non-www -> www'; -$wb['www_to_non_www_txt'] = 'Diretivas www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM'; -$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; -$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.'; +$wb['seo_redirect_txt'] = 'Diretivas SEO'; +$wb['non_www_to_www_txt'] = 'non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Usar socket para php-fpm'; +$wb['php_fpm_chroot_txt'] = 'Chroot php-fpm'; +$wb['error_no_sni_txt'] = 'SNI para SSL não está habilitado neste servidor. Somente poderá ser habilitado um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; -$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; -$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers'; -$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers'; -$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Valores permitidos para configurações do PHP-FPM pm devem obedecer os critérios: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.'; -$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.'; -$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.'; -$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.'; -$wb['hd_quota_error_regex'] = 'Valor da cota de disco é inválido.'; -$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é inválido.'; -$wb['ssl_key_txt'] = 'Chave'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Versão do PHP'; -$wb['pm_txt'] = 'Gerenciador de processos do PHP-FPM'; -$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout'; -$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.'; -$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \"\\".'; -$wb['domain_error_autosub'] = 'Já existe um subdomÃnio com essas configurações.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponÃveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponÃveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponÃveis:'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['server_php_id_txt'] = 'Versão do php'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponÃveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponÃveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponÃveis:'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponÃveis:'; $wb['no_server_error'] = 'Nenhum servidor selecionado.'; @@ -118,38 +120,71 @@ $wb['no_backup_txt'] = 'Sem backup'; $wb['daily_backup_txt'] = 'Diário'; $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; -$wb['rewrite_rules_txt'] = 'Regras de reescrita'; +$wb['rewrite_rules_txt'] = 'Reescrever Regras'; $wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas'; $wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; -$wb['web_folder_txt'] = 'Pasta web'; -$wb['web_folder_invalid_txt'] = 'A pasta web informada é inválida, por favor escolha um nome diferente.'; -$wb['web_folder_unique_txt'] = 'A pasta web informada já existe, por favor escolha um nome diferente.'; -$wb['host_txt'] = 'Nome do servidor'; -$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomÃnios.'; +$wb['server_chosen_not_ok'] = 'O servidor selecionado não é permitido para esta conta.'; $wb['variables_txt'] = 'Variáveis'; $wb['added_by_txt'] = 'Cadastrado por'; $wb['added_date_txt'] = 'Data do cadastro'; -$wb['backup_excludes_txt'] = 'Diretórios excluÃdos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgulas. Exemplo: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos contém caracteres inválidos.'; -$wb['server_chosen_not_ok'] = 'O servidor selecionado não é permitido para esta conta.'; -$wb['subdomain_error_empty'] = 'O campo subdomÃnio está em branco ou contém caracteres inválidos.'; +$wb['backup_excludes_txt'] = 'Diretórios ExcluÃdos'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos possuem caracteres inválidos.'; +$wb['web_folder_txt'] = 'Pasta web'; +$wb['web_folder_invalid_txt'] = 'A pasta web é inválida, por favor selecione outra.'; +$wb['web_folder_unique_txt'] = 'A pasta web é já está em uso, por favor selecione outra.'; +$wb['host_txt'] = 'Nome do host'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomÃnios.'; +$wb['variables_txt'] = 'Variáveis'; +$wb['backup_excludes_txt'] = 'Diretórios ExcluÃdos'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos possuem caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O subdomÃnio está em branco ou possui caracteres inválidos.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['enable_spdy_txt'] = 'Habilitar SPDY/HTTP2'; -$wb['load_client_data_txt'] = 'Carregas detalhes do cliente'; +$wb['load_client_data_txt'] = 'Carregar detalhes do cliente'; $wb['load_my_data_txt'] = 'Carregar detalhes do contato'; $wb['reset_client_data_txt'] = 'Limpar dados'; +$wb['document_root_txt'] = 'Document Root'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL'; $wb['rewrite_to_https_txt'] = 'Reescrever HTTP para HTTPS'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['directive_snippets_id_txt'] = 'Configurações do servidor de páginas'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; +$wb['directive_snippets_id_txt'] = 'Configurações do servidor web'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; $wb['enable_pagespeed_txt'] = 'Habilitar PageSpeed'; -$wb['log_retention_txt'] = 'Tempo de armazenamenro dos arquivos de log'; -$wb['log_retention_error_regex'] = 'Tempo de armazenamento, em dias (valores permitidos: min. 0 - max. 9999)'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['log_retention_txt'] = 'Tempo de retenção do log de arquivos'; +$wb['log_retention_error_regex'] = 'Tempo de retenção em dias (valores permitidos: mÃnimo 0, máximo 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Cota de disco não pode ser configurada para 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng index 6b1385926dd838fcb39cbe80d3b183af77ceb4ac..3c0c7fd01e6af17c4028406ff2842683e6e3797f 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng @@ -7,8 +7,8 @@ $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['add_new_record_txt'] = 'Adicionar novo site'; $wb['add_new_subdomain_txt'] = 'Adicionar novo subdomÃnio'; -$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido de domÃnio'; +$wb['add_new_aliasdomain_txt'] = 'Adicionar novo alias de domÃnio'; $wb['domain_list_head_txt'] = 'Sites'; -$wb['aliasdomain_list_head_txt'] = 'Apelidos de domÃnios (vhost)'; +$wb['aliasdomain_list_head_txt'] = 'Alias de domÃnio (vhost)'; $wb['subdomain_list_head_txt'] = 'SubdomÃnios (vhost)'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng index e8fb6bfb09affba325b03f2790ff3f7d047fd5e0..8170afc2d3de1896df14ae91899b56c700369f03 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng @@ -5,10 +5,10 @@ $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; $wb['add_new_record_txt'] = 'Adicionar novo site'; -$wb['parent_domain_id_txt'] = 'Site'; $wb['add_new_subdomain_txt'] = 'Adicionar novo subdomÃnio'; -$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido'; +$wb['add_new_aliasdomain_txt'] = 'Adicionar novo alias de domÃnio'; +$wb['parent_domain_id_txt'] = 'Site'; $wb['domain_list_head_txt'] = 'Sites'; -$wb['aliasdomain_list_head_txt'] = 'Apelidos de domÃnios (vhost)'; +$wb['aliasdomain_list_head_txt'] = 'Alias de domÃnio (vhost)'; $wb['subdomain_list_head_txt'] = 'SubdomÃnios (vhost)'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng index 8a0c3e6a1fae58ad51d757c5feb04a2cc1fae92d..03526d049b00b294c6dba728d85944e1ee8c87c5 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -1,10 +1,10 @@ <?php $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['web_folder_txt'] = 'Pasta web'; -$wb['web_folder_invalid_txt'] = 'A pasta web informada é inválida, por favor insira um nome diferente.'; -$wb['web_folder_unique_txt'] = 'A pasta web informada já existe, por favor insira um nome diferente.'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias do backup'; +$wb['web_folder_invalid_txt'] = 'A pasta é escolhida é inválida, por favor escolha outra.'; +$wb['web_folder_unique_txt'] = 'A pasta web escolhida está em uso, por favor escolha outra.'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['ssl_state_txt'] = 'Estado'; $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; @@ -13,65 +13,66 @@ $wb['ssl_country_txt'] = 'PaÃs'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_domain_txt'] = 'DomÃnio'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'DomÃnio'; -$wb['host_txt'] = 'Hostname'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \"/\".'; +$wb['host_txt'] = 'Nome do host'; +$wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize o caractere barra(/).'; $wb['type_txt'] = 'Tipo'; +$wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho para redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; $wb['ip_address_txt'] = 'Endereço IPv4'; $wb['ipv6_address_txt'] = 'Endereço IPv6'; -$wb['vhost_type_txt'] = 'Tipo vhost'; -$wb['hd_quota_txt'] = 'Cota de Disco'; -$wb['traffic_quota_txt'] = 'Cota de Tráfego'; +$wb['vhost_type_txt'] = 'Tipo do vHost'; +$wb['hd_quota_txt'] = 'Cota de disco'; +$wb['traffic_quota_txt'] = 'Cota de tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; -$wb['errordocs_txt'] = 'Páginas de erro personalizadas (error-documents)'; +$wb['errordocs_txt'] = 'Proprietário do error-documents'; $wb['subdomain_txt'] = 'SubdomÃnio automático'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; $wb['limit_web_domain_txt'] = 'O limite de domÃnios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domÃnio para esta conta foi alcançado.'; -$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios site para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domÃnios para esta conta foi alcançado.'; +$wb['limit_web_subdomain_txt'] = 'O limite de subdomÃnios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'DomÃnio está em branco.'; -$wb['domain_error_unique'] = 'Já existe um site, apelido de domÃnio ou subdomÃnio para este domÃnio.'; -$wb['domain_error_regex'] = 'Nome do domÃnio é inválido.'; -$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomÃnios'; -$wb['hd_quota_error_empty'] = 'Valor da cota de disco é 0 ou está em branco.'; -$wb['traffic_quota_error_empty'] = 'Valor da cota de tráfego está em branco.'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Empresa\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'PaÃs\' está em branco.'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' está em branco.'; +$wb['domain_error_empty'] = 'O campo "DomÃnio" está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomÃnio ou alias de domÃnio com este nome.'; +$wb['domain_error_regex'] = 'O campo "DomÃnio" é inválido.'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomÃnios.'; +$wb['hd_quota_error_empty'] = 'Cota do disco é 0 ou está em branco.'; +$wb['traffic_quota_error_empty'] = 'Cota de tráfego está em branco.'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "PaÃs" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; $wb['client_group_id_txt'] = 'Cliente'; -$wb['stats_password_txt'] = 'Senha para estatÃsticas web'; +$wb['stats_password_txt'] = 'Configurar senha para estatÃsticas web'; $wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Cota de disco'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \".,-_\".'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'PaÃs\' é inválido. Caracteres válidos são: \'A-Z\'.'; -$wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; -$wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; -$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; +$wb['limit_web_quota_free_txt'] = 'Limite disponÃvel da cota de disco'; +$wb['ssl_state_error_regex'] = 'O campo "Estado" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_locality_error_regex'] = 'O campo "Cidade" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organisation_error_regex'] = 'O campo "Empresa" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'O campo "Departamento" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_country_error_regex'] = 'O campo "PaÃs" é inválido. Caracteres válidos são: "A-Z".'; +$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego disponÃvel'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; +$wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; +$wb['traffic_quota_exceeded_txt'] = 'O limite da cota de tráfego foi alcançado.'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Usuário para estatÃsticas web'; -$wb['stats_type_txt'] = 'Programa para estatÃsticas web'; +$wb['stats_user_txt'] = 'Usuário de estatÃsticas web'; +$wb['stats_type_txt'] = 'Sistema de estatÃsticas web'; $wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini'; $wb['none_txt'] = 'Nenhum'; $wb['disabled_txt'] = 'Desabilitado'; @@ -81,51 +82,51 @@ $wb['save_certificate_txt'] = 'Salvar certificado'; $wb['create_certificate_txt'] = 'Adicionar certificado'; $wb['delete_certificate_txt'] = 'Remover certificado'; $wb['nginx_directives_txt'] = 'Diretivas do nginx'; -$wb['seo_redirect_txt'] = 'Redirecionamento SEO'; -$wb['non_www_to_www_txt'] = 'Diretivas Non-www -> www'; -$wb['www_to_non_www_txt'] = 'Diretivas www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM'; -$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.'; +$wb['seo_redirect_txt'] = 'Diretivas SEO'; +$wb['non_www_to_www_txt'] = 'non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Usar socket para php-fpm'; +$wb['error_no_sni_txt'] = 'SNI para SSL não está habilitado neste servidor. Somente poderá ser habilitado um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; -$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; -$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers'; -$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers'; -$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Valores permitidos para configurações do PHP-FPM pm devem obedecer os critérios: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.'; -$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.'; -$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.'; -$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.'; -$wb['hd_quota_error_regex'] = 'Valor da cota de disco é inválido.'; -$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é inválido.'; -$wb['fastcgi_php_version_txt'] = 'Versão do PHP'; -$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM'; -$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout'; -$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.'; -$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponÃveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponÃveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponÃveis:'; -$wb['proxy_directives_txt'] = 'Diretivas do Proxy'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['server_php_id_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponÃveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponÃveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponÃveis:'; +$wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponÃveis:'; -$wb['rewrite_rules_txt'] = 'Regras de Reescrita'; +$wb['rewrite_rules_txt'] = 'Reescrever regras'; $wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas'; -$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; $wb['backup_excludes_txt'] = 'Diretórios ExcluÃdos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgulas. Exemplo: \"web/cache/*,web/backup\".)'; -$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos contém caracteres inválidos.'; -$wb['subdomain_error_empty'] = 'O campo \"SubdomÃnio\" está em branco ou contém caracteres inválidos.'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vÃrgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluÃdos possuem caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O subdomÃnio está em branco ou possui caracteres inválidos.'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; ?> diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng index b135d5e0faa3b5b318d73441c6ee07093600306e..485e3a77478c3aca99dff4cdb38dde32bfe2732a 100644 --- a/interface/web/sites/lib/lang/br_webdav_user.lng +++ b/interface/web/sites/lib/lang/br_webdav_user.lng @@ -7,15 +7,15 @@ $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['active_txt'] = 'Ativo'; $wb['limit_webdav_user_txt'] = 'O limite de usuários webdav para esta conta foi alcançado.'; -$wb['username_error_empty'] = 'Usuário está em branco.'; +$wb['username_error_empty'] = 'O nome do usuário está em branco.'; $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; -$wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; -$wb['directory_error_empty'] = 'Diretório está em branco.'; +$wb['username_error_regex'] = 'O nome de usuário possui caracteres não permitidos.'; +$wb['directory_error_empty'] = 'O diretório está em branco.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['dir_dot_error'] = 'Não é permitido \'..\' no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \'./\' no caminho.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; ?> diff --git a/interface/web/sites/lib/lang/ca_aps.lng b/interface/web/sites/lib/lang/ca_aps.lng index bbf799bb39d310822b2002e3a8383d9e799fb903..062d6ea58953a803c25c6bbea425826681c9e758 100644 --- a/interface/web/sites/lib/lang/ca_aps.lng +++ b/interface/web/sites/lib/lang/ca_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Vérification du mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['password_strength_txt'] = 'Force du mot de passe'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/ca_web_aliasdomain.lng b/interface/web/sites/lib/lang/ca_web_aliasdomain.lng index 92c9c3553872723e7520f8e13a0eb05468f61b88..990a5342ccaefe08ff10312f532989909a2e06b4 100644 --- a/interface/web/sites/lib/lang/ca_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.min_spare_ser $wb['pm_max_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.max_spare_servers doit être un entier positif.'; $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_backup_list.lng b/interface/web/sites/lib/lang/ca_web_backup_list.lng index 97b04a0c0508d02e78e99194e1efbd06b05affe8..89d40ddb05a007a56bae2b1b50b2e6a12836fc91 100644 --- a/interface/web/sites/lib/lang/ca_web_backup_list.lng +++ b/interface/web/sites/lib/lang/ca_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak $wb['delete_confirm_txt'] = 'Really delete this backup?'; $wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/ca_web_childdomain.lng b/interface/web/sites/lib/lang/ca_web_childdomain.lng index 762acfe244fe2f8c158625c679821afe56d7740d..c766bae8818d3b1c3583a72f0c85cf8a6bd261b0 100644 --- a/interface/web/sites/lib/lang/ca_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_domain.lng b/interface/web/sites/lib/lang/ca_web_domain.lng index a3475c43c2d58dd7b3e2232032926af144882c71..c240d5c349f1eba4fce560515d81c0c19bceac11 100644 --- a/interface/web/sites/lib/lang/ca_web_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; $wb['ssl_key_txt'] = 'Clé SSL'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng index c9cdb68c9a4a320d728d74d1c8696995a4c24702..8d0e6604928f58179cc951d5a17408d388a12b7a 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -97,7 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng index c9a46866089adc1e4bc6c1d21d3560087f9d215e..faae8ba2b0f89f3d777366f7d8d75db1bdf5e356 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng index 36bc6816f419dbfa3dfe61d2bc6d876c897b5737..adf6ccf58eaecf0647bf841f5db7053d16c9bcba 100644 --- a/interface/web/sites/lib/lang/cz_aps.lng +++ b/interface/web/sites/lib/lang/cz_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['password_strength_txt'] = 'BezpeÄnost hesla'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/cz_aps_instances_list.lng b/interface/web/sites/lib/lang/cz_aps_instances_list.lng index 8d712878d71f47ae1cda12f319e0765968ddd45a..db4494af0259af245294439ae9800b69b5d281d3 100644 --- a/interface/web/sites/lib/lang/cz_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/cz_aps_instances_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'Nainstalované balÃÄky'; $wb['name_txt'] = 'Jméno'; $wb['version_txt'] = 'Verze'; $wb['customer_txt'] = 'Klient'; -$wb['status_txt'] = 'Status'; +$wb['status_txt'] = 'Stav'; $wb['install_location_txt'] = 'UmÃstÄ›nà instalace'; $wb['pkg_delete_confirmation'] = 'Opravdu chcete smazat tuto instalaci ?'; $wb['filter_txt'] = 'Hledat'; diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng index 57b920156d5b59864eb014e7bf7ca4f39a142438..9861b62046170895e441dc45bd17a6d8a5de641a 100644 --- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_backup_list.lng b/interface/web/sites/lib/lang/cz_web_backup_list.lng index 9674e6197a2f1cb4256df548a622c78c78e4a660..e881afca1251c883acd2b6291ad6ddcce482bf79 100644 --- a/interface/web/sites/lib/lang/cz_web_backup_list.lng +++ b/interface/web/sites/lib/lang/cz_web_backup_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'StávajÃcà zálohy'; +$wb['list_head_txt'] = 'Dostupné zálohy'; $wb['date_txt'] = 'Datum'; $wb['backup_type_txt'] = 'Verze'; $wb['filename_txt'] = 'Záloha souborů'; @@ -16,6 +16,38 @@ $wb['filesize_txt'] = 'Velikost souboru'; $wb['delete_backup_txt'] = 'Smazat zálohu'; $wb['delete_info_txt'] = 'Bylo zahájeno odstranÄ›nà zálohy. Tato akce může trvat nÄ›kolik minut než bude dokonÄena.'; $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?'; -$wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; +$wb['delete_pending_txt'] = 'Již existuje ÄekajÃcà úloha pro odstranÄ›nà zálohy.'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng index 5a22de61dee5a526b2455c2029f3a204e531bd70..6838d351ee658c75f6c8f97af11c47cff8eaf6a2 100644 --- a/interface/web/sites/lib/lang/cz_web_childdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng index 0998cb1264a385b11957d85915ae7ea184bbc154..b61ca0741ae2f6ce1a29573f2cb97fab966d8f2e 100644 --- a/interface/web/sites/lib/lang/cz_web_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; $wb['ssl_key_txt'] = 'SSL klÃÄ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_txt'] = 'VýbÄ›r PHP verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng index 9f40aaec6821d41035eca2446c2973c78a287276..cd7d06c8aa1675040102982570eac58c77200ee7 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -99,7 +99,9 @@ $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; $wb['ssl_key_txt'] = 'SSL klÃÄ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -130,13 +132,12 @@ $wb['variables_txt'] = 'PromÄ›nné'; $wb['added_by_txt'] = 'Kdo vytvoÅ™il úÄet'; $wb['added_date_txt'] = 'Datum vytvoÅ™enà úÄtu'; $wb['backup_excludes_txt'] = 'VylouÄené adresáře'; -$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; -$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; +$wb['backup_excludes_note_txt'] = '(OddÄ›lte vÃce adresářů Äárkami. PÅ™Ãklad: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'VylouÄené adresáře obsahujà neplatné znaky.'; +$wb['server_chosen_not_ok'] = 'Vybraný server nenà pro tento úÄet povolen.'; +$wb['subdomain_error_empty'] = 'Pole subdomény je prázdné nebo obsahuje neplatné znaky.'; $wb['btn_save_txt'] = 'Uložit'; $wb['btn_cancel_txt'] = 'ZruÅ¡it'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Nahrát údaje z podrobnostà registrovaného klienta'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Obnovit údaje (resetovat)'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng index 2b6f3c77d25c1e644a6de5bef18192d472195ece..e15b9c58633661206e08400f01b728c08e600045 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; -$wb['fastcgi_php_version_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_txt'] = 'VýbÄ›r PHP verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -123,7 +123,7 @@ $wb['variables_txt'] = 'PromÄ›nné'; $wb['backup_excludes_txt'] = 'VylouÄené adresáře'; $wb['backup_excludes_note_txt'] = '(OddÄ›lte vÃce adresářů Äárkami. Vzor: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'VylouÄené adresáře obsahujà neplatné znaky.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; +$wb['subdomain_error_empty'] = 'Pole subdomény je prázdné nebo obsahuje neplatné znaky.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/de_aps.lng b/interface/web/sites/lib/lang/de_aps.lng index bb986b5c44c952bdc5546181f9f57f0e06ca6123..6c9ff30eed7889faaf33eea6dcaacc1610fc9ece 100644 --- a/interface/web/sites/lib/lang/de_aps.lng +++ b/interface/web/sites/lib/lang/de_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; $wb['password_strength_txt'] = 'Passwortkomplexität'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/de_web_aliasdomain.lng b/interface/web/sites/lib/lang/de_web_aliasdomain.lng index 5889b17d5745a6082ee2ea40693551600c938941..14e4c79d25ac03856dcb51a99b63fdcb67ea759d 100644 --- a/interface/web/sites/lib/lang/de_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/de_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muss ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muss ein positiver integer Wert sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatz-Beschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Datentransfer-Beschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['server_php_id_txt'] = 'PHP-Version'; $wb['pm_txt'] = 'PHP-FPM Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de_web_backup_list.lng b/interface/web/sites/lib/lang/de_web_backup_list.lng index 63b27051bbc9de3c595e11b102a0ec1dcbd778de..3c38207b76879686cc4d16d7795c73a5eb796368 100644 --- a/interface/web/sites/lib/lang/de_web_backup_list.lng +++ b/interface/web/sites/lib/lang/de_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['delete_pending_txt'] = 'Es liegt bereits ein Backup-Lösch-Job an.'; $wb['backup_type_mysql'] = 'MySQL-Datenbank'; $wb['backup_type_web'] = 'Webseiten-Dateien'; $wb['filesize_txt'] = 'Filesize'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/de_web_childdomain.lng b/interface/web/sites/lib/lang/de_web_childdomain.lng index 05b1f1d51d902ff0b4cdb1699b5740b28187137a..2f1248740ddf543942903d656b20f3b409f096af 100644 --- a/interface/web/sites/lib/lang/de_web_childdomain.lng +++ b/interface/web/sites/lib/lang/de_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muss ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muss ein positiver integer Wert sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatz-Beschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Datentransfer-Beschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['server_php_id_txt'] = 'PHP-Version'; $wb['pm_txt'] = 'PHP-FPM Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de_web_childdomain_list.lng b/interface/web/sites/lib/lang/de_web_childdomain_list.lng index a9bdf2861a706883d8a2301650399165a7db957b..3ba596cbcd926c2da8224c6387ce890a941ba0e3 100644 --- a/interface/web/sites/lib/lang/de_web_childdomain_list.lng +++ b/interface/web/sites/lib/lang/de_web_childdomain_list.lng @@ -10,8 +10,8 @@ $wb['domain_error_regex'] = 'Domain Name ist ungültig.'; $wb['no_redirect_txt'] = 'Keine Weiterleitung'; $wb['no_flag_txt'] = 'Keine Optionen'; $wb['none_txt'] = 'Keine'; -$wb['add_new_subdomain_txt'] = 'Add new Subdomain'; -$wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain'; +$wb['add_new_subdomain_txt'] = 'Neue Subdomain hinzufügen'; +$wb['add_new_aliasdomain_txt'] = 'Neue Aliasdomain hinzufügen'; $wb['aliasdomain_list_head_txt'] = 'Aliasdomains'; $wb['subdomain_list_head_txt'] = 'Subdomains'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng index 7232d8fa5f79141cb420ec53768617c132a60f55..b9c77a8b7bd98483c62f1fef9060b39d3c77fa1e 100644 --- a/interface/web/sites/lib/lang/de_web_domain.lng +++ b/interface/web/sites/lib/lang/de_web_domain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatzbeschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Transfervolumenbeschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM FastCGI Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng index 1b334bb298445b39816d243e594749eeac951900..26070171394784b9a2471d90833659fbbf1da505 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -98,7 +98,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatzbeschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Transfervolumenbeschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM FastCGI Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -136,7 +138,6 @@ $wb['host_txt'] = 'Host'; $wb['domain_error_wildcard'] = 'Wildcard-Subdomains sind nicht erlaubt.'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; -$wb['enable_spdy_txt'] = 'Aktiviere SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Kundendaten übernehmen'; $wb['load_my_data_txt'] = 'Meine Kontaktdaten laden'; $wb['reset_client_data_txt'] = 'Daten verwerfen'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Log-Dateien Aufbewahrungszeit'; $wb['log_retention_error_regex'] = 'Aufbewahrungszeit in Tagen (Erlaubte Werte: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota kann nicht 0 sein.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng index 89e50f2df4c027deb6ab46e200f9e47ea22f3d20..b2211e314bd94da3c5aaf6e19a1007597fe7ec2e 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; $wb['hd_quota_error_regex'] = 'Harddisk-Quota ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Traffic-Quota ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['server_php_id_txt'] = 'PHP-Version'; $wb['pm_txt'] = 'PHP-FPM Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng index 98b7e4d898b4640e2e904dfddaf82ce0b602767c..6a324cca90843da819ed87294c0a462ad7788f0b 100644 --- a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.'; $wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_backup_list.lng b/interface/web/sites/lib/lang/dk_web_backup_list.lng index eb45c4e89b3fc71313c1558bf12795c44a304e30..fb9f0e997f505ae23b53b6c7cae7eb61767d61a5 100644 --- a/interface/web/sites/lib/lang/dk_web_backup_list.lng +++ b/interface/web/sites/lib/lang/dk_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak $wb['delete_confirm_txt'] = 'Really delete this backup?'; $wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng index 762acfe244fe2f8c158625c679821afe56d7740d..c766bae8818d3b1c3583a72f0c85cf8a6bd261b0 100644 --- a/interface/web/sites/lib/lang/dk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_domain.lng b/interface/web/sites/lib/lang/dk_web_domain.lng index 7b6183554314151740697ca33197f37a6bcfca78..05920d39d228c475c1814d77b14b457dc0b1fcba 100644 --- a/interface/web/sites/lib/lang/dk_web_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_domain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.'; $wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng index c9cdb68c9a4a320d728d74d1c8696995a4c24702..8d0e6604928f58179cc951d5a17408d388a12b7a 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -97,7 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng index ba7aad0403c23669b9ea793cb7a522448f8e035c..18eebc266565947fe8ad41dba38b48b1936c8a34 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.'; $wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_aliasdomain.lng b/interface/web/sites/lib/lang/el_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/el_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/el_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_backup_list.lng b/interface/web/sites/lib/lang/el_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/el_web_backup_list.lng +++ b/interface/web/sites/lib/lang/el_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/el_web_childdomain.lng b/interface/web/sites/lib/lang/el_web_childdomain.lng index 3c5cb7a9368eb9dc7e1e1c7452917906db572fe5..f6c2c743bff9d4b561f474ffc3e2e93d484e93d6 100644 --- a/interface/web/sites/lib/lang/el_web_childdomain.lng +++ b/interface/web/sites/lib/lang/el_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_domain.lng b/interface/web/sites/lib/lang/el_web_domain.lng index 1787aa0e33fbeedff7b8d897bcf2a683501143d3..1d067f9f8cb9a9646c0086757736867022b84fe0 100644 --- a/interface/web/sites/lib/lang/el_web_domain.lng +++ b/interface/web/sites/lib/lang/el_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng index 1d238b64e9447ef181f2ecd7f5ba6e3a8f5f268e..47115c8098a9203d312615e4870b91d55f2582c5 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -96,7 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -138,7 +140,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_aps.lng b/interface/web/sites/lib/lang/en_aps.lng index b0300fe0cc36d79df16043e7c0b03a63ef3b5b4b..04f6fb798d039df71999a0456aa8556cc84b6f3f 100644 --- a/interface/web/sites/lib/lang/en_aps.lng +++ b/interface/web/sites/lib/lang/en_aps.lng @@ -28,7 +28,7 @@ $wb['installation_txt'] = 'Installation'; $wb['install_location_txt'] = 'Install location'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['acceptance_txt'] = 'Acceptance'; +$wb['acceptance_txt'] = 'I accept the license'; $wb['acceptance_text_txt'] = 'Yes, i\'ve read the license and agree.'; $wb['install_language_txt'] = 'Interface language'; $wb['new_database_password_txt'] = 'New database password'; diff --git a/interface/web/sites/lib/lang/en_web_aliasdomain.lng b/interface/web/sites/lib/lang/en_web_aliasdomain.lng index eeae6770c6a516930c14d6ec6f67a10efc138b4a..5499768e06060d98e5a4503ccb8c036f9f9ffff9 100644 --- a/interface/web/sites/lib/lang/en_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/en_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be $wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; $wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; -$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["server_php_id_txt"] = 'PHP Version'; $wb["pm_txt"] = 'PHP-FPM Process Manager'; $wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; $wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_backup_list.lng b/interface/web/sites/lib/lang/en_web_backup_list.lng index 6ec5f5f3c74bf8bd42955bde5e520d3f217d21a3..f541108807e4c693d22dffc5fd99fcdf76883014 100644 --- a/interface/web/sites/lib/lang/en_web_backup_list.lng +++ b/interface/web/sites/lib/lang/en_web_backup_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'Existing backups'; $wb['date_txt'] = 'Date'; $wb['backup_type_txt'] = 'Type'; $wb['filename_txt'] = 'Backup file'; -$wb['filesize_txt'] = 'Filesize'; +$wb['filesize_txt'] = 'File size'; $wb['restore_backup_txt'] = 'Restore'; $wb['download_backup_txt'] = 'Download'; $wb['download_info_txt'] = 'The backup file will be available for download in the backup folder of the website in a few minutes.'; @@ -18,5 +18,36 @@ $wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; $wb['backup_type_mongodb'] = 'MongoDB Database'; $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; - +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/en_web_childdomain.lng b/interface/web/sites/lib/lang/en_web_childdomain.lng index 54def692147f0da11aa51d3d490741d422f04040..b4dd9e9326fb6f6e8c4e68befc6def717ddedcd0 100644 --- a/interface/web/sites/lib/lang/en_web_childdomain.lng +++ b/interface/web/sites/lib/lang/en_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 28c7c3e4e1b52483e56b8c63149179a1040b192c..1785358209ba995c208cc490a547263f99dc37ee 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -95,7 +95,7 @@ $wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be $wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; $wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; -$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["server_php_id_txt"] = 'PHP Version'; $wb["pm_txt"] = 'PHP-FPM Process Manager'; $wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; $wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng index 97d1c932ca9361b016156842e02953f0cd891f3a..19b12ea2c4f413e86a1d8bfdc2cbcd8b8ed3bd7c 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -97,7 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -141,7 +143,6 @@ $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid c $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = "Save"; $wb['btn_cancel_txt'] = "Cancel"; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -157,4 +158,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng index 0c7ac92c61bde8ad4755a9485a3e6e71ca104722..f8acd2d26b5ef25294b4aa23dd9adf88a5a3a8dc 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng @@ -100,7 +100,7 @@ $wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be $wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; $wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; -$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["server_php_id_txt"] = 'PHP Version'; $wb["pm_txt"] = 'PHP-FPM Process Manager'; $wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; $wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es.lng b/interface/web/sites/lib/lang/es.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_aps.lng b/interface/web/sites/lib/lang/es_aps.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_aps_instances_list.lng b/interface/web/sites/lib/lang/es_aps_instances_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_aps_packages_list.lng b/interface/web/sites/lib/lang/es_aps_packages_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_aps_update_packagelist.lng b/interface/web/sites/lib/lang/es_aps_update_packagelist.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_backup_stats_list.lng b/interface/web/sites/lib/lang/es_backup_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_cron.lng b/interface/web/sites/lib/lang/es_cron.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_cron_list.lng b/interface/web/sites/lib/lang/es_cron_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_database.lng b/interface/web/sites/lib/lang/es_database.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/es_web_aliasdomain.lng b/interface/web/sites/lib/lang/es_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/es_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/es_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_backup_list.lng b/interface/web/sites/lib/lang/es_web_backup_list.lng index 04896d9eba27dc80a18f7cc17a35a8cab9df365c..931ada712b26edf24292e0703be3df55666b790d 100644 --- a/interface/web/sites/lib/lang/es_web_backup_list.lng +++ b/interface/web/sites/lib/lang/es_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'Base de datos MySQL'; $wb['backup_type_web'] = 'Archivos del sitio web'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/es_web_childdomain.lng b/interface/web/sites/lib/lang/es_web_childdomain.lng index 25843a0e21f0f9f854d74b07633315a33777c305..6cf662c2ffcc7ea9e6a767620c8659ed0795ceb6 100644 --- a/interface/web/sites/lib/lang/es_web_childdomain.lng +++ b/interface/web/sites/lib/lang/es_web_childdomain.lng @@ -98,7 +98,7 @@ $wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children debe ser un valor $wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers debe ser un valor entero positivo.'; $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers debe ser un valor entero positivo.'; $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers debe ser un valor entero positivo.'; -$wb['fastcgi_php_version_txt'] = 'Versión de PHP'; +$wb['server_php_id_txt'] = 'Versión de PHP'; $wb['pm_txt'] = 'PHP-FPM Gestor de Procesos'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_domain.lng b/interface/web/sites/lib/lang/es_web_domain.lng index 889d29bd9536cbffa55b01f413bf48b6577692cd..2dfe3d6cac3805813c97c6936d7ae26c9ce7d42d 100644 --- a/interface/web/sites/lib/lang/es_web_domain.lng +++ b/interface/web/sites/lib/lang/es_web_domain.lng @@ -95,7 +95,7 @@ $wb['domain_error_autosub'] = 'There is already a subdomain with these settings. $wb['perl_txt'] = 'Perl'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index 8421966c0eec5f2635f69ab1be8ada3179a93243..c1960ae38b1a0fdd46fa52bcafc5bdeaf62711ab 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -96,7 +96,9 @@ $wb['domain_error_autosub'] = 'Ya hay un subdominio con estas configuraciones.'; $wb['perl_txt'] = 'Perl'; $wb['hd_quota_error_regex'] = 'Cuota de disco no es válida.'; $wb['traffic_quota_error_regex'] = 'Cuota de tráfico no es válida.'; -$wb['fastcgi_php_version_txt'] = 'Versión de PHP'; +$wb['server_php_id_txt'] = 'Versión de PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Gestor de Procesos'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -136,7 +138,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi.lng b/interface/web/sites/lib/lang/fi.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_database.lng b/interface/web/sites/lib/lang/fi_database.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_database_list.lng b/interface/web/sites/lib/lang/fi_database_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_ftp_user.lng b/interface/web/sites/lib/lang/fi_ftp_user.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_ftp_user_list.lng b/interface/web/sites/lib/lang/fi_ftp_user_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_shell_user.lng b/interface/web/sites/lib/lang/fi_shell_user.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_shell_user_list.lng b/interface/web/sites/lib/lang/fi_shell_user_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_web_aliasdomain.lng b/interface/web/sites/lib/lang/fi_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/fi_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_backup_list.lng b/interface/web/sites/lib/lang/fi_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/fi_web_backup_list.lng +++ b/interface/web/sites/lib/lang/fi_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_childdomain.lng b/interface/web/sites/lib/lang/fi_web_childdomain.lng old mode 100755 new mode 100644 index 5105ba3f2e63dfae2a652b24d331f4f550ed91f7..bbc12a35fd1a99a88399d7e450ffe0ccaf5a8dab --- a/interface/web/sites/lib/lang/fi_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_childdomain_list.lng b/interface/web/sites/lib/lang/fi_web_childdomain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_web_domain.lng b/interface/web/sites/lib/lang/fi_web_domain.lng index 1cc2a2024d93b2d268622cf6a7f9bb25e30ce75c..38434653ef32eb37b981c740b61c784f016c307d 100644 --- a/interface/web/sites/lib/lang/fi_web_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_sites_stats_list.lng b/interface/web/sites/lib/lang/fi_web_sites_stats_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng index 1a4d753b56ce47f6a552733a7d6db2ab59b2c9ec..7ba9a95d354fe471d751c8ef2d604e7df753c504 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng old mode 100755 new mode 100644 diff --git a/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_aliasdomain.lng b/interface/web/sites/lib/lang/fr_web_aliasdomain.lng index 59a69d4f23e7cb7687b5ac85b5ae4dbb72d62bfe..5ce638002b17efb91bdd67913dbfd039207f7897 100644 --- a/interface/web/sites/lib/lang/fr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.min_spare_ser $wb['pm_max_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.max_spare_servers doit être un entier positif.'; $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_backup_list.lng b/interface/web/sites/lib/lang/fr_web_backup_list.lng index 6f1c5e13486dc6490b8bbaaf8aeb60aac288cdae..92e44845aede00f50dd52928d44cef6b9c8fedf3 100644 --- a/interface/web/sites/lib/lang/fr_web_backup_list.lng +++ b/interface/web/sites/lib/lang/fr_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak $wb['delete_confirm_txt'] = 'Really delete this backup?'; $wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_childdomain.lng b/interface/web/sites/lib/lang/fr_web_childdomain.lng index 1be206e1222358a13af16980c93dc0e766bb9fce..d636dc2d487a27c175e4644a1b4fa4eb91f7575b 100644 --- a/interface/web/sites/lib/lang/fr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng index 421693a0e64cb0cbdcb92578911115fd12704e5b..a0e6ff9847b919bd8101f0c76006cb929145538e 100644 --- a/interface/web/sites/lib/lang/fr_web_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; $wb['ssl_key_txt'] = 'Clé SSL'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng index ab34cdf35eeb8f7f362b61904ee3fca2ab7c1b8b..b3f1602e638edb426f16e55481d2e03be6c3e08a 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; $wb['ssl_key_txt'] = 'Clé SSL'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid c $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng index a97883fe46afcaadde1b6b4658db562a0f28c5c2..bdd704f93be621b43936c71c224d5478d1010589 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng index 67eb8363f503f6d26442fe58b3a7bc8724b27511..7a2df148e160932870394aeb0a5935b72bfa2716 100644 --- a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP verzija'; +$wb['server_php_id_txt'] = 'PHP verzija'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_backup_list.lng b/interface/web/sites/lib/lang/hr_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/hr_web_backup_list.lng +++ b/interface/web/sites/lib/lang/hr_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_childdomain.lng b/interface/web/sites/lib/lang/hr_web_childdomain.lng index 99df0d2fdf5bb7ca009d376df5913203dc4b0857..b0f7a1f2db595d8efbd2dcffe4d7bcafb55064ca 100644 --- a/interface/web/sites/lib/lang/hr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index 8a089e6ba5f365147feb61e20d0de0de4e9ed9cf..0b27cc5e65dee1d260b3bd78a51f98531317452b 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng index 0ef7e938518c2a8ef7cabe89e64161ae2d06c767..14bb2c66878903256a9138779304d3e7cc6c4a17 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng index 82fa901c1f93c14598500da95fe59b7429139dea..5f5f74062fa3af954ac9a1415f78e0ce20cedd77 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP verzija'; +$wb['server_php_id_txt'] = 'PHP verzija'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_aliasdomain.lng b/interface/web/sites/lib/lang/hu_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/hu_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_backup_list.lng b/interface/web/sites/lib/lang/hu_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/hu_web_backup_list.lng +++ b/interface/web/sites/lib/lang/hu_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_childdomain.lng b/interface/web/sites/lib/lang/hu_web_childdomain.lng index 5ac19c3bbc25194eff853e3eb75463ff3bbd218e..a05534c4f70e3557376707b392abb053004b5ebf 100644 --- a/interface/web/sites/lib/lang/hu_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_domain.lng b/interface/web/sites/lib/lang/hu_web_domain.lng index 5ddf06593ded5ab4740f467055c1c63e46d53176..711f0abee28d80fafdc3e70184ad7fc779699ee0 100644 --- a/interface/web/sites/lib/lang/hu_web_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng index da4391a9269aea17233afa431082cc4c6a6e02a3..86e549240834e465bfae979533f67948449e3550 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_aliasdomain.lng b/interface/web/sites/lib/lang/id_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/id_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/id_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_backup_list.lng b/interface/web/sites/lib/lang/id_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/id_web_backup_list.lng +++ b/interface/web/sites/lib/lang/id_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/id_web_childdomain.lng b/interface/web/sites/lib/lang/id_web_childdomain.lng index d5fd9711a4f08c985d682a09125106caf8d23780..d839094ff93e1b4998f49e6f1e547a38f7490e6e 100644 --- a/interface/web/sites/lib/lang/id_web_childdomain.lng +++ b/interface/web/sites/lib/lang/id_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_domain.lng b/interface/web/sites/lib/lang/id_web_domain.lng index 785d7fc0daa9655cc0d4cbebf704ca89a95223b8..1dbdae9059af86604cda6e5318e8846e7ac0c551 100644 --- a/interface/web/sites/lib/lang/id_web_domain.lng +++ b/interface/web/sites/lib/lang/id_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng index 6d16061cfeacf4ebbefe5094de754cfb5b831ba6..7de6c2c6faef90f2831b658ea95d055f948ab14c 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_aliasdomain.lng b/interface/web/sites/lib/lang/it_web_aliasdomain.lng index 472378320131037312ad5d1b5fb43c4c564f023e..0dc91e1371076bd976c7af459a5627d9db83391d 100644 --- a/interface/web/sites/lib/lang/it_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/it_web_aliasdomain.lng @@ -94,7 +94,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ess $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve essere un valore intero postivo.'; $wb['hd_quota_error_regex'] = 'Quota Spazio Disco non valido.'; $wb['traffic_quota_error_regex'] = 'Quota Traffico non valido.'; -$wb['fastcgi_php_version_txt'] = 'Versione PHP'; +$wb['server_php_id_txt'] = 'Versione PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_backup_list.lng b/interface/web/sites/lib/lang/it_web_backup_list.lng index 9aa7b0c1750414f81488e0723eeddf8cdb19dbe3..d81039ea1ac5c45c91cd080e69d958089adfda5f 100644 --- a/interface/web/sites/lib/lang/it_web_backup_list.lng +++ b/interface/web/sites/lib/lang/it_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak $wb['delete_confirm_txt'] = 'Really delete this backup?'; $wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/it_web_childdomain.lng b/interface/web/sites/lib/lang/it_web_childdomain.lng index 3a214e298ed8bdcf56e1c7979760a986a7a20b13..e10211cdf75969d2c3fde546538c0b2869196e20 100644 --- a/interface/web/sites/lib/lang/it_web_childdomain.lng +++ b/interface/web/sites/lib/lang/it_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng index 68eae554fc16b20070359dd0f29e051d334ae9bf..497f41d74c514770f243b5d0a3ee262f81b420fb 100644 --- a/interface/web/sites/lib/lang/it_web_domain.lng +++ b/interface/web/sites/lib/lang/it_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Quota spazio disco non valida.'; $wb['traffic_quota_error_regex'] = 'Quota Traffico non valida.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Versione'; +$wb['server_php_id_txt'] = 'PHP Versione'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng index adb557f390919e09694dbfaa321730fffb4b43f7..3951e5d19d90d284524b40fa214845259b727123 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -96,7 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -138,7 +140,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng index 259d1c820c02a2308a3062df4ce55e166d74d66d..d1bb71c625fd72d2ce0703eb76c39f8221beabe6 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve es $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve essere un valore intero positivo.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_aliasdomain.lng b/interface/web/sites/lib/lang/ja_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/ja_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_backup_list.lng b/interface/web/sites/lib/lang/ja_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/ja_web_backup_list.lng +++ b/interface/web/sites/lib/lang/ja_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_childdomain.lng b/interface/web/sites/lib/lang/ja_web_childdomain.lng index d59d7bbda5f8b0e1ba839103ea6ed36b1d460d00..fb705f1af54611d0eb197604ed1212f9dac3c54a 100644 --- a/interface/web/sites/lib/lang/ja_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_domain.lng b/interface/web/sites/lib/lang/ja_web_domain.lng index 2dbf65d2e5a162fb94e1bcc6726bc916f778f197..5582ad82a545dc34f14d228e6576e42d6aec870f 100644 --- a/interface/web/sites/lib/lang/ja_web_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng index 9dd8cd7aff3800e91983e1ca20b1a5d529c65a72..a9d284b46c2ab067504a24f2f683e0d409db965d 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_aliasdomain.lng b/interface/web/sites/lib/lang/nl_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/nl_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_backup_list.lng b/interface/web/sites/lib/lang/nl_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/nl_web_backup_list.lng +++ b/interface/web/sites/lib/lang/nl_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_childdomain.lng b/interface/web/sites/lib/lang/nl_web_childdomain.lng index e99616ce11c4b607c2eb8f8c1a66211b26f35b6f..9b73b148a2d3e8588f007c54d0caf221aaac38b3 100644 --- a/interface/web/sites/lib/lang/nl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng index 8b4f6ff8552ece4e37d36dde2b596babf9ff0e5a..f50539ae7cf079f85b493ede8fab555130f999d9 100644 --- a/interface/web/sites/lib/lang/nl_web_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_domain.lng @@ -89,11 +89,11 @@ $wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive $wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; -$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; -$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is ongeldig.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is ongeldig.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Versie'; +$wb['server_php_id_txt'] = 'PHP Versie'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng index 1301001bd1399a5e77ef930f68d08c993b0dfef7..50932cc9e1c8376fe19aea940b10b585941a7f27 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is niet correct.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is niet correct.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Versie'; +$wb['server_php_id_txt'] = 'PHP Versie'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Opslaan'; $wb['btn_cancel_txt'] = 'Annuleren'; -$wb['enable_spdy_txt'] = 'SPDY/HTTP2 inschakelen'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_aliasdomain.lng b/interface/web/sites/lib/lang/pl_web_aliasdomain.lng index 19cd691bebf7ae8790e13ac6c382abda472de6fb..618ae50e8426820c84a74adff93a8b6310fc7697 100644 --- a/interface/web/sites/lib/lang/pl_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi by $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; $wb['hd_quota_error_regex'] = 'Limit dysku jest nieprawidÅ‚owy'; $wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_backup_list.lng b/interface/web/sites/lib/lang/pl_web_backup_list.lng index b9fdf3d63224fccd87dbd21ab0317996a78c7bb7..a04c0bacd22da4d47fafbaba4c91c2ffaef4ba7b 100644 --- a/interface/web/sites/lib/lang/pl_web_backup_list.lng +++ b/interface/web/sites/lib/lang/pl_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'Baza MySQL'; $wb['backup_type_web'] = 'Pliki strony'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_childdomain.lng b/interface/web/sites/lib/lang/pl_web_childdomain.lng index 9b8a2b56ba56c8c0433b313ea0db921217eeae6b..ab3a61582a9797f860edf883fc477c8328f65ca6 100644 --- a/interface/web/sites/lib/lang/pl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi by $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; $wb['hd_quota_error_regex'] = 'Limit dysku jest nieprawidÅ‚owy'; $wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_domain.lng b/interface/web/sites/lib/lang/pl_web_domain.lng index 2521f174069e5ee125e76df6eb7a2e44c5302e37..e615f70303f4540f5750346d06f7095671ec90c4 100644 --- a/interface/web/sites/lib/lang/pl_web_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_domain.lng @@ -95,7 +95,7 @@ $wb['ssl_key_txt'] = 'Klucz SSL'; $wb['web_folder_error_regex'] = 'Wprowadzono nieprawidÅ‚owy katalog. ProszÄ™ nie wpisywać znaku slash [ / ]'; $wb['domain_error_autosub'] = 'Istnieje już subdomena z tymi ustawieniami.'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng index e6fd6011250457b83e155398535ed9cd84b393dd..93752a063c77655b3f6b16f401ebe5951547c4c6 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -97,7 +97,9 @@ $wb['ssl_key_txt'] = 'Klucz SSL'; $wb['web_folder_error_regex'] = 'Wprowadzono nieprawidÅ‚owy katalog. ProszÄ™ nie wpisywać znaku slash [ / ]'; $wb['domain_error_autosub'] = 'Istnieje już subdomena z tymi ustawieniami.'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng index cc2431dbeccf7bcc34b839c1520e39986bfe4f9b..884210be39dfcc488d6e55f100d2879482de195e 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi by $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; $wb['hd_quota_error_regex'] = 'Limit dyski jest nieprawidÅ‚owy'; $wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_aliasdomain.lng b/interface/web/sites/lib/lang/pt_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/pt_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_backup_list.lng b/interface/web/sites/lib/lang/pt_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/pt_web_backup_list.lng +++ b/interface/web/sites/lib/lang/pt_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_childdomain.lng b/interface/web/sites/lib/lang/pt_web_childdomain.lng index 4cbc032c198098cf07e042df3b1bf7d87216066d..48ee53c85681c54bf5efd42a016a96ccfa92e4ea 100644 --- a/interface/web/sites/lib/lang/pt_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_domain.lng b/interface/web/sites/lib/lang/pt_web_domain.lng index fc7add5d896a6299f65ef0c96fa60a3cec2310a1..5ed2112e1ecf19145bd474819818cc081ec5ed8a 100644 --- a/interface/web/sites/lib/lang/pt_web_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng index a33ac11fc1e35b104bfea81e0743a9725b615f26..2b077955074d960fa29fbf64cb24a5b8cbc93543 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_aliasdomain.lng b/interface/web/sites/lib/lang/ro_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/ro_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_backup_list.lng b/interface/web/sites/lib/lang/ro_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/ro_web_backup_list.lng +++ b/interface/web/sites/lib/lang/ro_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_childdomain.lng b/interface/web/sites/lib/lang/ro_web_childdomain.lng index 30f83e72832e3ea2731b52d04a9253adeae2a843..c172b3d70f9b9d152fc898d5b3f67908b17d9991 100644 --- a/interface/web/sites/lib/lang/ro_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_domain.lng b/interface/web/sites/lib/lang/ro_web_domain.lng index 7e98b45d02221301f5257938c6dcbf9336d075cd..3b3e8b339acbac459cc646d08c87a4563808e243 100644 --- a/interface/web/sites/lib/lang/ro_web_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng index cb5fc4d82b1551d56e856e6429f4aab8fcdaa1a8..e52310bf08096500ad18651c6a3bc18ce47fb555 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -96,7 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -138,7 +140,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru.lng b/interface/web/sites/lib/lang/ru.lng index 6316c21d17d09dd8a5a36dc89a5c0368c5ae5504..dbf2926043e215f1daf8f7085ed1b775a4c9fe0e 100644 --- a/interface/web/sites/lib/lang/ru.lng +++ b/interface/web/sites/lib/lang/ru.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'ДоÑтупные пакеты'; $wb['Installed packages'] = 'УÑтановленные пакеты'; $wb['Update Packagelist'] = 'Обновить ÑпиÑок пакетов'; $wb['Subdomain (Vhost)'] = 'Поддомен (Vhost)'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качеÑтве пути перенаправлениÑ.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качеÑтве пути перенаправлениÑ.'; ?> diff --git a/interface/web/sites/lib/lang/ru_aps.lng b/interface/web/sites/lib/lang/ru_aps.lng index 3dd4ad0a8ad3658cd221e5f2c0f6b283530eab59..d2225358c1f4c73aef5f1a4c62b69331c0b2cc27 100644 --- a/interface/web/sites/lib/lang/ru_aps.lng +++ b/interface/web/sites/lib/lang/ru_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Ð’Ñ‹ указали некорректную $wb['error_license_agreement'] = 'Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾ принÑть лицензионное Ñоглашение.'; $wb['error_no_database_pw'] = 'Ð’Ñ‹ предоÑтавили не правильный пароль базы данных.'; $wb['error_short_database_pw'] = 'ПожалуйÑта, выберите более длинный пароль базы данных.'; -$wb['error_no_value_for'] = 'Поле \"%s\" не может быть пуÑтым.'; -$wb['error_short_value_for'] = 'Поле \"%s\" требует более длинного входного значениÑ.'; -$wb['error_long_value_for'] = 'Поле \"%s\"требует более короткого входного значениÑ.'; -$wb['error_inv_value_for'] = 'Ð’Ñ‹ ввели неверное значение Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \"%s\".'; -$wb['error_inv_email_for'] = 'Ð’Ñ‹ ввели некорректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \"%s\".'; -$wb['error_inv_domain_for'] = 'Ð’Ñ‹ ввели некорректный домен Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \"%s\".'; -$wb['error_inv_integer_for'] = 'Ð’Ñ‹ ввели некорректное чиÑло Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \"%s\".'; -$wb['error_inv_float_for'] = 'Ð’Ñ‹ ввели некорректное чиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \"%s\".'; +$wb['error_no_value_for'] = 'Поле \\"%s\\" не может быть пуÑтым.'; +$wb['error_short_value_for'] = 'Поле \\"%s\\" требует более длинного входного значениÑ.'; +$wb['error_long_value_for'] = 'Поле \\"%s\\"требует более короткого входного значениÑ.'; +$wb['error_inv_value_for'] = 'Ð’Ñ‹ ввели неверное значение Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \\"%s\\".'; +$wb['error_inv_email_for'] = 'Ð’Ñ‹ ввели некорректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \\"%s\\".'; +$wb['error_inv_domain_for'] = 'Ð’Ñ‹ ввели некорректный домен Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \\"%s\\".'; +$wb['error_inv_integer_for'] = 'Ð’Ñ‹ ввели некорректное чиÑло Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \\"%s\\".'; +$wb['error_inv_float_for'] = 'Ð’Ñ‹ ввели некорректное чиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ \\"%s\\".'; $wb['error_used_location'] = 'Путь уÑтановки уже Ñодержит уÑтановочный пакет.'; $wb['installation_task_txt'] = 'Запланирована уÑтановка'; $wb['installation_error_txt'] = 'Ошибка уÑтановки'; diff --git a/interface/web/sites/lib/lang/ru_database.lng b/interface/web/sites/lib/lang/ru_database.lng index b931b715f27debbdf902487a9fd3e4684ae6230a..0f5eaf31807d666eff99aa8e32d71d585bcfbcc1 100644 --- a/interface/web/sites/lib/lang/ru_database.lng +++ b/interface/web/sites/lib/lang/ru_database.lng @@ -13,7 +13,7 @@ $wb['database_name_error_unique'] = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных уже Ñущ $wb['database_name_error_regex'] = 'Ðеверное Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных. Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных может Ñодержать только Ñледующие Ñимволы: a-z, A-Z, 0-9 и нижний пробел _. Длина: 2 - 64 Ñимвола.'; $wb['database_user_error_empty'] = 'Логин базы данных пуÑтой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже ÑущеÑтвует. Что бы получить уникальное имÑ, например, Ñложите название Ñайта и ваше имÑ.'; -$wb['database_user_error_regex'] = 'Ðекорректный логин Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. Логин может Ñодержать только Ñледующие Ñимволы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 Ñимволов.'; +$wb['database_user_error_regex'] = 'Ðекорректный логин Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. Логин может Ñодержать только Ñледующие Ñимволы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 Ñимволов.'; $wb['limit_database_txt'] = 'ДоÑтигнуто макÑимальное количеÑтво БД.'; $wb['database_name_change_txt'] = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных не может быть изменено.'; $wb['database_charset_change_txt'] = 'Кодировка базы данных не может быть изменена'; diff --git a/interface/web/sites/lib/lang/ru_database_user.lng b/interface/web/sites/lib/lang/ru_database_user.lng index df927317ca18c23dbe2fd0b7540aa981255ec1ef..7de99a11dc9f84088cd9203dd0bdaa331114ab13 100644 --- a/interface/web/sites/lib/lang/ru_database_user.lng +++ b/interface/web/sites/lib/lang/ru_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Клиент'; $wb['active_txt'] = 'Ðктивно'; $wb['database_user_error_empty'] = 'Логин базы данных пуÑтой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже ÑущеÑтвует. Что бы получить уникальное имÑ, например, Ñложите название Ñайта и ваше имÑ.'; -$wb['database_user_error_regex'] = 'Ðекорректный логин Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. Логин может Ñодержать только Ñледующие Ñимволы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 Ñимволов.'; +$wb['database_user_error_regex'] = 'Ðекорректный логин Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. Логин может Ñодержать только Ñледующие Ñимволы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 Ñимволов.'; $wb['database_user_error_len'] = 'Логин Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных - {user} - cлишком длинный. МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° логина - 16 Ñимволов'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; diff --git a/interface/web/sites/lib/lang/ru_web_aliasdomain.lng b/interface/web/sites/lib/lang/ru_web_aliasdomain.lng index 7555b823b0bbb7b75a994da598e26c46611a5980..e63d9b039fa62f1d85aabb319b42bf302f18f681 100644 --- a/interface/web/sites/lib/lang/ru_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers долж $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers должен быть положительным целым чиÑлом.'; $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_backup_list.lng b/interface/web/sites/lib/lang/ru_web_backup_list.lng index 8d5b7b757b9fa30a8846bdab2ddabc5798dcd880..8943d94750a7e0ee429de40b9250da5bfef40909 100644 --- a/interface/web/sites/lib/lang/ru_web_backup_list.lng +++ b/interface/web/sites/lib/lang/ru_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'База данных MySQL'; $wb['backup_type_web'] = 'Файлы Web Ñайта'; $wb['filesize_txt'] = 'Размер файла'; $wb['backup_type_mongodb'] = 'База данных MongoDB'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_childdomain.lng b/interface/web/sites/lib/lang/ru_web_childdomain.lng index 49905e77ea1846b9bf0fc6348ad89f2a919193fa..ffe19805ab6749d8b7d1f9e6f79de5063686bde9 100644 --- a/interface/web/sites/lib/lang/ru_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Ðет флага'; $wb['domain_error_wildcard'] = 'Wildcard поддомены не допуÑкаютÑÑ.'; $wb['proxy_directives_txt'] = 'Директивы прокÑи'; $wb['available_proxy_directive_snippets_txt'] = 'ДоÑтупные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качеÑтве пути перенаправлениÑ.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качеÑтве пути перенаправлениÑ.'; $wb['backup_interval_txt'] = 'Интервал резервного копированиÑ'; $wb['backup_copies_txt'] = 'КоличеÑтво резервных копий'; $wb['ssl_key_txt'] = 'SSL-ключ'; @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers долж $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers должен быть положительным целым чиÑлом.'; $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_domain.lng b/interface/web/sites/lib/lang/ru_web_domain.lng index 6cba45f1b7e065079da9d7bf900c41c09c9900c9..bc47bfff7ec282a0f9c82acb231436f39a06d6cd 100644 --- a/interface/web/sites/lib/lang/ru_web_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; $wb['ssl_key_txt'] = 'SSL-ключ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_subdomain.lng b/interface/web/sites/lib/lang/ru_web_subdomain.lng index 46203a18155ebe083b6c0f961c2c397811875aac..376c789430848c851e7f886d68af8295a941b754 100644 --- a/interface/web/sites/lib/lang/ru_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Ðет флага'; $wb['domain_error_wildcard'] = 'Wildcard-поддомены не допуÑкаютÑÑ.'; $wb['proxy_directives_txt'] = 'Директивы прокÑи'; $wb['available_proxy_directive_snippets_txt'] = 'ДоÑтупные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качеÑтве пути перенаправлениÑ.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качеÑтве пути перенаправлениÑ.'; $wb['http_port_txt'] = 'Порт HTTP'; $wb['https_port_txt'] = 'Порт HTTPS'; $wb['http_port_error_regex'] = 'Ðекорректный порт HTTP.'; diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng index b8a3b41759a8a96567c957d382af69f5acb71bc0..07c345f0da8f52e85bdc6d0708cfc480fe486200 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; $wb['ssl_key_txt'] = 'SSL-ключ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'Выбранный Ñервер запрещён $wb['subdomain_error_empty'] = 'Поле поддомена пуÑÑ‚ или Ñодержит недопуÑтимые Ñимволы.'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; -$wb['enable_spdy_txt'] = 'Включить SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Загрузить информацию о клиенте'; $wb['load_my_data_txt'] = 'Загрузить мои контактные данные'; $wb['reset_client_data_txt'] = 'Ð¡Ð±Ñ€Ð¾Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Включить PageSpeed'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng index d548c2abe24f48b5c444d7fff73f9a28a7569314..e504af3dad5e31a2fcabc99e581c8079a96c758b 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers долж $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers должен быть положительным целым чиÑлом.'; $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain.lng b/interface/web/sites/lib/lang/se_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_backup_list.lng b/interface/web/sites/lib/lang/se_web_backup_list.lng index 1f9073ab6de74b70db042178f7606cf02d5bb21b..702a46e8d2e14344d0b98fd29cf2c0f6dd344496 100644 --- a/interface/web/sites/lib/lang/se_web_backup_list.lng +++ b/interface/web/sites/lib/lang/se_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL-databaser'; $wb['backup_type_web'] = 'Webbsidefiler'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/se_web_childdomain.lng b/interface/web/sites/lib/lang/se_web_childdomain.lng index eff6791c65ae3f4baca3b5f282e81100af8c802c..42e459183578819ff03f8317ce2b85255b0beaed 100644 --- a/interface/web/sites/lib/lang/se_web_childdomain.lng +++ b/interface/web/sites/lib/lang/se_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index 91fa8c4db56627639c7a3519cad7bea8913bf62a..a293af77ea902036b48b5778c87855f102dea261 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng index 2a67966577d55621181e4c2c7a23369a5691d9fd..f398991442c5753477db6df4491541efd481132c 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -96,7 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -138,7 +140,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_aliasdomain.lng b/interface/web/sites/lib/lang/sk_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/sk_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_backup_list.lng b/interface/web/sites/lib/lang/sk_web_backup_list.lng index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644 --- a/interface/web/sites/lib/lang/sk_web_backup_list.lng +++ b/interface/web/sites/lib/lang/sk_web_backup_list.lng @@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; $wb['filesize_txt'] = 'Filesize'; $wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_childdomain.lng b/interface/web/sites/lib/lang/sk_web_childdomain.lng index e0d26667bc7252103db05d4e90deb8daf4985c4a..d14f9815f6d0be5083924da7b73f49b5ebafee72 100644 --- a/interface/web/sites/lib/lang/sk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_domain.lng b/interface/web/sites/lib/lang/sk_web_domain.lng index f8f2f79b965f20526db9faf7d8e551d0892b6cf2..2b18602008778a02f07802b1fa491691fd4cee4d 100644 --- a/interface/web/sites/lib/lang/sk_web_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng index 2d354ce9dcc7f76f1f42661ce7a97bb916235f97..3d4a76186f1c396a70c93d6119a96c90df2ef4cb 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -95,7 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -137,7 +139,6 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; $wb['load_client_data_txt'] = 'Load client details'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Reset data'; @@ -152,4 +153,33 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng index 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/tr.lng b/interface/web/sites/lib/lang/tr.lng index d0570f6c12f2935829ef35f55392585be179315a..b5e7f42e2e4a4a9784178482b28576dbbca7d6ce 100644 --- a/interface/web/sites/lib/lang/tr.lng +++ b/interface/web/sites/lib/lang/tr.lng @@ -1,8 +1,8 @@ <?php -$wb['Websites'] = 'Web Sitesi'; +$wb['Websites'] = 'Web Siteleri'; $wb['Website'] = 'Web Sitesi'; -$wb['Subdomain'] = 'Alt Alan Adı'; -$wb['Aliasdomain'] = 'BaÅŸka Alan Adı'; +$wb['Subdomain'] = 'Alt Etki Alanı'; +$wb['Aliasdomain'] = 'Takma Etki Alanı'; $wb['Database'] = 'Veritabanı'; $wb['Database User'] = 'Veritabanı Kullanıcıları'; $wb['Web Access'] = 'Web EriÅŸimi'; @@ -22,7 +22,7 @@ $wb['Shell'] = 'Kabuk'; $wb['Webdav'] = 'WebDAV'; $wb['FTP'] = 'FTP'; $wb['Options'] = 'Ayarlar'; -$wb['Domain'] = 'Alan Adı'; +$wb['Domain'] = 'Etki Alanı'; $wb['Redirect'] = 'Yönlendirme'; $wb['SSL'] = 'SSL'; $wb['Sites'] = 'Siteler'; @@ -30,6 +30,6 @@ $wb['APS Installer'] = 'APS Yükleyici'; $wb['Available packages'] = 'Kullanılabilecek Paketler'; $wb['Installed packages'] = 'Yüklü Paketler'; $wb['Update Packagelist'] = 'Güncelleme Paketi Listesi'; -$wb['Subdomain (Vhost)'] = 'Alt alan adı (SSunucu)'; -$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; +$wb['Subdomain (Vhost)'] = 'Alt Etki Alanı (Sanal Sunucu)'; +$wb['error_proxy_requires_url'] = '"Vekil Sunucu" yönlendirme türü için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng index 1c6ccd49a6d09c41f0b65434bc1ec2699ce047e8..c876629a741166798408c2ae7d750f728c960d93 100644 --- a/interface/web/sites/lib/lang/tr_aps.lng +++ b/interface/web/sites/lib/lang/tr_aps.lng @@ -34,20 +34,20 @@ $wb['install_language_txt'] = 'Arayüz dili'; $wb['new_database_password_txt'] = 'Yeni veritabanı parolası'; $wb['basic_settings_txt'] = 'Temel ayarlar'; $wb['package_settings_txt'] = 'Paket ayarları'; -$wb['error_main_domain'] = 'Yükleme yolundaki alan adı geçersiz.'; +$wb['error_main_domain'] = 'Yükleme yolundaki etki alanı geçersiz.'; $wb['error_no_main_location'] = 'Yazdığınız yükleme yolu geçersiz.'; $wb['error_inv_main_location'] = 'Yazdığınız yükleme konumunu klasörü geçersiz.'; $wb['error_license_agreement'] = 'Devam etmek için lisans anlaÅŸmasını onaylamalısınız.'; $wb['error_no_database_pw'] = 'Yazdığınız veritabanı parolası geçersiz.'; $wb['error_short_database_pw'] = 'Lütfen daha uzun bir veritabanı parolası yazın.'; -$wb['error_no_value_for'] = '\\"%s\\" alanı boÅŸ olamaz.'; -$wb['error_short_value_for'] = '\\"%s\\" alanına daha uzun bir deÄŸer yazılmalıdır.'; -$wb['error_long_value_for'] = '\\"%s\\" alanına daha kısa bir deÄŸer yazılmalıdır.'; -$wb['error_inv_value_for'] = '\\"%s\\" alanına yazılan deÄŸer geçersiz.'; -$wb['error_inv_email_for'] = '\\"%s\\" alanına yazılan e-posta adresi geçersiz.'; -$wb['error_inv_domain_for'] = '\\"%s\\" alanına yazılan alan adı geçersiz.'; -$wb['error_inv_integer_for'] = '\\"%s\\" alanına yazılan sayı geçersiz.'; -$wb['error_inv_float_for'] = '\\"%s\\" alanına yazılan küsuratlı sayı geçersiz.'; +$wb['error_no_value_for'] = '"%s" alanı boÅŸ olamaz.'; +$wb['error_short_value_for'] = '"%s" alanına daha uzun bir deÄŸer yazılmalıdır.'; +$wb['error_long_value_for'] = '"%s" alanına daha kısa bir deÄŸer yazılmalıdır.'; +$wb['error_inv_value_for'] = '"%s" alanına yazılan deÄŸer geçersiz.'; +$wb['error_inv_email_for'] = '"%s" alanına yazılan e-posta adresi geçersiz.'; +$wb['error_inv_domain_for'] = '"%s" alanına yazılan etki alanı geçersiz.'; +$wb['error_inv_integer_for'] = '"%s" alanına yazılan sayı geçersiz.'; +$wb['error_inv_float_for'] = '"%s" alanına yazılan küsuratlı sayı geçersiz.'; $wb['error_used_location'] = 'Yükleme yoluna daha önce yüklenmiÅŸ bir paket var.'; $wb['installation_task_txt'] = 'Yükleme planlandı'; $wb['installation_error_txt'] = 'Yükleme hatası'; @@ -55,9 +55,4 @@ $wb['installation_success_txt'] = 'Yüklendi'; $wb['installation_remove_txt'] = 'Kaldırma planlandı'; $wb['packagelist_update_finished_txt'] = 'APS paket listesi güncellendi.'; $wb['limit_aps_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla APS kopyası sayısına ulaÅŸtınız.'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; -$wb['repeat_password_txt'] = 'Parola Onayı'; -$wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; -$wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps_instances_list.lng b/interface/web/sites/lib/lang/tr_aps_instances_list.lng index e8b3532ff41da3f91a76d3f7744a62c828946766..292c627f850c81e7c655ccf674cb58b2a81c7f38 100644 --- a/interface/web/sites/lib/lang/tr_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/tr_aps_instances_list.lng @@ -4,8 +4,8 @@ $wb['name_txt'] = 'Ad'; $wb['version_txt'] = 'Sürüm'; $wb['customer_txt'] = 'Müşteri'; $wb['status_txt'] = 'Durum'; -$wb['install_location_txt'] = 'Yükleme Konumu'; -$wb['pkg_delete_confirmation'] = 'Bu yüklemeyi silmek istediÄŸinize emin misiniz?'; +$wb['install_location_txt'] = 'Kurulum Konumu'; +$wb['pkg_delete_confirmation'] = 'Bu kurulumu silmek istediÄŸinize emin misiniz?'; $wb['filter_txt'] = 'Arama'; $wb['delete_txt'] = 'Sil'; ?> diff --git a/interface/web/sites/lib/lang/tr_backup_stats_list.lng b/interface/web/sites/lib/lang/tr_backup_stats_list.lng index 65792aa591054d676f942164b40a0c7c3696825c..f59fcae70ac9c49bb18bbbd9609e0588906f2334 100644 --- a/interface/web/sites/lib/lang/tr_backup_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_backup_stats_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Backup Stats'; +$wb['list_head_txt'] = 'Yedekleme Durumu'; $wb['database_name_txt'] = ''; -$wb['active_txt'] = 'Active'; -$wb['domain_txt'] = 'Domain'; -$wb['backup_count_txt'] = 'Backup count'; -$wb['backup_server_txt'] = 'Server'; -$wb['backup_interval_txt'] = 'Interval / cnt.'; -$wb['backup_size_txt'] = 'Backupsize'; +$wb['active_txt'] = 'Etkin'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['backup_count_txt'] = 'Yedek sayısı'; +$wb['backup_server_txt'] = 'Sunucu'; +$wb['backup_interval_txt'] = 'Sıklık / Sayı'; +$wb['backup_size_txt'] = 'Yedek Boyutu'; ?> diff --git a/interface/web/sites/lib/lang/tr_cron.lng b/interface/web/sites/lib/lang/tr_cron.lng index f645d7632535c219273e1ca7bf350ab5ba1419af..d00e6868c7f0b0171a95094a79d1812db299d142 100644 --- a/interface/web/sites/lib/lang/tr_cron.lng +++ b/interface/web/sites/lib/lang/tr_cron.lng @@ -17,10 +17,10 @@ $wb['run_mday_error_format'] = 'Ayın günü biçimi geçersiz.'; $wb['run_month_error_format'] = 'Ay biçimi geçersiz.'; $wb['run_wday_error_format'] = 'Haftanın günü biçimi geçersiz.'; $wb['command_error_format'] = 'Komut biçimi geçersiz. İnternet adreslerinde yalnız http/https kullanılabilir.'; -$wb['unknown_fieldtype_error'] = 'Bilinmeyen bir alan tipi kullanılmış.'; +$wb['unknown_fieldtype_error'] = 'Bilinmeyen bir alan türü kullanılmış.'; $wb['server_id_error_empty'] = 'Sunucu kodu boÅŸ olamaz.'; +$wb['command_hint_txt'] = 'Örnek: /var/www/clients/musteriX/webY/betigim.sh ya da http://www.etkialanim.com/yol/betik.php, /var/www/clients/musteriX/webY/web yerine [web_root] kodunu kullanabilirsiniz.'; +$wb['log_output_txt'] = 'Günlük çıktısı'; $wb['limit_cron_url_txt'] = 'Yalnız İnternet adresli zamanlanmış görev kullanılabilir. Lütfen zamanlanmış görev komutu olarak http:// ile baÅŸlayan bir İnternet adresi yazın.'; $wb['command_error_empty'] = 'Komut boÅŸ olamaz.'; -$wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.'; -$wb['log_output_txt'] = 'Log output'; ?> diff --git a/interface/web/sites/lib/lang/tr_database.lng b/interface/web/sites/lib/lang/tr_database.lng index d5d8c7d856665bfba773b7679267b051cf319b9a..f443bbb620a22a8298212b9abff6cd6e4c752899 100644 --- a/interface/web/sites/lib/lang/tr_database.lng +++ b/interface/web/sites/lib/lang/tr_database.lng @@ -1,13 +1,13 @@ <?php $wb['server_id_txt'] = 'Sunucu'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['database_name_txt'] = 'Veritabanı Adı'; $wb['database_user_txt'] = 'Veritabanı Kullanıcısı'; $wb['database_ro_user_txt'] = 'Salt okunur veritabanı kullanıcısı'; $wb['optional_txt'] = 'isteÄŸe baÄŸlı'; $wb['database_password_txt'] = 'Veritabanı Parolası'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; -$wb['database_charset_txt'] = 'Veritabanı Karakter Seti'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; +$wb['database_charset_txt'] = 'Veritabanı Karakter Kümesi'; $wb['select_dbuser_txt'] = 'Veritabanı kullanıcısını seçin'; $wb['no_dbuser_txt'] = 'Yok'; $wb['remote_access_txt'] = 'Uzaktan EriÅŸim'; @@ -16,34 +16,34 @@ $wb['database_remote_error_ips'] = 'Yazılan IP adreslerinden en az biri hatalı $wb['client_txt'] = 'Müşteri'; $wb['active_txt'] = 'Etkin'; $wb['database_client_differs_txt'] = 'Web sitesi ve veritabanının ait olduÄŸu müşteriler farklı.'; -$wb['database_name_error_empty'] = 'Veritabanı adı boÅŸ.'; -$wb['database_name_error_unique'] = 'Sunucu üzerinde aynı adlı bir veritabanı var. Benzersiz bir ad vermek için, veritabanı adının başına alan adınız gibi bir ek ekleyebilirsiniz.'; +$wb['database_name_error_empty'] = 'Veritabanı adı boÅŸ olamaz.'; +$wb['database_name_error_unique'] = 'Sunucu üzerinde aynı adlı bir veritabanı var. Benzersiz bir ad vermek için, veritabanı adının başına etki alanı adınızı ekleyebilirsiniz.'; $wb['database_name_error_regex'] = 'Veritabanı adı geçersiz. Veritabanı adı 2-64 uzunluÄŸunda olmalı ve yalnız a-z, A-Z, 0-9 ve alt çizgi(_) karakterlerinden oluÅŸmalıdır.'; -$wb['database_user_error_empty'] = 'Veritabanı kullanıcısı boÅŸ olamaz.'; -$wb['database_user_error_unique'] = 'Sunucu üzerinde aynı adlı bir veritabanı kullanıcısı zaten var. Benzersiz bir ad vermek için, örneÄŸin veritabanı kullanıcısı adının başına alan adınızı ekleyebilirsiniz.'; +$wb['database_user_error_empty'] = 'Veritabanı kullanıcı adı boÅŸ olamaz.'; +$wb['database_user_error_unique'] = 'Sunucu üzerinde aynı adlı bir veritabanı kullanıcısı zaten var. Benzersiz bir ad vermek için, örneÄŸin veritabanı kullanıcısı adının başına etki alanı adınızı ekleyebilirsiniz.'; $wb['database_user_error_regex'] = 'Veritabanı kullanıcı adı geçersiz. Veritabanı kullanıcı adı 2-64 uzunluÄŸunda olmalı ve yalnız a-z, A-Z, 0-9 ve alt çizgi(_) karakterlerinden oluÅŸmalıdır.'; -$wb['limit_database_txt'] = 'EkleyebileceÄŸiniz en fazla veritabanı sayısına ulaÅŸtınız.'; +$wb['limit_database_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla veritabanı sayısına ulaÅŸtınız.'; $wb['database_name_change_txt'] = 'Veritabanı adı deÄŸiÅŸtirilemedi'; $wb['database_user_missing_txt'] = 'Lütfen bu veritabanı için bir veritabanı kullanıcısı seçin.'; -$wb['database_charset_change_txt'] = 'Veritabanı karakter seti deÄŸiÅŸtirilemedi'; +$wb['database_charset_change_txt'] = 'Veritabanı karakter kümesi deÄŸiÅŸtirilemedi'; $wb['database_name_error_len'] = 'Veritabanı adı - {db} - çok uzun. Veritabanı adı ön ek dahil en fazla 64 karakter olabilir.'; $wb['database_user_error_len'] = 'Veritabanı kullanıcı adı - {user} - çok uzun. Veritabanı kullanıcı adı ön ek dahil en fazla 16 karakter olabilir.'; -$wb['parent_domain_id_txt'] = 'Site'; +$wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['database_site_error_empty'] = 'Veritabanının ait olduÄŸu siteyi seçin.'; $wb['select_site_txt'] = '- Siteyi Seçin -'; $wb['btn_save_txt'] = 'Kaydet'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; $wb['globalsearch_resultslimit_of_txt'] = '/'; $wb['globalsearch_resultslimit_results_txt'] = 'sonuç'; -$wb['globalsearch_noresults_text_txt'] = 'Sonuç yok'; +$wb['globalsearch_noresults_text_txt'] = 'Uygun bir sonuç bulunamadı.'; $wb['globalsearch_noresults_limit_txt'] = '0 sonuç'; $wb['globalsearch_searchfield_watermark_txt'] = 'Arama'; $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; -$wb['limit_database_quota_txt'] = 'Database quota'; -$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; -$wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; +$wb['limit_database_quota_error_notint'] = 'Veritabanı kotası bir sayı olmalıdır'; +$wb['limit_database_quota_free_txt'] = 'Kullanılabilecek en fazla veritabanı kotası'; ?> diff --git a/interface/web/sites/lib/lang/tr_database_admin_list.lng b/interface/web/sites/lib/lang/tr_database_admin_list.lng index fc92e1957eb36bd82f6e8d93baf8ae2f810a20a8..e13404415ce4fcdb47909b08143d465617639e6c 100644 --- a/interface/web/sites/lib/lang/tr_database_admin_list.lng +++ b/interface/web/sites/lib/lang/tr_database_admin_list.lng @@ -2,11 +2,11 @@ $wb['list_head_txt'] = 'Veritabanı'; $wb['active_txt'] = 'Etkin'; $wb['remote_access_txt'] = 'Uzaktan EriÅŸim'; +$wb['type_txt'] = 'Tür'; $wb['server_id_txt'] = 'Sunucu'; -$wb['database_user_txt'] = 'Veritabanı kullanıcısı'; -$wb['database_name_txt'] = 'Veritabanı adı'; -$wb['add_new_record_txt'] = 'Veritabanı ekle'; +$wb['database_user_txt'] = 'Veritabanı Kullanıcı Adı'; +$wb['database_name_txt'] = 'Veritabanı Adı'; +$wb['add_new_record_txt'] = 'Veritabanı Ekle'; $wb['sys_groupid_txt'] = 'Müşteri'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['type_txt'] = 'Type'; ?> diff --git a/interface/web/sites/lib/lang/tr_database_list.lng b/interface/web/sites/lib/lang/tr_database_list.lng index 43ea5f9b6fe57c01a723df9411c481ce2e321e48..591a72af11e1bdcb6678639383f05791ab7b6455 100644 --- a/interface/web/sites/lib/lang/tr_database_list.lng +++ b/interface/web/sites/lib/lang/tr_database_list.lng @@ -2,10 +2,10 @@ $wb['list_head_txt'] = 'Veritabanı'; $wb['active_txt'] = 'Etkin'; $wb['remote_access_txt'] = 'Uzaktan EriÅŸim'; +$wb['type_txt'] = 'Tür'; $wb['server_id_txt'] = 'Sunucu'; $wb['database_user_txt'] = 'Veritabanı Kullanıcısı'; $wb['database_name_txt'] = 'Veritabanı Adı'; $wb['add_new_record_txt'] = 'Veritabanı Ekle'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['type_txt'] = 'Type'; ?> diff --git a/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng b/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng index 50f2dcc496d1140a77dce8a25c7ee0a38fe1e277..a65174977b876ff1e474c2d4abc7968a447e603c 100644 --- a/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng @@ -1,9 +1,9 @@ <?php -$wb['database_txt'] = 'Database'; -$wb['server_name_txt'] = 'Server'; -$wb['client_txt'] = 'Client'; -$wb['used_txt'] = 'Used space'; -$wb['quota_txt'] = 'Quota'; -$wb['percentage_txt'] = 'Used in %'; -$wb['list_head_txt'] = 'Database Quota'; +$wb['database_txt'] = 'Veritabanı'; +$wb['server_name_txt'] = 'Sunucu'; +$wb['client_txt'] = 'Müşteri'; +$wb['used_txt'] = 'Kullanılan'; +$wb['quota_txt'] = 'Kota'; +$wb['percentage_txt'] = 'Kullanım Yüzdesi'; +$wb['list_head_txt'] = 'Veritabanı Kotası'; ?> diff --git a/interface/web/sites/lib/lang/tr_database_user.lng b/interface/web/sites/lib/lang/tr_database_user.lng index 785c4ecce4d125f061be335383e162935149b07e..3f6ba89f49b8150cc24341cf9e479aaa4285f813 100644 --- a/interface/web/sites/lib/lang/tr_database_user.lng +++ b/interface/web/sites/lib/lang/tr_database_user.lng @@ -1,25 +1,25 @@ <?php $wb['database_user_txt'] = 'Veritabanı Kullanıcısı'; $wb['database_password_txt'] = 'Veritabanı Parolası'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['client_txt'] = 'Müşteri'; $wb['active_txt'] = 'Etkin'; $wb['database_user_error_empty'] = 'Veritabanı kullanıcısı boÅŸ olamaz.'; -$wb['database_user_error_unique'] = 'Sunucuda aynı adlı bir veritabanı kullanıcısı var. Benzersiz bir ad vermek için, kullanıcı adının başına alan adınız gibi bir ek ekleyebilirsiniz.'; +$wb['database_user_error_unique'] = 'Sunucuda aynı adlı bir veritabanı kullanıcısı var. Benzersiz bir ad vermek için, kullanıcı adının başına etki alanınızı ekleyebilirsiniz.'; $wb['database_user_error_regex'] = 'Veritabanı kullanıcı adı geçersiz. Veritabanı kullanıcı adı 2-64 uzunluÄŸunda olmalı ve yalnız a-z, A-Z, 0-9 ve alt çizgi(_) karakterlerinden oluÅŸmalıdır.'; $wb['database_user_error_len'] = 'Veritabanı kullanıcı adı - {user} - çok uzun. Ön ek dahil en uzun veritabanı kullanıcı adı 16 karakter olmalıdır.'; $wb['btn_save_txt'] = 'Kaydet'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; $wb['globalsearch_resultslimit_of_txt'] = '/'; $wb['globalsearch_resultslimit_results_txt'] = 'sonuç'; -$wb['globalsearch_noresults_text_txt'] = 'Sonuç yok.'; +$wb['globalsearch_noresults_text_txt'] = 'Uygun bir sonuç bulunamadı.'; $wb['globalsearch_noresults_limit_txt'] = '0 sonuç'; $wb['globalsearch_searchfield_watermark_txt'] = 'Arama'; $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; -$wb['limit_database_user_txt'] = 'The max. number of database users is reached.'; -$wb['database_password_error_empty'] = 'Database password is empty.'; +$wb['limit_database_user_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla veritabanı kullanıcısı sayısına ulaÅŸtınız.'; +$wb['database_password_error_empty'] = 'Veritabanı parolası boÅŸ.'; ?> diff --git a/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng index e44025a715dbf435bdca9faee0b109ba25bf611d..6d2da369d2cc8b3101affc00ef533e570abe4dbb 100644 --- a/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'FTP traffic'; -$wb['domain_txt'] = 'Domain'; -$wb['this_month_txt'] = 'This month'; -$wb['last_month_txt'] = 'Last month'; -$wb['this_year_txt'] = 'This year'; -$wb['last_year_txt'] = 'Last year'; -$wb['sum_txt'] = 'Sum (Download + Upload)'; -$wb['in_out_txt'] = 'DL/UL'; +$wb['list_head_txt'] = 'FTP TrafiÄŸi'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['this_month_txt'] = 'Bu ay'; +$wb['last_month_txt'] = 'Geçen ay'; +$wb['this_year_txt'] = 'Bu yıl'; +$wb['last_year_txt'] = 'Geçen yıl'; +$wb['sum_txt'] = 'Toplam (İndirme + Yükleme)'; +$wb['in_out_txt'] = 'İnd/Yük'; ?> diff --git a/interface/web/sites/lib/lang/tr_ftp_user.lng b/interface/web/sites/lib/lang/tr_ftp_user.lng index 665d2ec477479644c9ae00ff3520f908547ec0c6..155573595ef6c1a8a12ca2e07e5188f345ca3974 100644 --- a/interface/web/sites/lib/lang/tr_ftp_user.lng +++ b/interface/web/sites/lib/lang/tr_ftp_user.lng @@ -12,7 +12,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['quota_size_txt'] = 'Disk Kotası'; $wb['active_txt'] = 'Etkin'; $wb['limit_ftp_user_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla FTP kullanıcısı sayısına ulaÅŸtınız.'; @@ -21,15 +21,16 @@ $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var.'; $wb['username_error_regex'] = 'Kullanıcı adında izin verilmeyen karakterler var.'; $wb['quota_size_error_empty'] = 'Kota boÅŸ olamaz.'; $wb['uid_error_empty'] = 'UID boÅŸ olamaz.'; +$wb['gid_error_empty'] = 'GID boÅŸ olamaz.'; $wb['directory_error_empty'] = 'Klasör boÅŸ olamaz.'; $wb['directory_error_notinweb'] = 'Klasör web kök klasörünün altında bulunmalıdır.'; $wb['parent_domain_id_error_empty'] = 'Bir web sitesi seçmelisiniz.'; $wb['quota_size_error_regex'] = 'Kota: Sınırsız olması için -1 sınırlamak için sıfırdan büyük bir rakam yazın'; $wb['dir_dot_error'] = 'Yol içinde .. kullanılamaz.'; $wb['dir_slashdot_error'] = 'Yol içinde ./ kullanılamaz.'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['expires_txt'] = 'Expire at'; +$wb['expires_txt'] = 'Sona Erme Zamanı'; ?> diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng index 5610d599397d31e261336f34c2058ca98abf58cf..e2aa844843963a9d286c9f2c35ed0627d5155a45 100644 --- a/interface/web/sites/lib/lang/tr_shell_user.lng +++ b/interface/web/sites/lib/lang/tr_shell_user.lng @@ -7,7 +7,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['chroot_txt'] = 'Chroot KabuÄŸu'; $wb['quota_size_txt'] = 'Kota'; $wb['active_txt'] = 'Etkin'; @@ -22,7 +22,7 @@ $wb['parent_domain_id_error_empty'] = 'Bir web sitesi seçmelisiniz.'; $wb['ssh_rsa_txt'] = 'SSH-RSA Genel Anahtarı (anahtar ile oturum açmak için)'; $wb['dir_dot_error'] = 'Yol içinde .. . kullanılamaz.'; $wb['dir_slashdot_error'] = 'Yol içinde ./ kullanılamaz.'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/sites/lib/lang/tr_shell_user_list.lng b/interface/web/sites/lib/lang/tr_shell_user_list.lng index b88c7fa7486dc84acd8968de784b4ec61392d3af..5c375a232a51d25f0157b1aad5d5291d88b66d1d 100644 --- a/interface/web/sites/lib/lang/tr_shell_user_list.lng +++ b/interface/web/sites/lib/lang/tr_shell_user_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Shell Kullanıcısı'; +$wb['list_head_txt'] = 'Kabuk Kullanıcısı'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['parent_domain_id_txt'] = 'Site'; +$wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; -$wb['add_new_record_txt'] = 'Shell Kullanıcısı Ekle'; +$wb['add_new_record_txt'] = 'Kabuk Kullanıcısı Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng b/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng index 82103410fe6d707e2cf0a8f6efbe7d371dbceba5..be7712fd46fc00b0e0df56f01088027242835b80 100644 --- a/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Web Sitesi Disk Kotası'; -$wb['domain_txt'] = 'Alan Adı / Web Sitesi'; +$wb['domain_txt'] = 'Etki Alanı / Web Sitesi'; $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['used_txt'] = 'Kullanılan Alan'; $wb['hard_txt'] = 'Donanım Sınırı'; diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng index 7e4c0b7c5199f554a8143038394f7e2a9c4e5c28..108f1d9a67d7e3e4c66c8d831a3b0e06652c7a88 100644 --- a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng @@ -1,10 +1,10 @@ <?php -$wb['domain_txt'] = 'Takma Alan Adı'; +$wb['domain_txt'] = 'Takma Etki Alanı'; $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -12,12 +12,12 @@ $wb['ssl_request_txt'] = 'SSL İsteÄŸi'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; $wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. / karakterini yazmayın.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -25,30 +25,30 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla baÅŸka alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt alan adı sayısına ulaÅŸtınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt etki alanı sayısına ulaÅŸtınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/baÅŸka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt etki alanı zaten var.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boÅŸ olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boÅŸ olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boÅŸ olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boÅŸ olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluÅŸu boÅŸ olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boÅŸ olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boÅŸ olamaz'; @@ -56,31 +56,31 @@ $wb['client_group_id_txt'] = 'Müşteri'; $wb['stats_password_txt'] = 'Web İstatistikleri Parolası'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek En Fazla Disk Kotası'; -$wb['ssl_state_error_regex'] = 'SSL ÅŸehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluÅŸu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluÅŸu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; $wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleÅŸtirilmemiÅŸ. Bir IP adresi için yalnız bir SSL sertifikası etkinleÅŸtirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -95,21 +95,21 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deÄŸeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteÄŸe baÄŸlı iÅŸlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliÄŸini seçerseniz, PHP baÅŸlatılamaz!'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; -$wb['Domain'] = 'BaÅŸka alan adı'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; +$wb['Domain'] = 'Takma Etki Alanı'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng index b7acfd099a83870e494ff2cf5d7043b76053e19c..e4dcaacbe779d2550fd8bb1418fb89c68e7772fb 100644 --- a/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng @@ -1,14 +1,14 @@ <?php -$wb['list_head_txt'] = 'Takma Alan Adı'; +$wb['list_head_txt'] = 'Takma Etki Alanı Adı'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['domain_txt'] = 'Takma Alan Adı'; -$wb['add_new_record_txt'] = 'Takma Alan Adı Ekle'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı alan adı zaten var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; +$wb['parent_domain_id_txt'] = 'Web SitesÅŸ'; +$wb['domain_txt'] = 'Takma Etki Alanı Adı'; +$wb['add_new_record_txt'] = 'Yeni takma etki alanı adı ekle'; +$wb['domain_error_empty'] = 'Etki alanı adı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Etki alanı adı eÅŸsiz olmalıdır.'; +$wb['domain_error_regex'] = 'Etki alanı adı geçersiz.'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['none_txt'] = 'Yok'; +$wb['none_txt'] = 'Hiçbiri'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_backup_list.lng b/interface/web/sites/lib/lang/tr_web_backup_list.lng index c9bc16ae78023d7fcb0c0f58e654831ae93d8d18..e304290f615aaad79a068dcffa1db663a01d36cd 100644 --- a/interface/web/sites/lib/lang/tr_web_backup_list.lng +++ b/interface/web/sites/lib/lang/tr_web_backup_list.lng @@ -1,8 +1,9 @@ <?php $wb['list_head_txt'] = 'Alınmış Yedekler'; $wb['date_txt'] = 'Tarih'; -$wb['backup_type_txt'] = 'Tip'; +$wb['backup_type_txt'] = 'Tür'; $wb['filename_txt'] = 'Yedek Dosyası'; +$wb['filesize_txt'] = 'Dosya Boyutu'; $wb['restore_backup_txt'] = 'Geri Yükle'; $wb['download_backup_txt'] = 'İndir'; $wb['download_info_txt'] = 'Yedek dosyası bir kaç dakika içinde web sitesinin backup klasörü altında indirilmeye hazır olacak.'; @@ -10,12 +11,43 @@ $wb['restore_info_txt'] = 'YedeÄŸin geri yüklenmesine baÅŸlandı. Bu iÅŸlemin t $wb['restore_confirm_txt'] = 'Geri yükleme iÅŸlemi web sitenizde bulunan dosyaların üzerine yazar. Bu yedeÄŸi geri yüklemek istediÄŸinize emin misiniz?'; $wb['download_pending_txt'] = 'Zaten bekleyen bir yedek indirme iÅŸlemi var.'; $wb['restore_pending_txt'] = 'Zaten bekleyen bir yedek geri yükleme iÅŸlemi var.'; +$wb['delete_backup_txt'] = 'YedeÄŸi Sil'; +$wb['delete_info_txt'] = 'YedeÄŸin silinmesine baÅŸlandı. Bu iÅŸlemin tamamlanması bir kaç dakika sürebilir.'; +$wb['delete_confirm_txt'] = 'Gerçekten bu yedeÄŸi silmek istediÄŸinize emin misiniz?'; +$wb['delete_pending_txt'] = 'Bekleyen bir yedek silme iÅŸlemi var.'; +$wb['backup_type_mongodb'] = 'MongoDB Veritabanı'; $wb['backup_type_mysql'] = 'MySQL Veritabanı'; $wb['backup_type_web'] = 'Web sitesi dosyaları'; -$wb['filesize_txt'] = 'Filesize'; -$wb['delete_backup_txt'] = 'Delete Backup'; -$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.'; -$wb['delete_confirm_txt'] = 'Really delete this backup?'; -$wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; -$wb['backup_type_mongodb'] = 'MongoDB Database'; +$wb['backup_pending_txt'] = 'There is already a pending backup job.'; +$wb['error_txt'] = 'Error'; +$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.'; +$wb["backup_format_txt"] = 'Backup format'; +$wb["backup_format_unknown_txt"] = 'Unknown'; +$wb["backup_job_txt"] = 'Scheduler'; +$wb["backup_job_manual_txt"] = 'Manual'; +$wb["backup_job_auto_txt"] = 'Auto'; +$wb["manual_backup_title_txt"] = 'Manual backup'; +$wb["make_backup_web_txt"] = 'Make backup of web files'; +$wb["make_backup_database_txt"] = 'Make backup of databases'; +$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?'; +$wb["yes_txt"] = 'Yes'; +$wb["no_txt"] = 'No'; +$wb["backup_is_encrypted_txt"] = "Encrypted"; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb["backup_format_rar_txt"] = 'RAR'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_childdomain.lng b/interface/web/sites/lib/lang/tr_web_childdomain.lng index e11c6a92b584c6f93cf2be6219bb60e9b5fe612b..55a82167d6dae5580bc87cd64c5bd32fd30fe9f0 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain.lng @@ -1,26 +1,26 @@ <?php -$wb['ssl_state_txt'] = 'Mevki'; -$wb['ssl_locality_txt'] = 'Semt'; -$wb['ssl_organisation_txt'] = 'Organizasyon'; -$wb['ssl_organisation_unit_txt'] = 'Organizasyon Unitesi'; +$wb['ssl_state_txt'] = 'İl'; +$wb['ssl_locality_txt'] = 'Bölge'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; +$wb['ssl_organisation_unit_txt'] = 'KuruluÅŸ Birimi'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_request_txt'] = 'SSL İsteÄŸi'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; -$wb['ssl_action_txt'] = 'SSL Eylemi'; +$wb['ssl_action_txt'] = 'SSL İşlemi'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Domain'; -$wb['type_txt'] = 'ÇeÅŸit'; -$wb['parent_domain_id_txt'] = 'Ana Website'; -$wb['redirect_type_txt'] = 'Yönlendirme ÇeÅŸidi'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['type_txt'] = 'Tür'; +$wb['parent_domain_id_txt'] = 'Ana Web Sitesi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; -$wb['active_txt'] = 'Aktif'; -$wb['document_root_txt'] = 'Documentroot'; +$wb['active_txt'] = 'Etkin'; +$wb['document_root_txt'] = 'Belge Kök Klasörü'; $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IP Adresleri'; -$wb['vhost_type_txt'] = 'VHost ÇeÅŸidi'; -$wb['hd_quota_txt'] = 'Harddisk Kotası'; +$wb['vhost_type_txt'] = 'VHost Türü'; +$wb['hd_quota_txt'] = 'Sabit Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; @@ -28,93 +28,93 @@ $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınızdaki max. web domaini sayısına ulaÅŸtınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınızdaki max. aliasdomain sayısına ulaÅŸtınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınızdaki max. web subdomain sayısına ulaÅŸtınız.'; -$wb['apache_directives_txt'] = 'Apache direktifleri'; -$wb['domain_error_empty'] = 'Domain boÅŸ.'; -$wb['domain_error_unique'] = 'Bu isimde websitesi veya sub / aliasdomain zaten var.'; -$wb['domain_error_regex'] = 'Domain ismi geçersiz.'; -$wb['host_txt'] = 'Host'; -$wb['redirect_error_regex'] = 'Geçersiz yönlendirme yolu. Geçerli yönlendirmeler örneÄŸin: /test/ veya http://www.domain.tld/test/'; -$wb['no_redirect_txt'] = 'No redirect'; -$wb['no_flag_txt'] = 'No flag'; -$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; -$wb['proxy_directives_txt'] = 'Proxy Directives'; -$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; -$wb['backup_interval_txt'] = 'Backup interval'; -$wb['backup_copies_txt'] = 'Number of backup copies'; -$wb['ssl_key_txt'] = 'SSL Key'; -$wb['ssl_domain_txt'] = 'SSL Domain'; -$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; -$wb['ipv6_address_txt'] = 'IPv6-Address'; -$wb['errordocs_txt'] = 'Own Error-Documents'; -$wb['subdomain_txt'] = 'Auto-Subdomain'; -$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.'; -$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; -$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; -$wb['error_ssl_state_empty'] = 'SSL State is empty.'; -$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; -$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; -$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; -$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; -$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; -$wb['client_group_id_txt'] = 'Client'; -$wb['stats_password_txt'] = 'Set Webstatistics password'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt etki alanı sayısına ulaÅŸtınız.'; +$wb['apache_directives_txt'] = 'Apache Yönergeleri'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt / takma etki alanı zaten var.'; +$wb['domain_error_regex'] = 'Etki alanı adı geçersiz.'; +$wb['domain_error_acme_invalid'] = 'acme.invalid etki alanı adı kullanılamaz.'; +$wb['domain_error_wildcard'] = 'Genel alt etki alanları kullanılamaz.'; +$wb['host_txt'] = 'Sunucu'; +$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Örnek yönlendirmeler: /test/ ya da http://www.domain.tld/test/'; +$wb['no_redirect_txt'] = 'Yönlendirme Yok'; +$wb['no_flag_txt'] = 'İşaret Yok'; +$wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; +$wb['error_proxy_requires_url'] = '"Vekil Sunucu" yönlendirme türü için yönlendirilecek yol olarak kullanılacak bir adres gereklidir.'; +$wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; +$wb['backup_copies_txt'] = 'Yedek Sayısı'; +$wb['ssl_key_txt'] = 'SSL Anahtarı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; +$wb['web_folder_error_regex'] = 'Yazılan klasör geçersiz. Lütfen bölü karakterini yazmayın.'; +$wb['ipv6_address_txt'] = 'IPv6-Adresi'; +$wb['errordocs_txt'] = 'Özel Hata Sayfaları'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; +$wb['domain_error_autosub'] = 'Aynı ayarları kullanan bir alt etki alanı zaten var.'; +$wb['hd_quota_error_empty'] = 'Sabit disk kotası 0 ya da boÅŸ.'; +$wb['traffic_quota_error_empty'] = 'Trafik kotası boÅŸ olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boÅŸ olamaz.'; +$wb['error_ssl_locality_empty'] = 'SSL bölgesi boÅŸ olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluÅŸu boÅŸ olamaz.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL kuruluÅŸ birimi boÅŸ olamaz.'; +$wb['error_ssl_country_empty'] = 'SSL ülkesi boÅŸ olamaz.'; +$wb['error_ssl_cert_empty'] = 'SSL sertifika alanı boÅŸ olamaz.'; +$wb['client_group_id_txt'] = 'Müşteri'; +$wb['stats_password_txt'] = 'Web İstatistikleri Parolası'; $wb['allow_override_txt'] = 'Apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; -$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; -$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla sabit disk kotası'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluÅŸu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluÅŸu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; -$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Webstatistics username'; -$wb['stats_type_txt'] = 'Webstatistics program'; -$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; -$wb['none_txt'] = 'None'; -$wb['disabled_txt'] = 'Disabled'; -$wb['save_certificate_txt'] = 'Save certificate'; -$wb['create_certificate_txt'] = 'Create certificate'; -$wb['delete_certificate_txt'] = 'Delete certificate'; -$wb['nginx_directives_txt'] = 'nginx Directives'; -$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; +$wb['none_txt'] = 'Yok'; +$wb['disabled_txt'] = 'Devre Dışı'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; +$wb['nginx_directives_txt'] = 'nginx Yönergeleri'; +$wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; -$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; +$wb['error_no_sni_txt'] = 'Bu sunucu üzerinde SSL için SNI etkinleÅŸtirilmemiÅŸ. Bir IP adresi için yalnız bir SSL sertifikası kullanılabilir.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; $wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; $wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; $wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; -$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; -$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; -$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; -$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; -$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm ayarları ÅŸu ÅŸekilde olmalıdır: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deÄŸeri pozitif bir tamsayı olmalıdır.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; +$wb['hd_quota_error_regex'] = 'Sabit disk kotası geçersiz.'; +$wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; +$wb['pm_txt'] = 'PHP-FPM İşlem Yönetimi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; -$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; -$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; -$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; -$wb['Domain'] = 'Aliasdomain'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; -$wb['ssl_letsencrypt_exclude_txt'] = 'Don\'t add to Let\'s Encrypt certificate'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deÄŸeri pozitif bir tamsayı olmalıdır.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deÄŸeri pozitif bir tamsayı olmalıdır >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Ondemand iÅŸlem yönetimini kullanabilmek için PHP sürümünüz >= 5.3.9 olmalıdır. Daha eski bir PHP sürümü için ondemand seçilirse PHP çalışmaya baÅŸlayamaz!'; +$wb['generate_password_txt'] = 'Parola Üret'; +$wb['repeat_password_txt'] = 'Parola Onayı'; +$wb['password_mismatch_txt'] = 'Parola ve onayı aynı deÄŸil'; +$wb['password_match_txt'] = 'Parola ve onayı aynı deÄŸil.'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; +$wb['Domain'] = 'Takma Etki Alanı Adı'; +$wb['ssl_letsencrypt_exclude_txt'] = 'Let\'s Encrypt sertifikası eklenmesin'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_childdomain_list.lng b/interface/web/sites/lib/lang/tr_web_childdomain_list.lng index 26b3acc9e97ddc09fe9ce94ad7cefd606eab3a7f..33127c84cf57ffaec761c1db04954001e5db83e6 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain_list.lng @@ -1,18 +1,18 @@ <?php -$wb['list_head_txt'] = 'Takma Alan Adı'; +$wb['list_head_txt'] = 'Takma Etki Alanı'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['domain_txt'] = 'Takma Alan Adı'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı alan adı zaten var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; +$wb['domain_txt'] = 'Takma Etki Alanı'; +$wb['add_new_subdomain_txt'] = 'Alt Etki Alanı Ekle'; +$wb['add_new_aliasdomain_txt'] = 'Takma Etki Alanı Ekle'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı etki alanı zaten var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_acme_invalid'] = 'acme.invalid etki alanı adı kullanılamaz.'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; $wb['none_txt'] = 'Yok'; -$wb['add_new_subdomain_txt'] = 'Add new Subdomain'; -$wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain'; -$wb['aliasdomain_list_head_txt'] = 'Aliasdomains'; -$wb['subdomain_list_head_txt'] = 'Subdomains'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['aliasdomain_list_head_txt'] = 'Takma Etki Alanları'; +$wb['subdomain_list_head_txt'] = 'Alt Etki Alanları'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_directive_snippets.lng b/interface/web/sites/lib/lang/tr_web_directive_snippets.lng index d2590e53cfbefea98a29cdd8fff773eb46050fe8..a4380942e6da91af219043673d8d84740e17dbe3 100644 --- a/interface/web/sites/lib/lang/tr_web_directive_snippets.lng +++ b/interface/web/sites/lib/lang/tr_web_directive_snippets.lng @@ -1,3 +1,3 @@ <?php -$wb['directive_snippets_id_txt'] = 'Desired configuration'; +$wb['directive_snippets_id_txt'] = 'İstenilen Yapılandırma'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index c97ce73778810e403fdbdc1e1e1d0f8d570eb1a9..4d20d3efad7eb5f88dbedac41ef6b7bfec71e815 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -3,7 +3,7 @@ $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -11,13 +11,13 @@ $wb['ssl_request_txt'] = 'SSL İsteÄŸi'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen / karakterini yazmayın.'; -$wb['type_txt'] = 'Tip'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen bölü karakterini yazmayın.'; +$wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -25,62 +25,62 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla baÅŸka alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt alan adı sayısına ulaÅŸtınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt etki alanı sayısına ulaÅŸtınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/baÅŸka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt etki alanı zaten var.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boÅŸ olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boÅŸ olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boÅŸ olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boÅŸ olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluÅŸu boÅŸ olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boÅŸ olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boÅŸ olamaz'; $wb['client_group_id_txt'] = 'Müşteri'; -$wb['stats_password_txt'] = 'Web istatistikleri parolası'; +$wb['stats_password_txt'] = 'Web İstatistikleri Parolası'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası'; -$wb['ssl_state_error_regex'] = 'SSL ÅŸehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluÅŸu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluÅŸu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; -$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; +$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre Dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleÅŸtirilmemiÅŸ. Bir IP adresi için yalnız bir SSL sertifikası etkinleÅŸtirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -95,22 +95,22 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deÄŸeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteÄŸe baÄŸlı iÅŸlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliÄŸini seçerseniz, PHP baÅŸlatılamaz!'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; $wb['no_server_error'] = 'Bir sunucu seçmelisiniz.'; $wb['no_backup_txt'] = 'Yedek alınmasın'; $wb['daily_backup_txt'] = 'Günlük'; @@ -122,16 +122,16 @@ $wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:'; $wb['configuration_error_txt'] = 'AYAR HATASI'; $wb['variables_txt'] = 'DeÄŸiÅŸkenler'; $wb['added_by_txt'] = 'Ekleyen'; -$wb['added_date_txt'] = 'EklendiÄŸi tarih'; +$wb['added_date_txt'] = 'Eklenme Tarihi'; $wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; $wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; $wb['invalid_custom_php_ini_settings_txt'] = 'php.ini ayarları geçersiz'; $wb['invalid_system_user_or_group_txt'] = 'Sistem kullanıcısı ya da grubu geçersiz'; $wb['apache_directive_blocked_error'] = 'Apache yönergesi güvenlik ayarları tarafından engellenmiÅŸ:'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; -$wb['nginx_directive_blocked_error'] = 'Nginx directive blocked by security settings:'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; +$wb['nginx_directive_blocked_error'] = 'nginx yönergesi güvenlik ayarları tarafından engellendi:'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng b/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng index f86967d0d408fd9ebc32f94e9155327e1d604769..487c6a087c36641ad1f56558bd21c97fa08aa53f 100644 --- a/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng @@ -4,6 +4,6 @@ $wb['list_head_txt'] = 'Web Siteleri'; $wb['domain_id_txt'] = 'Kod'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Web Sitesi Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain_list.lng b/interface/web/sites/lib/lang/tr_web_domain_list.lng index a2320b5dcdc6f9829c1ae895b76df8509e271685..fbfa57347041e3e0f04f60ff81696cae6412cd91 100644 --- a/interface/web/sites/lib/lang/tr_web_domain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_domain_list.lng @@ -3,6 +3,6 @@ $wb['list_head_txt'] = 'Web Siteleri'; $wb['domain_id_txt'] = 'Kod'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Web Sitesi Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_user.lng b/interface/web/sites/lib/lang/tr_web_folder_user.lng index a0479ee0d1e2ca7157ebe36c92144e25cf1a3217..afbe01cab1725117955b7a5906fb883a0c09713d 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_user.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_user.lng @@ -4,8 +4,8 @@ $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; $wb['active_txt'] = 'Etkin'; $wb['folder_error_empty'] = 'Bir web klasörü seçilmemiÅŸ.'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng b/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng index 4fbdef871dea3644edb88d3ab8fcefc48e0f9b1c..685fc22fc69af8a5fb4d2565ebf622dd5ec88d0c 100644 --- a/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng @@ -1,6 +1,6 @@ <?php $wb['list_head_txt'] = 'Web TrafiÄŸi'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['this_month_txt'] = 'Bu ay'; $wb['last_month_txt'] = 'Geçen ay'; $wb['this_year_txt'] = 'Bu yıl'; diff --git a/interface/web/sites/lib/lang/tr_web_subdomain.lng b/interface/web/sites/lib/lang/tr_web_subdomain.lng index 188b2575891321249cd9f3930bea635a436ef4db..7d1cdcc5c0d2c06efe7f9a0e2361683af00cd515 100644 --- a/interface/web/sites/lib/lang/tr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_subdomain.lng @@ -1,7 +1,7 @@ <?php $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_request_txt'] = 'SSL İsteÄŸi'; @@ -9,17 +9,17 @@ $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['type_txt'] = 'Tip'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IP Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; @@ -28,23 +28,23 @@ $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla baÅŸka alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt alan adı sayısına ulaÅŸtınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt etki alanı sayısına ulaÅŸtınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/baÅŸka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt alan adları kullanılamaz.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt etki alanları kullanılamaz.'; $wb['host_txt'] = 'Sunucu'; -$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; +$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; -$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; +$wb['error_proxy_requires_url'] = '"Vekil Sunucu" yönlendirme türü için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_subdomain_list.lng b/interface/web/sites/lib/lang/tr_web_subdomain_list.lng index 8155af64b3df8679fd6a4d25179ff377431fadac..6527242e2d442bb57f4e34fc01b9e36e605101d1 100644 --- a/interface/web/sites/lib/lang/tr_web_subdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_subdomain_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Alt Alan Adları'; +$wb['list_head_txt'] = 'Alt Etki Alanları'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['domain_txt'] = 'Alt Alan Adı'; -$wb['add_new_record_txt'] = 'Alt Alan Ekle'; +$wb['domain_txt'] = 'Alt Etki Alanı'; +$wb['add_new_record_txt'] = 'Alt Etki Alanı Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng index 8a04a244e67f0b96056dfc4f5b0ee504f78b4af5..8aa16844783d4607d6d564c302b28dc23c13cd51 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -3,7 +3,7 @@ $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -11,13 +11,13 @@ $wb['ssl_request_txt'] = 'SSL İsteÄŸi'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen / karakterini yazmayın.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -25,63 +25,63 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla baÅŸka alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt alan adı sayısına ulaÅŸtınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt etki alanı sayısına ulaÅŸtınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/baÅŸka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_acme_invalid'] = 'acme.invalid etki alanı adı kullanılamaz.'; +$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt etki alanı zaten var.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boÅŸ olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boÅŸ olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boÅŸ olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boÅŸ olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluÅŸu boÅŸ olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boÅŸ olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boÅŸ olamaz'; $wb['client_group_id_txt'] = 'Müşteri'; -$wb['stats_password_txt'] = 'Web istatistikleri parolası'; +$wb['stats_password_txt'] = 'Web İstatistikleri Parolası'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası'; -$wb['ssl_state_error_regex'] = 'SSL ÅŸehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluÅŸu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluÅŸu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; $wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre Dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; -$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleÅŸtirilmemiÅŸ. Bir IP adresi için yalnız bir SSL sertifikası etkinleÅŸtirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -96,22 +96,24 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deÄŸeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteÄŸe baÄŸlı iÅŸlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliÄŸini seçerseniz, PHP baÅŸlatılamaz!'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; $wb['no_server_error'] = 'Bir sunucu seçmelisiniz.'; $wb['no_backup_txt'] = 'Yedek alınmasın'; $wb['daily_backup_txt'] = 'Günlük'; @@ -121,35 +123,65 @@ $wb['rewrite_rules_txt'] = 'Yeniden Yazma Kuralları'; $wb['invalid_rewrite_rules_txt'] = 'Yeniden Yazma Kuralları Geçersiz'; $wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:'; $wb['configuration_error_txt'] = 'AYAR HATASI'; +$wb['server_chosen_not_ok'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamıyor.'; $wb['variables_txt'] = 'DeÄŸiÅŸkenler'; $wb['added_by_txt'] = 'Ekleyen'; -$wb['added_date_txt'] = 'EklendiÄŸi tarih'; +$wb['added_date_txt'] = 'Eklenme Tarihi'; $wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; $wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; -$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.'; -$wb['web_folder_txt'] = 'Web folder'; -$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; -$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; -$wb['host_txt'] = 'Hostname'; -$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; -$wb['load_client_data_txt'] = 'Load client details'; -$wb['load_my_data_txt'] = 'Load my contact details'; -$wb['reset_client_data_txt'] = 'Reset data'; -$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL'; -$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS'; -$wb['password_strength_txt'] = 'Password strength'; -$wb['directive_snippets_id_txt'] = 'Web server config'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; -$wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; -$wb['log_retention_txt'] = 'Logfiles retention time'; -$wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['web_folder_txt'] = 'Web klasörü'; +$wb['web_folder_invalid_txt'] = 'Web klasörü geçersiz, lütfen baÅŸka bir klasör seçin.'; +$wb['web_folder_unique_txt'] = 'Web klasörü zaten kullanılıyor, lütfen baÅŸka bir klasör seçin.'; +$wb['host_txt'] = 'Sunucu adı'; +$wb['domain_error_wildcard'] = 'Genel alt etki alanları kullanılamaz.'; +$wb['variables_txt'] = 'DeÄŸiÅŸkenler'; +$wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; +$wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; +$wb['subdomain_error_empty'] = 'Alt etki alanı boÅŸ ya da geçersiz karakterler içeriyor.'; +$wb['btn_save_txt'] = 'Kaydet'; +$wb['btn_cancel_txt'] = 'İptal'; +$wb['load_client_data_txt'] = 'Müşteri Bilgilerini Yükle'; +$wb['load_my_data_txt'] = 'Profil Bilgilerimi Yükle'; +$wb['reset_client_data_txt'] = 'Verileri Sıfırla'; +$wb['document_root_txt'] = 'Belge Kök Klasörü'; +$wb['ssl_letsencrypt_txt'] = 'Let'; +$wb['rewrite_to_https_txt'] = 'HTTP, HTTPS Yönlendirme'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; +$wb['directive_snippets_id_txt'] = 'Web Sunucu Yapılandırması'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; +$wb['enable_pagespeed_txt'] = 'PageSpeed Kullanılsın'; +$wb['log_retention_txt'] = 'Günlük Dosyalarının Silinme Sıklığı'; +$wb['log_retention_error_regex'] = 'Gün cinsinden günlük dosyalarının silinme sıklığı (En küçük: 0 - En büyük: 9999)'; +$wb["backup_format_web_txt"] = 'Backup format for web files'; +$wb["backup_format_db_txt"] = 'Backup format for database'; +$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; +$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_compression_options_txt"] = 'Compression options'; +$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_options_txt"] = 'Encryption options'; +$wb["backup_enable_encryption_txt"] = 'Enable encryption'; +$wb["backup_password_txt"] = 'Password'; +$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)'; +$wb["backup_format_zip_txt"] = 'zip (deflate)'; +$wb["backup_format_gzip_txt"] = 'gzip'; +$wb["backup_format_bzip2_txt"] = 'bzip2'; +$wb["backup_format_xz_txt"] = 'xz'; +$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)'; +$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)'; +$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)'; +$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)'; +$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)'; +$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)'; +$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)'; +$wb["backup_format_tar_xz_txt"] = 'tar (xz)'; +$wb["backup_format_rar_txt"] = 'RAR'; +$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; +$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; +$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; +$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng index 4f07fd858847320507e6139e777fbce2abb646c2..423e9562347a7609d2057f0d64bd83459d0a576a 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng @@ -1,14 +1,14 @@ <?php -$wb['sys_groupid_txt'] = 'Client'; -$wb['list_head_txt'] = 'Websites'; -$wb['domain_id_txt'] = 'ID'; -$wb['active_txt'] = 'Active'; -$wb['server_id_txt'] = 'Server'; -$wb['domain_txt'] = 'Domain'; -$wb['add_new_record_txt'] = 'Add new website'; -$wb['add_new_subdomain_txt'] = 'Add new subdomain'; -$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain'; -$wb['domain_list_head_txt'] = 'Websites'; -$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)'; -$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)'; +$wb['sys_groupid_txt'] = 'Müşteri'; +$wb['list_head_txt'] = 'Web Siteleri'; +$wb['domain_id_txt'] = 'Kod'; +$wb['active_txt'] = 'Etkin'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['add_new_record_txt'] = 'Web Sitesi Ekle'; +$wb['add_new_subdomain_txt'] = 'Alt Etki Alanı Ekle'; +$wb['add_new_aliasdomain_txt'] = 'Takma Etki Alanı Ekle'; +$wb['domain_list_head_txt'] = 'Web Siteleri'; +$wb['aliasdomain_list_head_txt'] = 'Takma Etki Alanları (Sanal Sunucu)'; +$wb['subdomain_list_head_txt'] = 'Alt Etki Alanları (Sanal Sunucu)'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng index b7df7ed9d049b1c6afd48ab009bb4eefd92ecc60..061afec494e79a8ab3600fea7359464ebe4217c9 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng @@ -3,12 +3,12 @@ $wb['list_head_txt'] = 'Web Siteleri'; $wb['domain_id_txt'] = 'Kod'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['parent_domain_id_txt'] = 'Website'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Web Sitesi Ekle'; -$wb['add_new_subdomain_txt'] = 'Add new subdomain'; -$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain'; -$wb['domain_list_head_txt'] = 'Websites'; -$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)'; -$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)'; +$wb['add_new_subdomain_txt'] = 'Alt Etki Alanı Ekle'; +$wb['add_new_aliasdomain_txt'] = 'Takma Etki Alanı Ekle'; +$wb['parent_domain_id_txt'] = 'Web Sitesi'; +$wb['domain_list_head_txt'] = 'Web Siteleri'; +$wb['aliasdomain_list_head_txt'] = 'Takma Etki Alanları (Sanal Sunucu)'; +$wb['subdomain_list_head_txt'] = 'Alt Etki Alanı Adları (Sanal Sunucu)'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng index 2bbcfb661cb1b7775db05ff0a77ca06779036583..7cdf15947a5935773654b863c7f506ebd5acb26a 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng @@ -7,7 +7,7 @@ $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'KuruluÅŸ'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -15,13 +15,14 @@ $wb['ssl_request_txt'] = 'SSL İsteÄŸi'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['host_txt'] = 'Sunucu Adı'; $wb['web_folder_error_regex'] = 'Yazılan klasör geçersiz. Lütfen / karakteri kullanmadan yazın.'; -$wb['type_txt'] = 'Tip'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['type_txt'] = 'Tür'; +$wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -29,30 +30,30 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla baÅŸka alan adı sayısına ulaÅŸtınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt alan adı sayısına ulaÅŸtınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla takma etki alanı sayısına ulaÅŸtınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla alt etki alanı sayısına ulaÅŸtınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boÅŸ olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/baÅŸka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt alan adları kullanılamaz.'; +$wb['domain_error_empty'] = 'Etki alanı boÅŸ olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt etki alanları kullanılamaz.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boÅŸ olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boÅŸ olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boÅŸ olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boÅŸ olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluÅŸu boÅŸ olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boÅŸ olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boÅŸ olamaz'; @@ -60,31 +61,31 @@ $wb['client_group_id_txt'] = 'Müşteri'; $wb['stats_password_txt'] = 'Web istatistikleri parolasını ayarla'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası'; -$wb['ssl_state_error_regex'] = 'SSL ÅŸehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluÅŸu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluÅŸu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; $wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre Dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleÅŸtirilmemiÅŸ. Bir IP adresi için yalnız bir SSL sertifikası etkinleÅŸtirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -99,33 +100,33 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deÄŸeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteÄŸe baÄŸlı iÅŸlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliÄŸini seçerseniz, PHP baÅŸlatılamaz!'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; $wb['rewrite_rules_txt'] = 'Yeniden Yazma Kuralları'; $wb['invalid_rewrite_rules_txt'] = 'Yeniden Yazma Kuralları Geçersiz'; $wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:'; -$wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['configuration_error_txt'] = 'YAPILANDIRMA HATASI'; $wb['variables_txt'] = 'DeÄŸiÅŸkenler'; $wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; $wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; -$wb['subdomain_error_empty'] = 'Alt alan adı boÅŸ ya da geçersiz karakterler içeriyor.'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; +$wb['subdomain_error_empty'] = 'Alt etki alanı boÅŸ ya da geçersiz karakterler içeriyor.'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng index bc7e7622c232eb8f4b41f0463193b4bc1850a918..6527242e2d442bb57f4e34fc01b9e36e605101d1 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Alt Alanlar'; +$wb['list_head_txt'] = 'Alt Etki Alanları'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['domain_txt'] = 'Alt Alan Adı'; -$wb['add_new_record_txt'] = 'Alt alan ekle'; +$wb['domain_txt'] = 'Alt Etki Alanı'; +$wb['add_new_record_txt'] = 'Alt Etki Alanı Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_webdav_user.lng b/interface/web/sites/lib/lang/tr_webdav_user.lng index e592f052c4399691838bbca49c1df986a420b298..c80088da954913a86d66d3851dd0ce5cf5edfd98 100644 --- a/interface/web/sites/lib/lang/tr_webdav_user.lng +++ b/interface/web/sites/lib/lang/tr_webdav_user.lng @@ -4,7 +4,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['active_txt'] = 'Etkin'; $wb['limit_webdav_user_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla webdav kullanıcısı sayısına ulaÅŸtınız.'; $wb['username_error_empty'] = 'Kullanıcı adı boÅŸ olamaz.'; @@ -14,7 +14,7 @@ $wb['directory_error_empty'] = 'Klasör boÅŸ olamaz.'; $wb['parent_domain_id_error_empty'] = 'Bir web sitesi seçmelisiniz.'; $wb['dir_dot_error'] = 'Yol içinde .. kullanılamaz.'; $wb['dir_slashdot_error'] = 'Yol içinde ./ kullanılamaz.'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php index c37f3b74374c021fb97ee0f227aed9e4ff8d2963..775a704873ef4b2239f6c4e5f06b2cd691c269d8 100644 --- a/interface/web/sites/lib/module.conf.php +++ b/interface/web/sites/lib/module.conf.php @@ -157,33 +157,37 @@ if($app->auth->get_client_limit($userid, 'shell_user') != 0 or $app->auth->get_c } // APS menu -if($app->auth->get_client_limit($userid, 'aps') != 0) -{ - $items = array(); - - $items[] = array( 'title' => 'Available packages', - 'target' => 'content', - 'link' => 'sites/aps_availablepackages_list.php', - 'html_id' => 'aps_availablepackages_list'); - - $items[] = array( 'title' => 'Installed packages', - 'target' => 'content', - 'link' => 'sites/aps_installedpackages_list.php', - 'html_id' => 'aps_installedpackages_list'); - - - // Second menu group, available only for admins - if($_SESSION['s']['user']['typ'] == 'admin') - { - $items[] = array( 'title' => 'Update Packagelist', - 'target' => 'content', - 'link' => 'sites/aps_update_packagelist.php', - 'html_id' => 'aps_packagedetails_show'); - } - - $module['nav'][] = array( 'title' => 'APS Installer', - 'open' => 1, - 'items' => $items); +if($app->auth->get_client_limit($userid, 'aps') != 0) { + // read web config + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('sites'); + if($global_config['show_aps_menu'] == 'y') { + $items = array(); + + $items[] = array( 'title' => 'Available packages', + 'target' => 'content', + 'link' => 'sites/aps_availablepackages_list.php', + 'html_id' => 'aps_availablepackages_list'); + + $items[] = array( 'title' => 'Installed packages', + 'target' => 'content', + 'link' => 'sites/aps_installedpackages_list.php', + 'html_id' => 'aps_installedpackages_list'); + + + // Second menu group, available only for admins + if($_SESSION['s']['user']['typ'] == 'admin') + { + $items[] = array( 'title' => 'Update Packagelist', + 'target' => 'content', + 'link' => 'sites/aps_update_packagelist.php', + 'html_id' => 'aps_packagedetails_show'); + } + + $module['nav'][] = array( 'title' => 'APS Installer', + 'open' => 1, + 'items' => $items); + } } // Statistics menu @@ -209,12 +213,14 @@ $items[] = array( 'title' => 'Database quota', 'link' => 'sites/database_quota_stats.php', 'html_id' => 'databse_quota_stats'); -$items[] = array ( - 'title' => 'Backup Stats', - 'target' => 'content', - 'link' => 'sites/backup_stats.php', - 'html_id' => 'backup_stats' -); +if($app->auth->get_client_limit($userid, 'backup') == 'y') { + $items[] = array ( + 'title' => 'Backup Stats', + 'target' => 'content', + 'link' => 'sites/backup_stats.php', + 'html_id' => 'backup_stats' + ); +} $module['nav'][] = array( 'title' => 'Statistics', 'open' => 1, diff --git a/interface/web/sites/lib/remote.conf.php b/interface/web/sites/lib/remote.conf.php index a9ef3236b708a6da3abafd7290a78c4a75cf00ec..19a48e3ca5ddb9df5029e8fd3dd45cf7649d0c57 100644 --- a/interface/web/sites/lib/remote.conf.php +++ b/interface/web/sites/lib/remote.conf.php @@ -9,4 +9,5 @@ $function_list['sites_web_domain_backup'] = 'Sites Backup functions'; $function_list['sites_web_aliasdomain_get,sites_web_aliasdomain_add,sites_web_aliasdomain_update,sites_web_aliasdomain_delete'] = 'Sites Aliasdomain functions'; $function_list['sites_web_subdomain_get,sites_web_subdomain_add,sites_web_subdomain_update,sites_web_subdomain_delete'] = 'Sites Subdomain functions'; $function_list['sites_aps_update_package_list,sites_aps_available_packages_list,sites_aps_change_package_status,sites_aps_install_package,sites_aps_get_package_details,sites_aps_get_package_file,sites_aps_get_package_settings,sites_aps_instance_get,sites_aps_instance_delete'] = 'Sites APS functions'; +$function_list['sites_webdav_user_get,sites_webdav_user_add,sites_webdav_user_update,sites_webdav_user_delete'] = 'Sites WebDAV-User functions'; ?> diff --git a/interface/web/sites/list/aps_installedpackages.list.php b/interface/web/sites/list/aps_installedpackages.list.php index d9a51d8befbd98ea1699cc188134ed368e5a1262..1f855082d5ef25778a793d1f2c58d7c15fd00521 100644 --- a/interface/web/sites/list/aps_installedpackages.list.php +++ b/interface/web/sites/list/aps_installedpackages.list.php @@ -28,6 +28,12 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +// Load the APS language file +$lngfile = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_aps.lng'; +require_once $lngfile; +$app->tpl->setVar($wb); +$app->load_language_file('web/sites/'.$lngfile); + $liste['name'] = 'aps_instances'; // Name of the list $liste['table'] = 'aps_instances'; // Database table $liste['table_idx'] = 'id'; // Table index @@ -85,9 +91,9 @@ $liste["item"][] = array('field' => 'instance_status', 'prefix' => '', 'suffix' => '', 'width' => '', - 'value' => array(INSTANCE_INSTALL => $app->lng('Installation_task'), - INSTANCE_ERROR => $app->lng('Installation_error'), - INSTANCE_SUCCESS => $app->lng('Installation_success'), - INSTANCE_REMOVE => $app->lng('Installation_remove')), + 'value' => array(INSTANCE_INSTALL => $app->lng('installation_task_txt'), + INSTANCE_ERROR => $app->lng('installation_error_txt'), + INSTANCE_SUCCESS => $app->lng('installation_success_txt'), + INSTANCE_REMOVE => $app->lng('installation_remove_txt')), 'table' => 'aps_instances'); ?> diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php index 7f74d893fc54cef87bdbdd423ea7ba6be267a89f..055676ad953759fb13cdd359e74b7f8c7f76f10f 100644 --- a/interface/web/sites/shell_user_edit.php +++ b/interface/web/sites/shell_user_edit.php @@ -75,6 +75,7 @@ class page_action extends tform_actions { $app->uses('getconf,tools_sites'); $global_config = $app->getconf->get_global_config('sites'); + $system_config = $app->getconf->get_global_config(); $shelluser_prefix = $app->tools_sites->replacePrefix($global_config['shelluser_prefix'], $this->dataRecord); if ($this->dataRecord['username'] != ""){ @@ -96,6 +97,8 @@ class page_action extends tform_actions { $app->tpl->setVar("edit_disabled", 0); } + $app->tpl->setVar('ssh_authentication', $system_config['misc']['ssh_authentication']); + parent::onShowEnd(); } @@ -123,6 +126,17 @@ class page_action extends tform_actions { if(isset($this->dataRecord['ssh_rsa'])) $this->dataRecord['ssh_rsa'] = trim($this->dataRecord['ssh_rsa']); + $system_config = $app->getconf->get_global_config(); + + if($system_config['misc']['ssh_authentication'] == 'password') { + $this->dataRecord['ssh_rsa'] = null; + } + + if($system_config['misc']['ssh_authentication'] == 'key') { + $this->dataRecord['password'] = null; + $this->dataRecord['repeat_password'] = null; + } + parent::onSubmit(); } diff --git a/interface/web/sites/templates/aps_install_package.htm b/interface/web/sites/templates/aps_install_package.htm index 2c4b48b9d38d2a243baa8e1b39367a699f5e8b13..255a8685d5a76467c202521c7040a145b43db955 100644 --- a/interface/web/sites/templates/aps_install_package.htm +++ b/interface/web/sites/templates/aps_install_package.htm @@ -57,7 +57,7 @@ <input type="hidden" name="install" value="0" /> <div class="clear"> <div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_install_txt'}" name="btn_install" onclick="document.pageForm.install.value=1; ISPConfig.submitForm('pageForm','sites/aps_install_package.php?id={tmpl_var name='pkg_id'}');">{tmpl_var name='btn_install_txt'}</button> + <button class="btn btn-default formbutton-success positive" type="button" value="{tmpl_var name='btn_install_txt'}" name="btn_install" onclick="document.pageForm.install.value=1; ISPConfig.submitForm('pageForm','sites/aps_install_package.php?id={tmpl_var name='pkg_id'}');">{tmpl_var name='btn_install_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/aps_availablepackages_list.php">{tmpl_var name='btn_cancel_txt'}</button> </div> </div> diff --git a/interface/web/sites/templates/aps_instances_list.htm b/interface/web/sites/templates/aps_instances_list.htm index cfde591b195398190f7afa2f43023847da3b1d0e..ae3d095e7b1d8ab4f6d1064ed9bd387b1201ec2e 100644 --- a/interface/web/sites/templates/aps_instances_list.htm +++ b/interface/web/sites/templates/aps_instances_list.htm @@ -40,7 +40,7 @@ <td><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='instance_status'}</span></td> <td class="text-right"> <tmpl_if name='delete_possible'> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/aps_do_operation.php?action=delete_instance&id={tmpl_var name='id'}','{tmpl_var name='pkg_delete_confirmation'}')"><span class="icon icon-delete"></span></button> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/aps_do_operation.php?action=delete_instance&id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}','{tmpl_var name='pkg_delete_confirmation'}')"><span class="icon icon-delete"></span></button> </tmpl_if> </td> </tr> diff --git a/interface/web/sites/templates/aps_packages_list.htm b/interface/web/sites/templates/aps_packages_list.htm index d3f3f8c3bb10ff4fbbfb70e06b79ed472b07851f..fa3582ed7435709debb13b750e4a1007676cfc6b 100644 --- a/interface/web/sites/templates/aps_packages_list.htm +++ b/interface/web/sites/templates/aps_packages_list.htm @@ -6,7 +6,7 @@ <table class="table"> <thead class="dark form-group-sm"> <tr> - <th>{tmpl_var name='name_txt'}</th> + <th colspan="2">{tmpl_var name='name_txt'}</th> <th>{tmpl_var name='version_txt'}</th> <th>{tmpl_var name='category_txt'}</th> <tmpl_if name='is_admin'> @@ -15,7 +15,7 @@ <th class="small-col text-right"> </th> </tr> <tr> - <td><input class="form-control" type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> + <td colspan="2"><input class="form-control" type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> <td><input class="form-control" type="text" name="search_version" value="{tmpl_var name='search_version'}" /></td> <td><select class="form-control" name="search_category" onChange="ISPConfig.submitForm('pageForm','sites/aps_availablepackages_list.php');">{tmpl_var name='search_category'}</select></td> <tmpl_if name='is_admin'> @@ -27,11 +27,11 @@ <tbody> <tmpl_loop name='records'> <tr> - <td><a href="#" data-load-content="sites/aps_packagedetails_show.php?id={tmpl_var name='id'}">{tmpl_var name='name'}</a></td> + <td colspan="2"><a href="#" data-load-content="sites/aps_packagedetails_show.php?id={tmpl_var name='id'}">{tmpl_var name='name'}</a></td> <td>{tmpl_var name='version'}-{tmpl_var name='release'}</td> <td>{tmpl_var name='category'}</td> <tmpl_if name='is_admin'> - <td><a href="javascript:ISPConfig.loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=change_status&id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');"><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='package_status'}</span></a></td> + <td><a href="javascript:ISPConfig.loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=change_status&id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}');"><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='package_status'}</span></a></td> </tmpl_if> <td class="text-right"> </td> </tr> diff --git a/interface/web/sites/templates/cron_edit.htm b/interface/web/sites/templates/cron_edit.htm index 579ba8af4f969900139c14dd224e225ba08c6950..2c0f22ddb92728b2ef061a0eea1923cfe5ad0c77 100644 --- a/interface/web/sites/templates/cron_edit.htm +++ b/interface/web/sites/templates/cron_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Cron Job</legend> <div class="form-group"> <tmpl_if name="edit_disabled"> <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> @@ -80,4 +73,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/cron_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/cron_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/cron_list.htm b/interface/web/sites/templates/cron_list.htm index b38a6224a5f8bc999194b5e27698200ab7bb0ba7..fbca26a84418c983c48e52b76ec4baea6c1863bb 100644 --- a/interface/web/sites/templates/cron_list.htm +++ b/interface/web/sites/templates/cron_list.htm @@ -56,7 +56,7 @@ <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='command'}">{tmpl_var name="command"}</a></td> <td class="text-right"> <div class="buttons icons16"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/cron_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/cron_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </div> </td> </tr> diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm index aad56db3373a28e5bc7c65966b1f7860e8acc395..724027ca910193620e7cb03aa49b565780eb15f9 100644 --- a/interface/web/sites/templates/database_admin_list.htm +++ b/interface/web/sites/templates/database_admin_list.htm @@ -61,7 +61,7 @@ <a class="btn btn-default formbutton-default formbutton-narrow" href="sites/database_phpmyadmin.php?id={tmpl_var name='id'}" target="phpmyadmin"><span class="icon icon-dbadmin"></span></a> </tmpl_if> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/database_edit.htm b/interface/web/sites/templates/database_edit.htm index 290ae30a96e5a90293699d4caa7628ec4745b431..b4ed450f308f78c20b1f4051c73cfd5b6cd617ae 100644 --- a/interface/web/sites/templates/database_edit.htm +++ b/interface/web/sites/templates/database_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <tmpl_if name="is_admin"> <div class="form-group"> <tmpl_if name="edit_disabled"> @@ -97,6 +90,7 @@ </select></div> </tmpl_if> </div> + <tmpl_unless name="disable_remote_db"> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='remote_access_txt'}</label> <div class="col-sm-9"> @@ -106,6 +100,7 @@ <div class="form-group"> <label for="remote_ips" class="col-sm-3 control-label">{tmpl_var name='remote_ips_txt'}</label> <div class="col-sm-9"><input type="text" name="remote_ips" id="remote_ips" value="{tmpl_var name='remote_ips'}" class="form-control" /></div></div> + </tmpl_if> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> <div class="col-sm-9"> diff --git a/interface/web/sites/templates/database_list.htm b/interface/web/sites/templates/database_list.htm index 0d0aaca92304e1dfb1388fe372fda682214120d5..208741ff5a1d6dd298a8d77ee8d78828ab70cf56 100644 --- a/interface/web/sites/templates/database_list.htm +++ b/interface/web/sites/templates/database_list.htm @@ -75,7 +75,7 @@ <a class="btn btn-default formbutton-default formbutton-narrow" href="sites/database_phpmyadmin.php?id={tmpl_var name='id'}" target="phpmyadmin"><span class="icon icon-dbadmin"></span></a> </tmpl_if> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/database_user_admin_list.htm b/interface/web/sites/templates/database_user_admin_list.htm index 2d7ece0b87236591b4301ff76753672300e8a996..0b7eb1be098ccf09cd3583234d4aaca3f4698af7 100644 --- a/interface/web/sites/templates/database_user_admin_list.htm +++ b/interface/web/sites/templates/database_user_admin_list.htm @@ -33,7 +33,7 @@ <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td> <td class="text-right"> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/database_user_edit.htm b/interface/web/sites/templates/database_user_edit.htm index c9ae106cb02032dd482dadf9fb95329543432a07..8e9c9fd43dfe3f6ef9a7fe46a9b4b445bd21f0da 100644 --- a/interface/web/sites/templates/database_user_edit.htm +++ b/interface/web/sites/templates/database_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <tmpl_if name="is_admin"> <div class="form-group"> <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label> @@ -64,4 +57,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/database_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/database_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/database_user_list.htm b/interface/web/sites/templates/database_user_list.htm index b29d5c060079cb1dbc1577098a6ae86dc2e710c9..3cca7ec51033b4416ea835e20a705b304e48936c 100644 --- a/interface/web/sites/templates/database_user_list.htm +++ b/interface/web/sites/templates/database_user_list.htm @@ -46,7 +46,7 @@ <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_user"}</a></td> <td class="text-right"> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/ftp_user_advanced.htm b/interface/web/sites/templates/ftp_user_advanced.htm index 11069aee97376d495126b9976ec6d87f91be162f..e77c0bcb262e817c4d133fb47dac13f7bf18bf4b 100644 --- a/interface/web/sites/templates/ftp_user_advanced.htm +++ b/interface/web/sites/templates/ftp_user_advanced.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="uid" class="col-sm-3 control-label">{tmpl_var name='uid_txt'}</label> <div class="col-sm-9"><input type="text" name="uid" id="uid" value="{tmpl_var name='uid'}" class="form-control" /></div></div> diff --git a/interface/web/sites/templates/ftp_user_advanced_client.htm b/interface/web/sites/templates/ftp_user_advanced_client.htm index 02479c9e2f372da9bd269b5cf111440b4cfb31b3..c4cb1646ac04150f621ad69c449c7fb442fda850 100644 --- a/interface/web/sites/templates/ftp_user_advanced_client.htm +++ b/interface/web/sites/templates/ftp_user_advanced_client.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="dir" class="col-sm-3 control-label">{tmpl_var name='dir_txt'}</label> <div class="col-sm-9"><input type="text" name="dir" id="dir" value="{tmpl_var name='dir'}" class="form-control" /></div></div> diff --git a/interface/web/sites/templates/ftp_user_edit.htm b/interface/web/sites/templates/ftp_user_edit.htm index 72ec55fbecdd3ce629f255681a3d70e38f86d92d..e9b4e7ff9a2647c25038abd751869f0b2e700c0c 100644 --- a/interface/web/sites/templates/ftp_user_edit.htm +++ b/interface/web/sites/templates/ftp_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control"> @@ -64,4 +57,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/ftp_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/ftp_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/ftp_user_list.htm b/interface/web/sites/templates/ftp_user_list.htm index 43650dac8952330509d365d984ea2160e5d98f25..bd807c5072820c578861fc3db483dd91dee524de 100644 --- a/interface/web/sites/templates/ftp_user_list.htm +++ b/interface/web/sites/templates/ftp_user_list.htm @@ -59,7 +59,7 @@ <tmpl_if name="webftp_link"> <a class="btn btn-default formbutton-default formbutton-narrow" href="{tmpl_var name='webftp_url'}" target="_blank"><span class="icon icon-dbadmin"></span></button> </tmpl_if> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/ftp_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/ftp_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/shell_user_advanced.htm b/interface/web/sites/templates/shell_user_advanced.htm index bcbbdfa16d471731536daf9f3c267048bc7394e7..640497a5716a0a3e05a45f4beef94bb2c9139dbb 100644 --- a/interface/web/sites/templates/shell_user_advanced.htm +++ b/interface/web/sites/templates/shell_user_advanced.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="form-group"> <label for="puser" class="col-sm-3 control-label">{tmpl_var name='puser_txt'}</label> <div class="col-sm-9"><input type="text" name="puser" id="puser" value="{tmpl_var name='puser'}" class="form-control" /></div> @@ -30,4 +25,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/shell_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/shell_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm index 9ea5f183e5181b82779147d8ee98c3b6c128f6bd..c1c23965f14caa87033e9fc42c2a0185b7e33311 100644 --- a/interface/web/sites/templates/shell_user_edit.htm +++ b/interface/web/sites/templates/shell_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <tmpl_if name="edit_disabled"> <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> @@ -28,6 +21,7 @@ </div> </div> </div> + <tmpl_if name="ssh_authentication" op="!=" value="key"> <div class="form-group"> <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label> <div class="col-sm-9"> @@ -55,6 +49,7 @@ <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> </div> </div> + </tmpl_if> <div class="form-group"> <label for="chroot" class="col-sm-3 control-label">{tmpl_var name='chroot_txt'}</label> <div class="col-sm-9"><select name="chroot" id="chroot" class="form-control"> @@ -65,10 +60,12 @@ <label for="quota_size" class="col-sm-3 control-label">{tmpl_var name='quota_size_txt'}</label> <div class="col-sm-9"><div class="input-group"><input type="text" name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" class="form-control" aria-describedby="quota_size-desc" /><span class="input-group-addon" id="quota_size-desc">MB</span></div></div> </div> + <tmpl_if name="ssh_authentication" op="!=" value="password"> <div class="form-group"> <label for="ssh_rsa" class="col-sm-3 control-label">{tmpl_var name='ssh_rsa_txt'}</label> <div class="col-sm-9"><textarea class="form-control" name="ssh_rsa" id="ssh_rsa" rows="10" cols="30">{tmpl_var name='ssh_rsa'}</textarea></div> </div> + </tmpl_if> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> <div class="col-sm-9"> @@ -82,4 +79,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/shell_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/shell_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/shell_user_list.htm b/interface/web/sites/templates/shell_user_list.htm index 9be1d8485dfc144ec893d00624338028c8e5e8ae..53eb6906fab21e79d376a5917ab8fbc0f2241916 100644 --- a/interface/web/sites/templates/shell_user_list.htm +++ b/interface/web/sites/templates/shell_user_list.htm @@ -56,7 +56,7 @@ <td><a href="#" data-load-content="sites/shell_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td> <td><a href="#" data-load-content="sites/shell_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="username"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/shell_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/shell_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm index 31028a703c9d6ff5a5aabb8ee0ea94bea2639452..95c51d0c15e9ebd885b1fbaa71ec472133874ce5 100644 --- a/interface/web/sites/templates/web_backup_list.htm +++ b/interface/web/sites/templates/web_backup_list.htm @@ -1,12 +1,18 @@ +<h3><tmpl_var name="manual_backup_title_txt"></h3> +<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&make_backup=database&','{tmpl_var name='make_backup_confirm_txt'}');">{tmpl_var name="make_backup_database_txt"}</button> +<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&make_backup=web&','{tmpl_var name='make_backup_confirm_txt'}');">{tmpl_var name="make_backup_web_txt"}</button> + <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> + <div id="OKMsg" class="tab-content bg-success text-success text-center"><p><tmpl_var name="msg"></p></div> </tmpl_if> <tmpl_if name="error"> - <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div> + <div id="errorMsg" class="tab-content bg-danger text-danger text-center"> + <h4><tmpl_var name="error_txt"></h4> + <p><tmpl_var name="error"></p> + </div> </tmpl_if> <h3><tmpl_var name="list_head_txt"></h3> - <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p> <div class="table-wrapper marginTop15"> <table class="table table-auto table-striped" style="padding: 5px;"> @@ -14,6 +20,9 @@ <tr> <th data-column="date"><tmpl_var name="date_txt"></th> <th data-column="backup_type"><tmpl_var name="backup_type_txt"></th> + <th data-column="backup_format"><tmpl_var name="backup_format_txt"></th> + <th data-column="backup_job"><tmpl_var name="backup_job_txt"></th> + <th data-column="backup_encrypted"><tmpl_var name="backup_is_encrypted_txt"></th> <th data-column="filename"><tmpl_var name="filename_txt"></th> <th data-column="filesize"><tmpl_var name="filesize_txt"></th> <th class="small-col text-right">{tmpl_var name='search_limit'}</th> @@ -24,6 +33,9 @@ <tr> <td>{tmpl_var name="date"}</td> <td>{tmpl_var name="backup_type"}</td> + <td>{tmpl_var name="backup_format"}</td> + <td>{tmpl_var name="backup_job"}</td> + <td>{tmpl_var name="backup_encrypted"}</td> <td>{tmpl_var name="filename"}</td> <td>{tmpl_var name="filesize"}</td> <td class="text-center"> diff --git a/interface/web/sites/templates/web_childdomain_advanced.htm b/interface/web/sites/templates/web_childdomain_advanced.htm index 1eac3118247f998c9104a96c4e6349eae7b13d4b..e2a1bc49755dd4a6684a5592c5c925b5fb8bf9e3 100644 --- a/interface/web/sites/templates/web_childdomain_advanced.htm +++ b/interface/web/sites/templates/web_childdomain_advanced.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Options</legend> <div class="form-group proxy"> <label for="proxy_directives" class="col-sm-3 control-label">{tmpl_var name='proxy_directives_txt'}</label> <div class="col-sm-9"><textarea class="form-control" name="proxy_directives" id="proxy_directives" rows='10' cols='50'>{tmpl_var name='proxy_directives'}</textarea> <b>{tmpl_var name="available_proxy_directive_snippets_txt"}</b><br><br> {tmpl_var name="proxy_directive_snippets_txt"} diff --git a/interface/web/sites/templates/web_childdomain_edit.htm b/interface/web/sites/templates/web_childdomain_edit.htm index 4836f4a65cd586da1e0624d34d1e2d820cccd267..9e16d3ce94464ff95b58701513763c218936c477 100644 --- a/interface/web/sites/templates/web_childdomain_edit.htm +++ b/interface/web/sites/templates/web_childdomain_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <tmpl_if name="childdomain_type" value="subdomain"> <tmpl_if name="domain_option"> <div class="form-group"> @@ -175,4 +168,4 @@ } }); } -</script> \ No newline at end of file +</script> diff --git a/interface/web/sites/templates/web_childdomain_list.htm b/interface/web/sites/templates/web_childdomain_list.htm index 51aadc157a28b9d63eb3cdab71ca4ddf5d0561c6..8aa5dc3447df99e8b07e75a243ce600b2337c517 100644 --- a/interface/web/sites/templates/web_childdomain_list.htm +++ b/interface/web/sites/templates/web_childdomain_list.htm @@ -56,7 +56,7 @@ <td><a href="#" data-load-content="sites/web_childdomain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td> <td><a href="#" data-load-content="sites/web_childdomain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_childdomain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_childdomain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_folder_edit.htm b/interface/web/sites/templates/web_folder_edit.htm index dd24094434b3e0d04557b477b3e3209b3a4991bb..e3fef0e4775fb5b8ee7111668f8751cbee9442c0 100644 --- a/interface/web/sites/templates/web_folder_edit.htm +++ b/interface/web/sites/templates/web_folder_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Folder</legend> <div class="form-group"> <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control"> diff --git a/interface/web/sites/templates/web_folder_list.htm b/interface/web/sites/templates/web_folder_list.htm index aaccb48895659d22f1978130152305c48882a2f3..e512b8b59440a61fb66133d97aa281517cbc957c 100644 --- a/interface/web/sites/templates/web_folder_list.htm +++ b/interface/web/sites/templates/web_folder_list.htm @@ -55,7 +55,7 @@ <td><a href="#" data-load-content="sites/web_folder_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td> <td><a href="#" data-load-content="sites/web_folder_edit.php?id={tmpl_var name='id'}">{tmpl_var name="path"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_folder_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_folder_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_folder_user_edit.htm b/interface/web/sites/templates/web_folder_user_edit.htm index 5a7ab466c1efb9aaa45885b7719ae2beef09b870..a0c0db81202ae084212f641ed7c2a9933a73ebca 100644 --- a/interface/web/sites/templates/web_folder_user_edit.htm +++ b/interface/web/sites/templates/web_folder_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <legend>Folder</legend> <div class="form-group"> <label for="web_folder_id" class="col-sm-3 control-label">{tmpl_var name='web_folder_id_txt'}</label> <div class="col-sm-9"><select name="web_folder_id" id="web_folder_id" class="form-control"> diff --git a/interface/web/sites/templates/web_folder_user_list.htm b/interface/web/sites/templates/web_folder_user_list.htm index 6b67e0591cd6f9f58767959bf0cf16a4dbedafd3..8e1d77e25dca1d4ec0e9e0c65dc703fb6e7e0984 100644 --- a/interface/web/sites/templates/web_folder_user_list.htm +++ b/interface/web/sites/templates/web_folder_user_list.htm @@ -52,7 +52,7 @@ <td><a href="#" data-load-content="sites/web_folder_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="web_folder_id"}</a></td> <td><a href="#" data-load-content="sites/web_folder_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="username"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_folder_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_folder_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_vhost_domain_admin_list.htm b/interface/web/sites/templates/web_vhost_domain_admin_list.htm index 6f0e8f39ca5938a07d7372eec355e4c488bad46a..85458f732958708bdce17444655dafa331b8bc09 100644 --- a/interface/web/sites/templates/web_vhost_domain_admin_list.htm +++ b/interface/web/sites/templates/web_vhost_domain_admin_list.htm @@ -4,12 +4,12 @@ <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p> - + <button class="btn btn-default formbutton-success" type="button" data-load-content="sites/web_vhost_domain_edit.php?type={tmpl_var name='vhostdomain_type'}"><tmpl_if name='vhostdomain_type' op='==' value='domain'>{tmpl_var name="add_new_record_txt"}</tmpl_if><tmpl_if name='vhostdomain_type' op='==' value='subdomain'>{tmpl_var name="add_new_subdomain_txt"}</tmpl_if><tmpl_if name='vhostdomain_type' op='==' value='aliasdomain'>{tmpl_var name="add_new_aliasdomain_txt"}</tmpl_if></button> - - - + + + <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p> <div class="table-wrapper marginTop15"> <table class="table"> @@ -37,7 +37,7 @@ </thead> <tbody> <tmpl_loop name="records"> - <tr> + <tr <tmpl_if name="warn_inactive"> class="danger" </tmpl_if> > <tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain_id"}</a></td></tmpl_if> <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="active"}</a></td> <tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="sys_groupid"}</a></td></tmpl_if> @@ -46,8 +46,8 @@ <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='domain'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> <a href="http://{tmpl_var name="domain"}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="icon icon-link"></span></a> - <a href="http://{tmpl_var name="domain"}/stats/" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="glyphicon glyphicon-signal"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_vhost_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a href="http://{tmpl_var name="domain"}/stats/" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"<tmpl_if name='stats_type' op='==' value=''> disabled</tmpl_if>><span class="glyphicon glyphicon-signal"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_vhost_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_vhost_domain_advanced.htm b/interface/web/sites/templates/web_vhost_domain_advanced.htm index 0b5ddfbd8bfb1bf818d433940f2fcee0c638f180..f1df422bad7f01ec2bb6bbc741b154b87d739aa8 100644 --- a/interface/web/sites/templates/web_vhost_domain_advanced.htm +++ b/interface/web/sites/templates/web_vhost_domain_advanced.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -49,7 +44,13 @@ <div class="form-group nginx"> <label for="https_port" class="col-sm-3 control-label">{tmpl_var name='https_port_txt'}</label> <div class="col-sm-9"><input name="https_port" id="https_port" value="{tmpl_var name='https_port'}" type="text" class="form-control" /></div> - </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='proxy_protocol_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='proxy_protocol'} + </div> + </div> <div class="phpfpm"> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='php_fpm_use_socket_txt'}</label> diff --git a/interface/web/sites/templates/web_vhost_domain_backup.htm b/interface/web/sites/templates/web_vhost_domain_backup.htm index c31a579fc2972e83725e55bb596b8ec8b922779c..0228ae76bbc4ce80830038c714807697910b1b8f 100644 --- a/interface/web/sites/templates/web_vhost_domain_backup.htm +++ b/interface/web/sites/templates/web_vhost_domain_backup.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -12,7 +7,6 @@ </div> </tmpl_if> - <legend>Backup</legend> <div class="form-group"> <label for="backup_interval" class="col-sm-3 control-label">{tmpl_var name='backup_interval_txt'}</label> <div class="col-sm-9"><select name="backup_interval" id="backup_interval" class="form-control"> @@ -29,7 +23,53 @@ <label for="backup_excludes" class="col-sm-3 control-label">{tmpl_var name='backup_excludes_txt'}</label> <div class="col-sm-6"><input type="text" name="backup_excludes" id="backup_excludes" value="{tmpl_var name='backup_excludes'}" class="form-control" /></div><div class="col-sm-3 input-sm"> {tmpl_var name='backup_excludes_note_txt'} </div></div> - + + <legend>{tmpl_var name='backup_compression_options_txt'}</legend> + <div class="tab-content"> + {tmpl_var name='backup_format_web_note_txt'} + </div> + <tmpl_if name="missing_utils"> + <div class="tab-content bg-warning text-warning"> + {tmpl_var name='backup_missing_utils_txt'} {tmpl_var name='missing_utils'} + </div> + </tmpl_if> + <div class="form-group"> + <label for="backup_format_web" class="col-sm-3 control-label">{tmpl_var name='backup_format_web_txt'}</label> + <div class="col-sm-9"> + <select name="backup_format_web" id="backup_format_web" class="form-control"> + {tmpl_var name='backup_format_web'} + </select> + </div> + </div> + <div class="form-group"> + <label for="backup_format_db" class="col-sm-3 control-label">{tmpl_var name='backup_format_db_txt'}</label> + <div class="col-sm-9"> + <select name="backup_format_db" id="backup_format_db" class="form-control"> + {tmpl_var name='backup_format_db'} + </select> + </div> + </div> + + <legend>{tmpl_var name='backup_encryption_options_txt'}</legend> + <div class="tab-content"> + {tmpl_var name='backup_encryption_note_txt'} + </div> + <div class="form-group"> + <label class="col-sm-3 control-label"> + {tmpl_var name='backup_enable_encryption_txt'} + </label> + <div class="col-sm-9"> + {tmpl_var name="backup_encrypt"} + </div> + </div> + <div class="form-group"> + <label for="backup_password" class="col-sm-3 control-label"> + {tmpl_var name='backup_password_txt'} + </label> + <div class="col-sm-9"> + <input type="text" name="backup_password" id="backup_password" value="{tmpl_var name='backup_password'}" class="form-control" /> + </div> + </div> {tmpl_var name='backup_records'} @@ -38,4 +78,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/web_vhost_domain_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/web_vhost_domain_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm index 149d4308875af598dfb80c0165a7da816da68da0..8728d9c571b038f7201363c00c20adbfef19859e 100644 --- a/interface/web/sites/templates/web_vhost_domain_edit.htm +++ b/interface/web/sites/templates/web_vhost_domain_edit.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -92,7 +87,9 @@ <tmpl_if name="edit_disabled"> <div class="form-group"> <label for="document_root" class="col-sm-3 control-label" readonly >{tmpl_var name='document_root_txt'}</label> - <div class="col-sm-9">{tmpl_var name='document_root'}</div> + <div class="col-sm-9"> + <div class="checkbox">{tmpl_var name='document_root'}</div> + </div> </div> </tmpl_if> <div class="form-group"> @@ -224,12 +221,15 @@ {tmpl_var name='php'} </select></div> </div> - {tmpl_hook name="field_fastcgi_php_version"} - <div class="form-group fastcgi_php_version"> - <label for="fastcgi_php_version" class="col-sm-3 control-label">{tmpl_var name='fastcgi_php_version_txt'}</label> - <div class="col-sm-9"><select name="fastcgi_php_version" id="fastcgi_php_version" class="form-control"> - {tmpl_var name='fastcgi_php_version'} + {tmpl_hook name="field_server_php_id"} + <div class="form-group server_php_id"> + <label for="server_php_id" class="col-sm-3 control-label">{tmpl_var name='server_php_id_txt'}</label> + <div class="col-sm-9"><select name="server_php_id" id="server_php_id" class="form-control"> + {tmpl_var name='server_php_id'} </select></div> + <tmpl_if name="server_php_id_default_hidden_warning_confirmed"> + <input type="hidden" id="server_php_id_default_hidden_warning_confirmed" name="server_php_id_default_hidden_warning_confirmed" value="{tmpl_var name='server_php_id_default_hidden_warning_confirmed'}" /> + </tmpl_if> </div> <tmpl_if name="limit_directive_snippets" op="==" value="y"><div class="form-group"> <label for="directive_snippets_id" class="col-sm-3 control-label">{tmpl_var name='directive_snippets_id_txt'}</label> @@ -280,46 +280,56 @@ serverId = $(this).val(); adjustForm(); reloadWebIP(); - reloadFastcgiPHPVersions(); + reloadServerPHPVersions(); reloadDirectiveSnippets(); }); } adjustForm(true); - reloadFastcgiPHPVersions(true); - + reloadServerPHPVersions(true); + jQuery('#client_group_id').change(function(){ clientGroupId = $(this).val(); reloadWebIP(); - reloadFastcgiPHPVersions(); + reloadServerPHPVersions(); }); - + if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm' || (jQuery('#php').val() == 'hhvm' && serverType == 'nginx')){ - jQuery('.fastcgi_php_version:hidden').show(); + jQuery('.server_php_id:hidden').show(); + // This block can be removed? if(jQuery('#php').val() == 'hhvm'){ - jQuery('#fastcgi_php_version_txt').hide(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').hide(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').show(); } else { - jQuery('#fastcgi_php_version_txt').show(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').show(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').hide(); } } else { - jQuery('.fastcgi_php_version:visible').hide(); + jQuery('.server_php_id:visible').hide(); } //ISPConfig.resetFormChanged(); - + jQuery('#php').change(function(){ - reloadFastcgiPHPVersions(); - if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm' || (jQuery(this).val() == 'hhvm' && serverType == 'nginx')){ - jQuery('.fastcgi_php_version:hidden').show(); + reloadServerPHPVersions(); + if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm' || (jQuery(this).val() == 'hhvm' && serverType == 'nginx')){ + jQuery('.server_php_id:hidden').show(); + // This block can be removed? if(jQuery(this).val() == 'hhvm'){ - jQuery('#fastcgi_php_version_txt').hide(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').hide(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').show(); } else { - jQuery('#fastcgi_php_version_txt').show(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').show(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').hide(); } } else { - jQuery('.fastcgi_php_version:visible').hide(); + jQuery('.server_php_id:visible').hide(); } }); jQuery('#parent_domain_id').change(function() { @@ -328,7 +338,7 @@ // new Vhostsubdomains/Vhostaliasdomains if(serverId == '') jQuery('#parent_domain_id').trigger('change'); -/* +/* if(jQuery('#directive_snippets_id').val() > 0){ jQuery('.pagespeed').show(); } else { @@ -342,16 +352,16 @@ } }); */ - + function reloadServerId(noFormChange) { var parentWebId = jQuery('#parent_domain_id').val(); jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : parentWebId, type : "getserverid"}, function(data) { if(data.serverid) serverId = data.serverid; adjustForm(noFormChange); - if(noFormChange) reloadFastcgiPHPVersions(noFormChange); + if(noFormChange) reloadServerPHPVersions(noFormChange); }); } - + function adjustForm(noFormChange){ jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { if(data.servertype == "nginx"){ @@ -391,14 +401,10 @@ } if(noFormChange) { ISPConfig.resetFormChanged(); - jQuery('#php').addClass('no-page-form-change').change(); - jQuery('#php').removeClass('no-page-form-change'); - } else { - jQuery('#php').change(); } }); } - + function reloadDirectiveSnippets() { jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getdirectivesnippet"}, function(data) { var options = '<option value="0">-</option>'; @@ -413,7 +419,7 @@ options += '<option ' + isSelected + ' value="' + data['m_snippets'][i]['directive_snippets_id'] + '">' + data['m_snippets'][i]['name'] + '</option>'; } options += '</optgroup>'; - + options += "<optgroup label=\"{tmpl_var name='select_directive_snippet_txt'}\">"; for (var i = 0, len = data['snippets'].length; i < len; i++) { var isSelected = ''; @@ -429,7 +435,7 @@ $('#directive_snippets_id').html(options).change(); }); } - + function reloadWebIP() { ISPConfig.loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId<tmpl_if name="use_combobox" value="y">, rerenderSelect2</tmpl_if>); ISPConfig.loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId<tmpl_if name="use_combobox" value="y">, rerenderSelect2</tmpl_if>); @@ -437,43 +443,43 @@ //$('#ip_address').add('#ipv6_address').select2(); </tmpl_if> } - + function rerenderSelect2(elem) { $('#'+elem).select2(); } - - function reloadFastcgiPHPVersions(noFormChange) { - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi", client_group_id : clientGroupId}, function(data) { + + function reloadServerPHPVersions(noFormChange) { + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getserverphp", client_group_id : clientGroupId}, function(data) { //var options = '<option value="">Default</option>'; var options = ''; - var phpfastcgiselected = ''; + var serverphpidselected = ''; $.each(data, function(key, val) { <tmpl_if name="id"> - if($('#fastcgi_php_version').val() == key){ - phpfastcgiselected = ' selected="selected"'; + if($('#server_php_id').val() == key){ + serverphpidselected = ' selected="selected"'; } else { - phpfastcgiselected = ''; + serverphpidselected = ''; } </tmpl_else> - phpfastcgiselected = ''; + serverphpidselected = ''; </tmpl_if> - options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>'; + options += '<option value="'+key+'"'+serverphpidselected+'>'+val+'</option>'; }); <tmpl_if name="id"> - if($('#fastcgi_php_version').val() == ''){ - phpfastcgiselected = ' selected="selected"'; + if($('#server_php_id').val() == '0'){ + serverphpidselected = ' selected="selected"'; } else { - phpfastcgiselected = ''; + serverphpidselected = ''; } </tmpl_else> - phpfastcgiselected = ''; + serverphpidselected = ''; </tmpl_if> - //options += '<option value=""'+phpfastcgiselected+'>{tmpl_var name="default_php_txt"}</option>'; - $('#fastcgi_php_version').html(options).change(); + //options += '<option value=""'+serverphpidselected+'>{tmpl_var name="default_php_txt"}</option>'; + $('#server_php_id').html(options).change(); if(noFormChange) ISPConfig.resetFormChanged(); }); } - + <tmpl_if name="readonly_tab"> jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').not('#directive_snippets_id').bind('click mousedown', function(e) { e.preventDefault(); }).focus(function() { $(this).blur(); }); jQuery('#dom-edit-submit').click(function() { @@ -484,7 +490,7 @@ ISPConfig.submitForm('pageForm','sites/web_vhost_domain_edit.php'); }); </tmpl_if> - + if($('#domain').val() == ''){ $('#web_folder_domain').text('[DOMAIN]'); } else { @@ -497,9 +503,9 @@ $('#web_folder_domain').text($('#domain').val()); } }); - + $('#more_folder_directive_snippets').click(function(){ $('.folder_directive_snippets:hidden:first').removeClass('hidden'); }); - + </script> diff --git a/interface/web/sites/templates/web_vhost_domain_list.htm b/interface/web/sites/templates/web_vhost_domain_list.htm index b784f159652e7d51a6a8231c10f4630c7bf3af7f..3726a707f4d067ab84f2a6d02b698f2332a23155 100644 --- a/interface/web/sites/templates/web_vhost_domain_list.htm +++ b/interface/web/sites/templates/web_vhost_domain_list.htm @@ -21,12 +21,12 @@ </div> </tmpl_if> <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p> - + <button class="btn btn-default formbutton-success" type="button" data-load-content="sites/web_vhost_domain_edit.php?type={tmpl_var name='vhostdomain_type'}"><tmpl_if name='vhostdomain_type' op='==' value='domain'>{tmpl_var name="add_new_record_txt"}</tmpl_if><tmpl_if name='vhostdomain_type' op='==' value='subdomain'>{tmpl_var name="add_new_subdomain_txt"}</tmpl_if><tmpl_if name='vhostdomain_type' op='==' value='aliasdomain'>{tmpl_var name="add_new_aliasdomain_txt"}</tmpl_if></button> - - - + + + <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p> <div class="table-wrapper marginTop15"> <table class="table"> @@ -52,7 +52,7 @@ </thead> <tbody> <tmpl_loop name="records"> - <tr> + <tr <tmpl_if name="warn_inactive"> class="danger" </tmpl_if> > <tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain_id"}</a></td></tmpl_if> <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="active"}</a></td> <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td> @@ -60,8 +60,8 @@ <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='domain'}">{tmpl_var name="domain"}</a></td> <td class="text-right"> <a href="http://{tmpl_var name="domain"}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="icon icon-link"></span></button> - <a href="http://{tmpl_var name="domain"}/stats/" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="glyphicon glyphicon-signal"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_vhost_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + <a href="http://{tmpl_var name="domain"}/stats/" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"<tmpl_if name='stats_type' op='==' value=''> disabled</tmpl_if>><span class="glyphicon glyphicon-signal"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/web_vhost_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_vhost_domain_redirect.htm b/interface/web/sites/templates/web_vhost_domain_redirect.htm index e38c08671c7a5899af323fee3e4e90b1776531b2..3326d5ec96592b324e20979d5552472f6c5e9bc3 100644 --- a/interface/web/sites/templates/web_vhost_domain_redirect.htm +++ b/interface/web/sites/templates/web_vhost_domain_redirect.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -94,4 +89,4 @@ }); } -</script> \ No newline at end of file +</script> diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm index ad9629fe4cdf670eb8087e9980b6dbcbf1ad5296..d4ec6749e27a602f6857f7da0e736b9364dcf127 100644 --- a/interface/web/sites/templates/web_vhost_domain_ssl.htm +++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> @@ -67,15 +62,7 @@ {tmpl_var name='ssl_action'} </select></div> </div> - {tmpl_if name="is_spdy_enabled"} - <div class="form-group"> - <label class="col-sm-3 control-label">{tmpl_var name='enable_spdy_txt'}</label> - <div class="col-sm-9"> - {tmpl_var name="enable_spdy"} - </div> - </div> - {/tmpl_if} - + <input type="hidden" name="id" value="{tmpl_var name='id'}"> @@ -96,11 +83,11 @@ $('#load_data').click(function(){ loadClientData(); }); - - + + function loadClientData() { var web_id = $("input[name=id]").val(); - + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {'web_id': web_id, 'type': "getclientssldata"}, function(data) { $('#ssl_organisation').val(data['company_name']); $('#ssl_locality').val(data['city']); @@ -111,4 +98,4 @@ } </tmpl_if> //--> -</script> \ No newline at end of file +</script> diff --git a/interface/web/sites/templates/web_vhost_domain_stats.htm b/interface/web/sites/templates/web_vhost_domain_stats.htm index 66c9fa3c94c75063842a28f06477816d0fe369dd..6ebf9a6613855ea51ad391698440805979655795 100644 --- a/interface/web/sites/templates/web_vhost_domain_stats.htm +++ b/interface/web/sites/templates/web_vhost_domain_stats.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <tmpl_if name="config_error_msg"> <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> diff --git a/interface/web/sites/templates/webdav_user_edit.htm b/interface/web/sites/templates/webdav_user_edit.htm index ee261ec29e52a10b6f717362ee42dbdf46c5ac63..3ea8ed2776a56272485c4800b138a65fbf6984c2 100644 --- a/interface/web/sites/templates/webdav_user_edit.htm +++ b/interface/web/sites/templates/webdav_user_edit.htm @@ -1,10 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - - <div class="form-group"> <tmpl_if name="edit_disabled"> <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> @@ -76,4 +69,4 @@ <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/webdav_user_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/webdav_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/sites/templates/webdav_user_list.htm b/interface/web/sites/templates/webdav_user_list.htm index 01764cc2fe0070d7d4b343a66b5ce8ab58ee25c4..866bcc9826ec302d9c13581a81924de2e626e9b6 100644 --- a/interface/web/sites/templates/webdav_user_list.htm +++ b/interface/web/sites/templates/webdav_user_list.htm @@ -56,7 +56,7 @@ <td><a href="#" data-load-content="sites/webdav_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td> <td><a href="#" data-load-content="sites/webdav_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="username"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/webdav_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/webdav_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/sites/user_quota_stats.php b/interface/web/sites/user_quota_stats.php index 9c9300807647fa9b499279a0900ac2d43fab3feb..8c641eede9726d7f9f0818c840872bb018887263 100644 --- a/interface/web/sites/user_quota_stats.php +++ b/interface/web/sites/user_quota_stats.php @@ -63,8 +63,8 @@ class list_action extends listform_actions { $rec['used']=$app->functions->formatBytes($rec['used']*1024); $rec['soft']=$app->functions->formatBytes($rec['soft']*1024); $rec['hard']=$app->functions->formatBytes($rec['hard']*1024); - if($rec['soft'] == "NAN") $rec['soft'] = $app->lng('unlimited'); - if($rec['hard'] == "NAN") $rec['hard'] = $app->lng('unlimited'); + if($rec['soft'] == "NAN") $rec['soft'] = $app->lng('unlimited_txt'); + if($rec['hard'] == "NAN") $rec['hard'] = $app->lng('unlimited_txt'); /* if($rec['used'] > 1024) { $rec['used'] = round($rec['used'] / 1024, 2).' MB'; @@ -84,8 +84,8 @@ class list_action extends listform_actions { $rec['hard'] .= ' KB'; } - if($rec['soft'] == " KB") $rec['soft'] = $app->lng('unlimited'); - if($rec['hard'] == " KB") $rec['hard'] = $app->lng('unlimited'); + if($rec['soft'] == " KB") $rec['soft'] = $app->lng('unlimited_txt'); + if($rec['hard'] == " KB") $rec['hard'] = $app->lng('unlimited_txt'); */ /* @@ -94,8 +94,8 @@ class list_action extends listform_actions { if(!strstr($rec['hard'],'M') && !strstr($rec['hard'],'K')) $rec['hard'].= ' B'; */ /* - if($rec['soft'] == '0 B' || $rec['soft'] == '0 KB' || $rec['soft'] == '0') $rec['soft'] = $app->lng('unlimited'); - if($rec['hard'] == '0 B' || $rec['hard'] == '0 KB' || $rec['hard'] == '0') $rec['hard'] = $app->lng('unlimited'); + if($rec['soft'] == '0 B' || $rec['soft'] == '0 KB' || $rec['soft'] == '0') $rec['soft'] = $app->lng('unlimited_txt'); + if($rec['hard'] == '0 B' || $rec['hard'] == '0 KB' || $rec['hard'] == '0') $rec['hard'] = $app->lng('unlimited_txt'); */ //* The variable "id" contains always the index variable $rec['id'] = $rec[$this->idx_key]; diff --git a/interface/web/sites/web_childdomain_edit.php b/interface/web/sites/web_childdomain_edit.php index 2da58a4661c4342dfe92402dc6c23aace687ae91..019057b3bead2028605db6bc077ee1d5cfb7fc8f 100644 --- a/interface/web/sites/web_childdomain_edit.php +++ b/interface/web/sites/web_childdomain_edit.php @@ -106,7 +106,7 @@ class page_action extends tform_actions { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain"); - $domain_select = ''; + $domain_select = "<option value=''></option>"; $selected_domain = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index 8d43e21fad758459d3013ecb9e90b6005e010711..cc476a2276f8c87206859aa9bdb4717e30be4df6 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -79,7 +79,7 @@ class page_action extends tform_actions { $_SESSION['s']['var']['vhostdomain_type'] = $show_type; $this->_vhostdomain_type = $show_type; - + parent::onLoad(); } @@ -143,7 +143,7 @@ class page_action extends tform_actions { $read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl', 'limit_ssl_letsencrypt', 'limit_directive_snippets'); if($this->_vhostdomain_type != 'domain') $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ?", @$this->dataRecord["parent_domain_id"]); - + $is_admin = false; //* Client: If the logged in user is not admin and has no sub clients (no reseller) @@ -164,7 +164,7 @@ class page_action extends tform_actions { $client['web_servers_ids'][] = $this->dataRecord['server_id']; $client['web_servers_ids'] = array_unique($client['web_servers_ids']); } - + $only_one_server = count($client['web_servers_ids']) === 1; $app->tpl->setVar('only_one_server', $only_one_server); @@ -195,7 +195,7 @@ class page_action extends tform_actions { } else { $server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 0; } - + if($app->functions->intval($this->dataRecord["server_id"]) > 0) { // check if server is in client's servers or add it. $chk_sid = explode(',', $client['web_servers']); @@ -204,9 +204,9 @@ class page_action extends tform_actions { $client['web_servers'] .= $app->functions->intval($this->dataRecord["server_id"]); } } - + //* Fill the IPv4 select field with the IP addresses that are allowed for this client on the current server - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND virtualhost = 'y' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; $ips = $app->db->queryAllRecords($sql, $server_id); $ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; //if(!in_array($this->dataRecord["ip_address"], $ips)) $ip_select .= "<option value='".$this->dataRecord["ip_address"]."' SELECTED>".$this->dataRecord["ip_address"]."</option>\r\n"; @@ -222,7 +222,7 @@ class page_action extends tform_actions { unset($ips); //* Fill the IPv6 select field with the IP addresses that are allowed for this client - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); //$ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; //$ip_select = ""; @@ -257,19 +257,16 @@ class page_action extends tform_actions { $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ? AND (client_id = 0 OR client_id=?) AND active = 'y'", $parent_domain['server_id'], $_SESSION['s']['user']['client_id']); } } - $php_select = "<option value=''>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { + $php_select = "<option value='0'>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + } if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - if($this->dataRecord['php'] == 'php-fpm' || ($this->dataRecord['php'] == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; - } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; - } - $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; - $php_select .= "<option value='" . $app->functions->htmlentities($php_version) . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; + $selected = ($php_record['server_php_id'] == $this->dataRecord["server_php_id"])?'SELECTED':''; + $php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; } } - $app->tpl->setVar("fastcgi_php_version", $php_select); + $app->tpl->setVar("server_php_id", $php_select); unset($php_records); // add limits to template to be able to hide settings @@ -310,7 +307,7 @@ class page_action extends tform_actions { $app->tpl->setVar("server_id", $options_web_servers); unset($options_web_servers); - + if($this->id > 0) { if(!isset($this->dataRecord["server_id"])){ $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ?", $this->id); @@ -350,9 +347,9 @@ class page_action extends tform_actions { $client['web_servers'] .= $app->functions->intval($this->dataRecord["server_id"]); } } - + //* Fill the IPv4 select field with the IP addresses that are allowed for this client - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=?)"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); $ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; //if(!in_array($this->dataRecord["ip_address"], $ips)) $ip_select .= "<option value='".$this->dataRecord["ip_address"]."' SELECTED>".$this->dataRecord["ip_address"]."</option>\r\n"; @@ -368,7 +365,7 @@ class page_action extends tform_actions { unset($ips); //* Fill the IPv6 select field with the IP addresses that are allowed for this client - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); $ip_select = "<option value=''></option>"; //$ip_select = ""; @@ -403,19 +400,16 @@ class page_action extends tform_actions { $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ? AND (client_id = 0 OR client_id=?) AND active = 'y'", $parent_domain['server_id'], $_SESSION['s']['user']['client_id']); } } - $php_select = "<option value=''>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { + $php_select = "<option value='0'>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + } if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - if($this->dataRecord['php'] == 'php-fpm' || ($this->dataRecord['php'] == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; - } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; - } - $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; - $php_select .= "<option value='" . $app->functions->htmlentities($php_version) . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; + $selected = ($php_record['server_php_id'] == $this->dataRecord["server_php_id"])?'SELECTED':''; + $php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; } } - $app->tpl->setVar("fastcgi_php_version", $php_select); + $app->tpl->setVar("server_php_id", $php_select); unset($php_records); // add limits to template to be able to hide settings @@ -434,7 +428,7 @@ class page_action extends tform_actions { } $php_directive_snippets_txt .= '<br><br>'; } - + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ $php_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -457,7 +451,7 @@ class page_action extends tform_actions { } $apache_directive_snippets_txt .= '<br><br>'; } - + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ $apache_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -481,7 +475,7 @@ class page_action extends tform_actions { } $nginx_directive_snippets_txt .= '<br><br>'; } - + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ $nginx_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -504,7 +498,7 @@ class page_action extends tform_actions { } $proxy_directive_snippets_txt .= '<br><br>'; } - + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ $proxy_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -519,7 +513,7 @@ class page_action extends tform_actions { //* Admin: If the logged in user is admin } else { - + $is_admin = true; if($this->_vhostdomain_type == 'domain') { @@ -549,7 +543,7 @@ class page_action extends tform_actions { } //* Fill the IPv4 select field - $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv4' AND server_id = ?"; + $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv4' AND virtualhost = 'y' AND server_id = ?"; $ips = $app->db->queryAllRecords($sql, $server_id); $ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; //$ip_select = ""; @@ -564,7 +558,7 @@ class page_action extends tform_actions { unset($ips); //* Fill the IPv6 select field - $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND server_id = ?"; + $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' AND server_id = ?"; $ips = $app->db->queryAllRecords($sql, $server_id); $ip_select = "<option value=''></option>"; //$ip_select = ""; @@ -623,19 +617,16 @@ class page_action extends tform_actions { $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ? AND active = 'y'", $parent_domain['server_id']); } } - $php_select = "<option value=''>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { + $php_select = "<option value='0'>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + } if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - if($this->dataRecord['php'] == 'php-fpm' || ($this->dataRecord['php'] == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; - } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; - } - $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; - $php_select .= "<option value='" . $app->functions->htmlentities($php_version) . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; + $selected = ($php_record['server_php_id'] == $this->dataRecord["server_php_id"])?'SELECTED':''; + $php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; } } - $app->tpl->setVar("fastcgi_php_version", $php_select); + $app->tpl->setVar("server_php_id", $php_select); unset($php_records); foreach($read_limits as $limit) $app->tpl->setVar($limit, ($limit == 'force_suexec' ? 'n' : 'y')); @@ -651,7 +642,7 @@ class page_action extends tform_actions { } $php_directive_snippets_txt .= '<br><br>'; } - + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ $php_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -674,7 +665,7 @@ class page_action extends tform_actions { } $apache_directive_snippets_txt .= '<br><br>'; } - + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ $apache_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -698,7 +689,7 @@ class page_action extends tform_actions { } $nginx_directive_snippets_txt .= '<br><br>'; } - + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ $nginx_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -721,7 +712,7 @@ class page_action extends tform_actions { } $proxy_directive_snippets_txt .= '<br><br>'; } - + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y' AND master_directive_snippets_id = 0 ORDER BY name"); if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ $proxy_directive_snippets_txt .= $app->tform->wordbook["select_directive_snippet_txt"].'<br>'; @@ -783,7 +774,7 @@ class page_action extends tform_actions { * The domain-module is in use. */ $domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain"); - $domain_select = ''; + $domain_select = "<option value=''></option>"; $selected_domain = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ @@ -809,16 +800,16 @@ class page_action extends tform_actions { $domain_select .= "<option value=''></option>\r\n"; } $app->tpl->setVar("domain_option", $domain_select); - + // remove the parent domain part of the domain name before we show it in the text field. if($this->dataRecord["type"] == 'vhostsubdomain') $this->dataRecord["domain"] = str_replace('.'.$selected_domain, '', $this->dataRecord["domain"]); - + } else { // remove the parent domain part of the domain name before we show it in the text field. if($this->dataRecord["type"] == 'vhostsubdomain') $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"], '', $this->dataRecord["domain"]); } - + if($this->_vhostdomain_type != 'domain') $app->tpl->setVar("domain", $this->dataRecord["domain"], true); // check for configuration errors in sys_datalog @@ -831,13 +822,12 @@ class page_action extends tform_actions { } } } - + $app->tpl->setVar('vhostdomain_type', $this->_vhostdomain_type, true); - $app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y')); $app->tpl->setVar('is_pagespeed_enabled', ($web_config['nginx_enable_pagespeed'] === 'y')); $app->tpl->setVar("is_admin", $is_admin); - + if($this->id > 0) { $tmp_web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", intval($this->id)); $tmp_sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", intval($tmp_web['sys_groupid'])); @@ -850,11 +840,11 @@ class page_action extends tform_actions { if($sys_config['use_combobox'] == 'y') { $app->tpl->setVar('use_combobox', 'y'); } - + $directive_snippets_id_select = '<option value="0"'.($this->dataRecord['directive_snippets_id'] == 0? ' selected="selected"' : '').'>-</option>'; $server_type = $app->getconf->get_server_config($server_id, 'web'); $server_type = $server_type['server_type']; - + $m_directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id > 0 AND type = ? ORDER BY name ASC", $server_type); if(is_array($m_directive_snippets) && !empty($m_directive_snippets)){ $directive_snippets_id_select .= '<optgroup label="'.$app->tform->wordbook["select_master_directive_snippet_txt"].'">'; @@ -863,8 +853,12 @@ class page_action extends tform_actions { } $directive_snippets_id_select .= '</optgroup>'; } - - $directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + + if($is_admin) { + $directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + } else { + $directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + } if(is_array($directive_snippets) && !empty($directive_snippets)){ $directive_snippets_id_select .= '<optgroup label="'.$app->tform->wordbook["select_directive_snippet_txt"].'">'; foreach($directive_snippets as $directive_snippet){ @@ -873,7 +867,7 @@ class page_action extends tform_actions { $directive_snippets_id_select .= '</optgroup>'; } $app->tpl->setVar("directive_snippets_id", $directive_snippets_id_select); - + // folder_directive_snippets if(isset($_POST['folder_directive_snippets']) && !isset($this->dataRecord['folder_directive_snippets'])){ $this->dataRecord['folder_directive_snippets'] = ''; @@ -884,10 +878,10 @@ class page_action extends tform_actions { } $this->dataRecord['folder_directive_snippets'] = trim($this->dataRecord['folder_directive_snippets']); } - + $master_directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND snippet LIKE '%{FOLDER}%' AND master_directive_snippets_id > 0 AND type = ? ORDER BY name ASC", $server_type); $c_directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND snippet LIKE '%{FOLDER}%' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); - + $folder_directive_snippets = array(); $this->dataRecord['folder_directive_snippets'] = str_replace("\r\n", "\n", $this->dataRecord['folder_directive_snippets']); $this->dataRecord['folder_directive_snippets'] = str_replace("\r", "\n", $this->dataRecord['folder_directive_snippets']); @@ -910,7 +904,7 @@ class page_action extends tform_actions { } $folder_directive_snippets[$i]['folder_directive_snippets_id'] .= '</optgroup>'; } - + if(is_array($c_directive_snippets) && !empty($c_directive_snippets)){ $folder_directive_snippets[$i]['folder_directive_snippets_id'] .= '<optgroup label="'.$app->tform->wordbook["select_directive_snippet_txt"].'">'; foreach($c_directive_snippets as $c_directive_snippet){ @@ -928,7 +922,7 @@ class page_action extends tform_actions { } $folder_directive_snippets[$i]['folder_directive_snippets_id'] .= '</optgroup>'; } - + if(is_array($c_directive_snippets) && !empty($c_directive_snippets)){ $folder_directive_snippets[$i]['folder_directive_snippets_id'] .= '<optgroup label="'.$app->tform->wordbook["select_directive_snippet_txt"].'">'; foreach($c_directive_snippets as $c_directive_snippet){ @@ -940,10 +934,8 @@ class page_action extends tform_actions { } $app->tpl->setLoop('folder_directive_snippets', $folder_directive_snippets); if(is_array($web_config[$server_id])) { - $app->tpl->setVar('is_spdy_enabled', ($web_config[$server_id]['enable_spdy'] === 'y')); $app->tpl->setVar('is_pagespeed_enabled', ($web_config[$server_id]['nginx_enable_pagespeed'])); } else { - $app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y')); $app->tpl->setVar('is_pagespeed_enabled', ($web_config['nginx_enable_pagespeed'])); } @@ -997,7 +989,7 @@ class page_action extends tform_actions { $app->tform->errorMessage .= $app->tform->lng("subdomain_error_empty")."<br />"; } } - + /* check if the domain module is used - and check if the selected domain can be used! */ $app->uses('ini_parser,getconf'); $settings = $app->getconf->get_global_config('domains'); @@ -1023,11 +1015,7 @@ class page_action extends tform_actions { $this->dataRecord['web_folder'] = strtolower($this->dataRecord['web_folder']); if(substr($this->dataRecord['web_folder'], 0, 1) === '/') $this->dataRecord['web_folder'] = substr($this->dataRecord['web_folder'], 1); if(substr($this->dataRecord['web_folder'], -1) === '/') $this->dataRecord['web_folder'] = substr($this->dataRecord['web_folder'], 0, -1); - $forbidden_folders = array('', 'cgi-bin', 'log', 'private', 'ssl', 'tmp', 'webdav'); - $check_folder = strtolower($this->dataRecord['web_folder']); - if(substr($check_folder, 0, 1) === '/') $check_folder = substr($check_folder, 1); // strip / at beginning to check against forbidden entries - if(strpos($check_folder, '/') !== false) $check_folder = substr($check_folder, 0, strpos($check_folder, '/')); // get the first part of the path to check it - if(in_array($check_folder, $forbidden_folders)) { + if($app->system->is_blacklisted_web_path($this->dataRecord['web_folder'])) { $app->tform->errorMessage .= $app->tform->lng("web_folder_invalid_txt")."<br>"; } @@ -1063,8 +1051,13 @@ class page_action extends tform_actions { } else { $old_web_values = array(); } - + if($this->_vhostdomain_type == 'domain') { + //* ensure that quota value is not 0 when vhost type = domain + if(isset($_POST["hd_quota"]) && $_POST["hd_quota"] == 0) { + $app->tform->errorMessage .= $app->tform->lng("limit_web_quota_not_0_txt")."<br>"; + } + //* Check the website quota of the client if(isset($_POST["hd_quota"]) && $client["limit_web_quota"] >= 0 && $_POST["hd_quota"] != $old_web_values["hd_quota"]) { $tmp = $app->db->queryOneRecord("SELECT sum(hd_quota) as webquota FROM web_domain WHERE domain_id != ? AND type = 'vhost' AND ".$app->tform->getAuthSQL('u'), $this->id); @@ -1159,7 +1152,7 @@ class page_action extends tform_actions { if($this->dataRecord['ssl'] == 'n') $this->dataRecord['ssl'] = $tmp['ssl']; if($this->dataRecord['ssl_letsencrypt'] == 'n') $this->dataRecord['ssl_letsencrypt'] = $tmp['ssl_letsencrypt']; if($this->dataRecord['directive_snippets_id'] == 0) $this->dataRecord['directive_snippets_id'] = $tmp['directive_snippets_id']; - + unset($tmp); // When the record is inserted } else { @@ -1281,7 +1274,7 @@ class page_action extends tform_actions { $app->tform->errorMessage .= $app->tform->lng("invalid_rewrite_rules_txt").'<br>'; } } - + // check custom php.ini settings if(isset($this->dataRecord['custom_php_ini']) && trim($this->dataRecord['custom_php_ini']) != '') { $custom_php_ini_settings = trim($this->dataRecord['custom_php_ini']); @@ -1301,7 +1294,7 @@ class page_action extends tform_actions { // value inside '' if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*\'.*\'\s*;*\s*$@', $custom_php_ini_settings_line)) continue; // everything else - if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; + if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\{\}\s\|]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; $custom_php_ini_settings_are_valid = false; break; } @@ -1310,12 +1303,8 @@ class page_action extends tform_actions { $app->tform->errorMessage .= $app->tform->lng("invalid_custom_php_ini_settings_txt").'<br>'; } } - - if($web_config['enable_spdy'] === 'n') { - unset($app->tform->formDef["tabs"]['ssl']['fields']['enable_spdy']); - } // if($this->dataRecord["directive_snippets_id"] < 1) $this->dataRecord["enable_pagespeed"] = 'n'; - + //print_r($_POST['folder_directive_snippets']); //print_r($_POST['folder_directive_snippets_id']); if(isset($_POST['folder_directive_snippets'])){ @@ -1339,39 +1328,37 @@ class page_action extends tform_actions { } $this->dataRecord['folder_directive_snippets'] = trim($this->dataRecord['folder_directive_snippets']); } - + // Check custom PHP version - if(isset($this->dataRecord['fastcgi_php_version']) && $this->dataRecord['fastcgi_php_version'] != '') { + if(isset($this->dataRecord['server_php_id']) && $this->dataRecord['server_php_id'] != 0) { // Check php-fpm mode if($this->dataRecord['php'] == 'php-fpm'){ - $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND CONCAT(name,':',php_fpm_init_script,':',php_fpm_ini_dir,':',php_fpm_pool_dir) = '".$app->db->quote($this->dataRecord['fastcgi_php_version'])."'"); - if(is_array($tmp)) { - $this->dataRecord['fastcgi_php_version'] = $tmp['name'].':'.$tmp['php_fpm_init_script'].':'.$tmp['php_fpm_ini_dir'].':'.$tmp['php_fpm_pool_dir']; - } else { - $this->dataRecord['fastcgi_php_version'] = ''; + $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND server_php_id = ?", $this->dataRecord['server_php_id']); + if(!is_array($tmp) || !$tmp['php_fpm_init_script']) { + $this->dataRecord['server_php_id'] = 0; } unset($tmp); // Check fast-cgi mode } elseif($this->dataRecord['php'] == 'fast-cgi') { - $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND CONCAT(name,':',php_fastcgi_binary,':',php_fastcgi_ini_dir) = '".$app->db->quote($this->dataRecord['fastcgi_php_version'])."'"); - if(is_array($tmp)) { - $this->dataRecord['fastcgi_php_version'] = $tmp['name'].':'.$tmp['php_fastcgi_binary'].':'.$tmp['php_fastcgi_ini_dir']; - } else { - $this->dataRecord['fastcgi_php_version'] = ''; + $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND server_php_id = ?", $this->dataRecord['server_php_id']); + if(!is_array($tmp) || !$tmp['php_fastcgi_binary']) { + $this->dataRecord['server_php_id'] = 0; } unset($tmp); } else { - // Other PHP modes do not have custom versions, so we force the value to be empty - $this->dataRecord['fastcgi_php_version'] = ''; + // Other PHP modes do not have custom versions, so we force the value to be zero + $this->dataRecord['server_php_id'] = 0; } } - + + $this->validateDefaultFastcgiPhpVersion(); + parent::onSubmit(); } - + function onBeforeInsert() { global $app, $conf; - + // Letsencrypt can not be activated before the website has been created // So we deactivate it here and add a datalog update in onAfterInsert if(isset($this->dataRecord['ssl_letsencrypt']) && $this->dataRecord['ssl_letsencrypt'] == 'y' && isset($this->dataRecord['ssl']) && $this->dataRecord['ssl'] == 'y') { @@ -1384,7 +1371,7 @@ class page_action extends tform_actions { $this->_letsencrypt_on_insert = true; } } - + function onAfterInsert() { global $app, $conf; @@ -1404,7 +1391,7 @@ class page_action extends tform_actions { $app->uses("getconf"); $web_rec = $app->tform->getDataRecord($this->id); $web_config = $app->getconf->get_server_config($app->functions->intval($web_rec["server_id"]), 'web'); - + // get global log retention value as default for web log retention $server_config = $app->getconf->get_server_config($app->functions->intval($web_rec["server_id"]), 'server'); if($server_config['log_retention'] > 0) { @@ -1413,6 +1400,12 @@ class page_action extends tform_actions { $log_retention = 10; } + // Get default value for chrooted PHP-FPM + $php_fpm_chroot = 'n'; + if (!empty($web_config['php_fpm_default_chroot'])) { + $php_fpm_chroot = $web_config['php_fpm_default_chroot']; + } + if($this->_vhostdomain_type == 'domain') { $document_root = str_replace("[website_id]", $this->id, $web_config["website_path"]); $document_root = str_replace("[website_idhash_1]", $this->id_hash($page_form->id, 1), $document_root); @@ -1445,8 +1438,8 @@ class page_action extends tform_actions { $htaccess_allow_override = $web_config["htaccess_allow_override"]; $added_by = $_SESSION['s']['user']['username']; - $sql = "UPDATE web_domain SET system_user = ?, system_group = ?, document_root = ?, allow_override = ?, php_open_basedir = ?, added_date = CURDATE(), added_by = ?, log_retention = ? WHERE domain_id = ?"; - $app->db->query($sql, $system_user, $system_group, $document_root, $htaccess_allow_override, $php_open_basedir, $added_by, $log_retention, $this->id); + $sql = "UPDATE web_domain SET system_user = ?, system_group = ?, document_root = ?, allow_override = ?, php_open_basedir = ?, added_date = CURDATE(), added_by = ?, log_retention = ?, php_fpm_chroot = ? WHERE domain_id = ?"; + $app->db->query($sql, $system_user, $system_group, $document_root, $htaccess_allow_override, $php_open_basedir, $added_by, $log_retention, $php_fpm_chroot, $this->id); } else { // Set the values for document_root, system_user and system_group $system_user = $this->parent_domain_record['system_user']; @@ -1458,12 +1451,12 @@ class page_action extends tform_actions { $php_open_basedir = str_replace("[website_domain]", $web_rec['domain'], $php_open_basedir); $htaccess_allow_override = $this->parent_domain_record['allow_override']; $added_by = $_SESSION['s']['user']['username']; - - $sql = "UPDATE web_domain SET sys_groupid = ?, system_user = ?, system_group = ?, document_root = ?, allow_override = ?, php_open_basedir = ?, added_date = CURDATE(), added_by = ?, log_retention = ? WHERE domain_id = ?"; - $app->db->query($sql, $this->parent_domain_record['sys_groupid'], $system_user, $system_group, $document_root, $htaccess_allow_override, $php_open_basedir, $added_by, $log_retention, $this->id); + + $sql = "UPDATE web_domain SET sys_groupid = ?, system_user = ?, system_group = ?, document_root = ?, allow_override = ?, php_open_basedir = ?, added_date = CURDATE(), added_by = ?, log_retention = ?, php_fpm_chroot = ? WHERE domain_id = ?"; + $app->db->query($sql, $this->parent_domain_record['sys_groupid'], $system_user, $system_group, $document_root, $htaccess_allow_override, $php_open_basedir, $added_by, $log_retention, $php_fpm_chroot, $this->id); } if(isset($this->dataRecord['folder_directive_snippets'])) $app->db->query("UPDATE web_domain SET folder_directive_snippets = ? WHERE domain_id = ?", $this->dataRecord['folder_directive_snippets'], $this->id); - + // Add a datalog insert without letsencrypt and then an update with letsencrypt enabled (see also onBeforeInsert) if($this->_letsencrypt_on_insert == true) { $new_data_record = $app->tform->getDataRecord($this->id); @@ -1472,7 +1465,7 @@ class page_action extends tform_actions { $new_data_record['ssl'] = 'y'; $app->db->datalogUpdate('web_domain', $new_data_record, 'domain_id', $this->id); } - + } function onBeforeUpdate () { @@ -1524,12 +1517,53 @@ class page_action extends tform_actions { } } - + function onAfterUpdate() { global $app, $conf; if(isset($this->dataRecord['folder_directive_snippets'])) $app->db->query("UPDATE web_domain SET folder_directive_snippets = ? WHERE domain_id = ?", $this->dataRecord['folder_directive_snippets'], $this->id); } + + function validateDefaultFastcgiPhpVersion() { + global $app; + + // If PHP is not enabled, we don't need to validate the default PHP version + if (empty($this->dataRecord['php']) || 'no' === $this->dataRecord['php']) { + return; + } + + // If the default PHP version is not hidden, we don't need to do any additional validation + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($this->dataRecord['server_id'], 'web'); + if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { + return; + } + + // The default PHP version is indicated by an empty string, so if the default PHP version is hidden + // then an empty string is not a valid PHP version. + if (empty($this->dataRecord['server_php_id'])) { + $app->tform->errorMessage .= sprintf('%s<br>', $app->tform->lng('server_php_id_invalid_txt')); + return; + } + + // If the default PHP version is now hidden but this vhost was using it, we don't want to implicitly + // switch the user to some random Additional PHP version. So we show a warning instead. + $old_server_php_id = null; + if ($this->id > 0) { + $existing = $app->db->queryOneRecord('SELECT server_php_id FROM web_domain WHERE domain_id = ?', $this->id); + $old_server_php_id = $existing['server_php_id']; + } + + if ('' === $old_server_php_id) { + // Warning was already shown, user confirmed the new PHP version + if (!empty($_POST['server_php_id_default_hidden_warning_confirmed'])) { + return; + } + + $app->tform->errorMessage .= sprintf('%s<br>', $app->tform->lng('server_php_id_default_hidden_warning_txt')); + $app->tpl->setVar('server_php_id_default_hidden_warning_confirmed', 1); + } + } } $page = new page_action; diff --git a/interface/web/strengthmeter/lib/lang/bg_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/bg_strengthmeter.lng old mode 100755 new mode 100644 diff --git a/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng index 172646f21237946211c55b68e34e797b080696a2..2b2fb51f9a04f554e2c7765f1173f595a0045a0c 100644 --- a/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng +++ b/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng @@ -2,7 +2,7 @@ $wb['password_strength_0_txt'] = 'Muito curta'; $wb['password_strength_1_txt'] = 'Fraca'; $wb['password_strength_2_txt'] = 'Razoável'; -$wb['password_strength_3_txt'] = 'Bom'; +$wb['password_strength_3_txt'] = 'Boa'; $wb['password_strength_4_txt'] = 'Forte'; -$wb['password_strength_5_txt'] = 'Muito Forte'; +$wb['password_strength_5_txt'] = 'Muito forte'; ?> diff --git a/interface/web/strengthmeter/lib/lang/fi_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/fi_strengthmeter.lng old mode 100755 new mode 100644 diff --git a/interface/web/themes/default/assets/favicon/android-chrome-192x192.png b/interface/web/themes/default/assets/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..fd24a98743b0457c88874bffdc136ed0e99401a5 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/android-chrome-192x192.png differ diff --git a/interface/web/themes/default/assets/favicon/android-chrome-512x512.png b/interface/web/themes/default/assets/favicon/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d9ad1e03c2471a88f883de17c129555e906774 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/android-chrome-512x512.png differ diff --git a/interface/web/themes/default/assets/favicon/apple-touch-icon.png b/interface/web/themes/default/assets/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..713b3d50d1aaa8f4421ffb898b8d7310e2ee97c1 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/apple-touch-icon.png differ diff --git a/interface/web/themes/default/assets/favicon/browserconfig.xml b/interface/web/themes/default/assets/favicon/browserconfig.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0076c46ca3e54a8a9edefa6ff5524ec1ea7537a --- /dev/null +++ b/interface/web/themes/default/assets/favicon/browserconfig.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<browserconfig> + <msapplication> + <tile> + <square150x150logo src="/themes/default/assets/favicon/mstile-150x150.png"/> + <TileColor>#cc151c</TileColor> + </tile> + </msapplication> +</browserconfig> diff --git a/interface/web/themes/default/assets/favicon/favicon-16x16.png b/interface/web/themes/default/assets/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..6877b0cf7cb185bcd9031c22eeabcd06a7d75175 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/favicon-16x16.png differ diff --git a/interface/web/themes/default/assets/favicon/favicon-32x32.png b/interface/web/themes/default/assets/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..562f38a8669e4e568002f000b5804f9496bde006 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/favicon-32x32.png differ diff --git a/interface/web/themes/default/assets/favicon/favicon.ico b/interface/web/themes/default/assets/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..13554cb35355c7a7eee489693006c26041312d25 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/favicon.ico differ diff --git a/interface/web/themes/default/assets/favicon/mstile-150x150.png b/interface/web/themes/default/assets/favicon/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..83fcba69390f17f68b5dde4969858fb3d9d28292 Binary files /dev/null and b/interface/web/themes/default/assets/favicon/mstile-150x150.png differ diff --git a/interface/web/themes/default/assets/favicon/safari-pinned-tab.svg b/interface/web/themes/default/assets/favicon/safari-pinned-tab.svg new file mode 100644 index 0000000000000000000000000000000000000000..12238ebc5b76f76f47e13de85b885110287e24cc --- /dev/null +++ b/interface/web/themes/default/assets/favicon/safari-pinned-tab.svg @@ -0,0 +1 @@ +<svg version="1" xmlns="http://www.w3.org/2000/svg" width="1422.667" height="1422.667" viewBox="0 0 1067.000000 1067.000000"><path d="M92.9 141.4c-.2.2-2.8.7-5.8 1.1-19.1 2.4-41.8 14.2-57.7 30.1C22 180 13 191.6 13 193.8c0 .5-.8 2-1.9 3.3-1.9 2.5-8.4 19-9.8 25C.9 224 .5 329.7.5 457v231.5l2.7 8.5c9.4 29.1 29.3 51.5 57.2 64.5 8.4 3.9 18.1 7.3 23.1 8 1.1.2 4.5.6 7.5 1.1 3 .4 144.4.8 314.3.8l308.7.1.1 8c0 4.4.2 9.3.3 10.8.1 1.6-.2 3.1-.6 3.3-.5.3-.6 1-.2 1.5.3.5.5 6.2.4 12.7-.1 6.4-.1 12.6-.1 13.7 0 2-.5 2-147.2 1.8-81-.2-163.5-.3-183.4-.3h-36.2l-.3-13.7-.3-13.7-52-.1c-28.6 0-52.4.1-53 .2-2 .6-.8 40.4 1.5 49.3.5 1.9 1.1 4.6 1.4 6 1 5.1 7.9 21.6 9.5 23 .3.3 1.7 2.5 3 5 1.4 2.5 3 5 3.5 5.6.6.6 2.5 2.8 4.1 4.9 2.8 3.6 10.7 11.7 13.7 14 .7.6 3.1 2.5 5.3 4.2 3.8 3 6.7 4.8 16.2 9.8 4.1 2.2 16.2 6.7 21.8 8 3 .8 4.1.9 12.5 2.1 4.9.6 385 1.2 386.3.6.5-.2 3.2-.6 6-.8 6.4-.4 15.5-2.5 22.4-5.2 2.9-1.1 5.4-1.7 5.7-1.4.4.3.6 0 .6-.6 0-.7.3-1.1.8-1 1 .3 10.5-4.6 16.5-8.6 6.7-4.5 14.5-11.2 18.8-16.1 1.9-2.2 4.1-4.7 4.9-5.6 7.4-8.5 16.5-26.4 19.5-38.3 1.8-7.6 2-8.5 3-14.2.6-3.8.7-70 .1-73.9-.1-1.1-.6-4.5-1.1-7.5-.4-3-1.4-7.2-2.1-9.2-.7-2.1-1.3-3.9-1.3-4.1 0-.1-.4-1.5-1-3-.6-1.6-1.1-3-1.1-3.2 0-2.8-11.6-22.7-17-29-10-11.7-26.4-24-39.7-29.5-4.2-1.8-8.3-3.3-9.2-3.5-.9-.3-4.2-1.1-7.3-2-3.2-.8-9.2-1.9-13.5-2.3-4.3-.4-146.1-.7-315-.7H103l-.1-6.5c0-7.6 0-407.7.1-413.2v-3.6h855v8.1c.4 71.1 0 414.1-.4 414.5-.3.3-19.1.5-41.6.5-22.6 0-41.3.4-41.5.8-.4.5-.7 62.4-.5 98.4v5l46.8-.1c38.4 0 55.5-.6 60.2-1.9.3-.1 1.9-.5 3.5-.9 25-6.1 48-22 62.2-43.1 6.1-8.9 10-16.9 13.2-27 2.9-9.1 3.6-11.9 4.8-21 .8-6.5.9-436.1 0-444-1-9.5-1.4-11.5-4.6-21-2.6-8-4.5-12-10.7-23-3.2-5.6-10.1-14-16.5-19.8-8.3-7.6-8.9-8.1-12.4-10.3-1.6-1-3.2-2.1-3.5-2.4-2.8-2.9-22.1-11.5-30.5-13.6-1.6-.4-3.4-.8-4-1-.5-.1-2.3-.6-4-1-2.9-.9-884.8-1.8-885.6-1z"/><path d="M240.3 539.6c.2 1.3.1 2.7-.3 2.9-.4.2-.5 1.7-.3 3.2.8 5.6.8 7.8 0 9-.4.6-.4 1.4.2 1.7.6.4.6 1.8.1 3.6-.5 1.7-.5 3 0 3s.5 1.3 0 2.9c-.4 1.6-.6 3.2-.4 3.4.9.9 1 11.8.2 12.3-.5.3-.5 1-.1 1.7.8 1.3 1.1 5.7.3 5.7-.3 0-.5 1.8-.5 4s.2 4 .5 4 .5 1.1.5 2.5-.4 2.5-.8 2.5-.3.8.2 1.8.6 2.4.1 3.3c-.5.8-.5 2.1 0 2.8.4.8.4 2.6 0 4.2-.5 1.5-.6 3-.4 3.2.9.9 1 11.8.2 12.3-.5.3-.5 1-.1 1.7.9 1.4 1.1 5.7.2 5.7-.3 0-.3 1.7 0 3.7l.6 3.8 53 .1c50.2.1 56.5-.2 55-2.6-.3-.5-.5-3-.5-5.7 0-6.2 0-13.8-.2-16.1 0-.9 0-3.1.1-4.7.2-6.6.2-8.1.2-9.3-.1-.6-.1-1.8-.2-2.5 0-.6.1-3.9.2-7.3.1-3.3 0-6.5-.4-7-.3-.6-.2-2.6.2-4.6.5-2 .5-4.2.1-4.9-.5-.7-.4-2.3 0-3.5.5-1.3.5-2.6.1-2.9-.8-.4-.5-6.3.4-9.1.2-.6-.1-1.7-.5-2.5-.5-.7-.5-1.8.1-2.5s.6-1.5.1-1.8c-.8-.5-.5-8.5.4-9.5.2-.2-.1-1.1-.6-2.1-.6-1-.6-3 0-4.8.7-2.5.5-3.2-.8-3.6-.9-.3-25.5-.5-54.6-.5h-52.8l.5 2.5z"/></svg> \ No newline at end of file diff --git a/interface/web/themes/default/assets/favicon/site.webmanifest b/interface/web/themes/default/assets/favicon/site.webmanifest new file mode 100644 index 0000000000000000000000000000000000000000..a94d9f4b4a50a1339d06d14c42929e87705ce309 --- /dev/null +++ b/interface/web/themes/default/assets/favicon/site.webmanifest @@ -0,0 +1,18 @@ +{ + "name": "ISPConfig", + "short_name": "ISPConfig", + "icons": [ + { + "src": "/themes/default/assets/favicon/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/themes/default/assets/favicon/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#cc151c", + "background_color": "#cc151c" +} diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js index 5f797af3286f8b0a7902f8bcebe4f48bcdf70c46..70e3a903a65dbf44576868151101c19015858bfd 100644 --- a/interface/web/themes/default/assets/javascripts/ispconfig.js +++ b/interface/web/themes/default/assets/javascripts/ispconfig.js @@ -172,7 +172,7 @@ var ISPConfig = { ISPConfig.loadContent(parts[1]); } else if (jqXHR.responseText.indexOf('LOGIN_REDIRECT:') > -1) { // Go to the login page - document.location.href = '/index.php'; + document.location.href = './index.php'; } else { $('#pageContent').html(jqXHR.responseText); ISPConfig.onAfterContentLoad(target, $('#'+formname).serialize()); diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js index 76af49d1dc114b1279a8ee8941fda095bcdb8cc6..e118b994b0b4cc5c1592b86c465e04fcade91796 100644 --- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js +++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js @@ -1 +1 @@ -var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,dataLogTimer:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.dataLogNotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},dataLogNotification:function(){console.log(ISPConfig.options);$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),$("#datalogModal").modal("hide"),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}}); \ No newline at end of file +var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,dataLogTimer:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="./index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.dataLogNotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},dataLogNotification:function(){console.log(ISPConfig.options);$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),$("#datalogModal").modal("hide"),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}}); \ No newline at end of file diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/css/font-awesome.min.css b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/css/font-awesome.min.css new file mode 100644 index 0000000000000000000000000000000000000000..540440ce89f2a408aa699b65100e18f15e0f09ca --- /dev/null +++ b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/FontAwesome.otf b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 Binary files /dev/null and b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/FontAwesome.otf differ diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.eot b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 Binary files /dev/null and b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.eot differ diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.svg b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000000000000000000000000000000000..855c845e538b65548118279537a04eab2ec6ef0d --- /dev/null +++ b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg> +<metadata> +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. +</metadata> +<defs> +<font id="FontAwesome" horiz-adv-x="1536" > + <font-face + font-family="FontAwesome" + font-weight="400" + font-stretch="normal" + units-per-em="1792" + panose-1="0 0 0 0 0 0 0 0 0 0" + ascent="1536" + descent="-256" + bbox="-1.02083 -256.962 2304.6 1537.02" + underline-thickness="0" + underline-position="0" + unicode-range="U+0020-F500" + /> +<missing-glyph horiz-adv-x="896" +d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> + <glyph glyph-name=".notdef" horiz-adv-x="896" +d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> + <glyph glyph-name=".null" horiz-adv-x="0" + /> + <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" + /> + <glyph glyph-name="space" unicode=" " horiz-adv-x="448" + /> + <glyph glyph-name="dieresis" unicode="¨" horiz-adv-x="1792" + /> + <glyph glyph-name="copyright" unicode="©" horiz-adv-x="1792" + /> + <glyph glyph-name="registered" unicode="®" horiz-adv-x="1792" + /> + <glyph glyph-name="acute" unicode="´" horiz-adv-x="1792" + /> + <glyph glyph-name="AE" unicode="Æ" horiz-adv-x="1792" + /> + <glyph glyph-name="Oslash" unicode="Ø" horiz-adv-x="1792" + /> + <glyph glyph-name="trademark" unicode="™" horiz-adv-x="1792" + /> + <glyph glyph-name="infinity" unicode="∞" horiz-adv-x="1792" + /> + <glyph glyph-name="notequal" unicode="≠" horiz-adv-x="1792" + /> + <glyph glyph-name="glass" unicode="" horiz-adv-x="1792" +d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" /> + <glyph glyph-name="music" unicode="" +d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 +t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" /> + <glyph glyph-name="search" unicode="" horiz-adv-x="1664" +d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 +t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> + <glyph glyph-name="envelope" unicode="" horiz-adv-x="1792" +d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 +t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z +M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="heart" unicode="" horiz-adv-x="1792" +d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 +q-18 -18 -44 -18z" /> + <glyph glyph-name="star" unicode="" horiz-adv-x="1664" +d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 +l502 -73q56 -9 56 -46z" /> + <glyph glyph-name="star_empty" unicode="" horiz-adv-x="1664" +d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 +l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" /> + <glyph glyph-name="user" unicode="" horiz-adv-x="1280" +d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5 +t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="film" unicode="" horiz-adv-x="1920" +d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 +q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 +t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 +q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 +t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="th_large" unicode="" horiz-adv-x="1664" +d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 +h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> + <glyph glyph-name="th" unicode="" horiz-adv-x="1792" +d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 +h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 +q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" /> + <glyph glyph-name="th_list" unicode="" horiz-adv-x="1792" +d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 +h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" /> + <glyph glyph-name="ok" unicode="" horiz-adv-x="1792" +d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" /> + <glyph glyph-name="remove" unicode="" horiz-adv-x="1408" +d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 +t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /> + <glyph glyph-name="zoom_in" unicode="" horiz-adv-x="1664" +d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 +q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 +t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> + <glyph glyph-name="zoom_out" unicode="" horiz-adv-x="1664" +d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z +M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z +" /> + <glyph glyph-name="off" unicode="" +d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 +t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /> + <glyph glyph-name="signal" unicode="" horiz-adv-x="1792" +d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 +v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" /> + <glyph glyph-name="cog" unicode="" +d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 +q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 +l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 +q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" /> + <glyph glyph-name="trash" unicode="" horiz-adv-x="1408" +d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 +q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 +q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> + <glyph glyph-name="home" unicode="" horiz-adv-x="1664" +d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 +l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" /> + <glyph glyph-name="file_alt" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +" /> + <glyph glyph-name="time" unicode="" +d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="road" unicode="" horiz-adv-x="1920" +d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 +q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" /> + <glyph glyph-name="download_alt" unicode="" horiz-adv-x="1664" +d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 +q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" /> + <glyph glyph-name="download" unicode="" +d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 +t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="upload" unicode="" +d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 +t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="inbox" unicode="" +d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 +q25 -61 25 -123z" /> + <glyph glyph-name="play_circle" unicode="" +d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="repeat" unicode="" +d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9 +l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" /> + <glyph glyph-name="refresh" unicode="" +d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 +q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 +q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" /> + <glyph glyph-name="list_alt" unicode="" horiz-adv-x="1792" +d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z +M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 +t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 +t47 -113z" /> + <glyph glyph-name="lock" unicode="" horiz-adv-x="1152" +d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" /> + <glyph glyph-name="flag" unicode="" horiz-adv-x="1792" +d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 +t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" /> + <glyph glyph-name="headphones" unicode="" horiz-adv-x="1664" +d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 +t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 +t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" /> + <glyph glyph-name="volume_off" unicode="" horiz-adv-x="768" +d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" /> + <glyph glyph-name="volume_down" unicode="" horiz-adv-x="1152" +d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 +t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" /> + <glyph glyph-name="volume_up" unicode="" horiz-adv-x="1664" +d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 +t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 +t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 +t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" /> + <glyph glyph-name="qrcode" unicode="" horiz-adv-x="1408" +d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z +M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" /> + <glyph glyph-name="barcode" unicode="" horiz-adv-x="1792" +d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z +M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" /> + <glyph glyph-name="tag" unicode="" +d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 +l715 -714q37 -39 37 -91z" /> + <glyph glyph-name="tags" unicode="" horiz-adv-x="1920" +d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 +l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" /> + <glyph glyph-name="book" unicode="" horiz-adv-x="1664" +d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 +q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 +q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 +t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" /> + <glyph glyph-name="bookmark" unicode="" horiz-adv-x="1280" +d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> + <glyph glyph-name="print" unicode="" horiz-adv-x="1664" +d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 +v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" /> + <glyph glyph-name="camera" unicode="" horiz-adv-x="1920" +d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 +q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="font" unicode="" horiz-adv-x="1664" +d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 +q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 +q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" /> + <glyph glyph-name="bold" unicode="" horiz-adv-x="1408" +d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 +q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 +t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 +t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" /> + <glyph glyph-name="italic" unicode="" horiz-adv-x="1024" +d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 +q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" /> + <glyph glyph-name="text_height" unicode="" horiz-adv-x="1792" +d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 +t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 +q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 +q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" /> + <glyph glyph-name="text_width" unicode="" +d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 +t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 +q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 +t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 +t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" /> + <glyph glyph-name="align_left" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 +t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="align_center" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 +h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" /> + <glyph glyph-name="align_right" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 +t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="align_justify" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 +t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> + <glyph glyph-name="list" unicode="" horiz-adv-x="1792" +d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 +t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 +q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 +t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 +q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="indent_left" unicode="" horiz-adv-x="1792" +d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 +t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 +q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="indent_right" unicode="" horiz-adv-x="1792" +d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 +t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 +q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="facetime_video" unicode="" horiz-adv-x="1792" +d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 +q39 -17 39 -59z" /> + <glyph glyph-name="picture" unicode="" horiz-adv-x="1920" +d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 +q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="pencil" unicode="" +d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 +q53 0 91 -38l235 -234q37 -39 37 -91z" /> + <glyph glyph-name="map_marker" unicode="" horiz-adv-x="1024" +d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" /> + <glyph glyph-name="adjust" unicode="" +d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="tint" unicode="" horiz-adv-x="1024" +d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 +q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" /> + <glyph glyph-name="edit" unicode="" horiz-adv-x="1792" +d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 +q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 +l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" /> + <glyph glyph-name="share" unicode="" horiz-adv-x="1664" +d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 +q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 +t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" /> + <glyph glyph-name="check" unicode="" horiz-adv-x="1664" +d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 +q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 +q24 -24 24 -57t-24 -57z" /> + <glyph glyph-name="move" unicode="" horiz-adv-x="1792" +d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 +t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> + <glyph glyph-name="step_backward" unicode="" horiz-adv-x="1024" +d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" /> + <glyph glyph-name="fast_backward" unicode="" horiz-adv-x="1792" +d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710 +q19 19 32 13t13 -32v-710q4 10 13 19z" /> + <glyph glyph-name="backward" unicode="" horiz-adv-x="1664" +d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" /> + <glyph glyph-name="play" unicode="" horiz-adv-x="1408" +d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" /> + <glyph glyph-name="pause" unicode="" +d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" /> + <glyph glyph-name="stop" unicode="" +d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> + <glyph glyph-name="forward" unicode="" horiz-adv-x="1664" +d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> + <glyph glyph-name="fast_forward" unicode="" horiz-adv-x="1792" +d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710 +q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> + <glyph glyph-name="step_forward" unicode="" horiz-adv-x="1024" +d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" /> + <glyph glyph-name="eject" unicode="" horiz-adv-x="1538" +d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" /> + <glyph glyph-name="chevron_left" unicode="" horiz-adv-x="1280" +d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" /> + <glyph glyph-name="chevron_right" unicode="" horiz-adv-x="1280" +d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" /> + <glyph glyph-name="plus_sign" unicode="" +d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 +t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="minus_sign" unicode="" +d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 +t103 -385.5z" /> + <glyph glyph-name="remove_sign" unicode="" +d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 +q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ok_sign" unicode="" +d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="question_sign" unicode="" +d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 +q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="info_sign" unicode="" +d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 +t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="screenshot" unicode="" +d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 +q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 +q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" /> + <glyph glyph-name="remove_circle" unicode="" +d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 +l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 +t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ok_circle" unicode="" +d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 +t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ban_circle" unicode="" +d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 +t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" /> + <glyph glyph-name="arrow_left" unicode="" +d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 +t32.5 -90.5z" /> + <glyph glyph-name="arrow_right" unicode="" +d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" /> + <glyph glyph-name="arrow_up" unicode="" horiz-adv-x="1664" +d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 +q37 -39 37 -91z" /> + <glyph glyph-name="arrow_down" unicode="" horiz-adv-x="1664" +d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" /> + <glyph glyph-name="share_alt" unicode="" horiz-adv-x="1792" +d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 +t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" /> + <glyph glyph-name="resize_full" unicode="" +d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 +q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" /> + <glyph glyph-name="resize_small" unicode="" +d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 +t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" /> + <glyph glyph-name="plus" unicode="" horiz-adv-x="1408" +d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" /> + <glyph glyph-name="minus" unicode="" horiz-adv-x="1408" +d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" /> + <glyph glyph-name="asterisk" unicode="" horiz-adv-x="1664" +d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 +q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" /> + <glyph glyph-name="exclamation_sign" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 +q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" /> + <glyph glyph-name="gift" unicode="" +d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 +q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 +t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" /> + <glyph glyph-name="leaf" unicode="" horiz-adv-x="1792" +d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 +q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 +t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" /> + <glyph glyph-name="fire" unicode="" horiz-adv-x="1408" +d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 +q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" /> + <glyph glyph-name="eye_open" unicode="" horiz-adv-x="1792" +d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 +t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" /> + <glyph glyph-name="eye_close" unicode="" horiz-adv-x="1792" +d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 +q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 +q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z +" /> + <glyph glyph-name="warning_sign" unicode="" horiz-adv-x="1792" +d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 +q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" /> + <glyph glyph-name="plane" unicode="" horiz-adv-x="1408" +d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 +q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" /> + <glyph glyph-name="calendar" unicode="" horiz-adv-x="1664" +d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z +M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 +q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 +h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="random" unicode="" horiz-adv-x="1792" +d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 +t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 +v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 +t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> + <glyph glyph-name="comment" unicode="" horiz-adv-x="1792" +d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 +q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" /> + <glyph glyph-name="magnet" unicode="" +d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 +q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" /> + <glyph glyph-name="chevron_up" unicode="" horiz-adv-x="1792" +d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /> + <glyph glyph-name="chevron_down" unicode="" horiz-adv-x="1792" +d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /> + <glyph glyph-name="retweet" unicode="" horiz-adv-x="1920" +d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21 +zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z +" /> + <glyph glyph-name="shopping_cart" unicode="" horiz-adv-x="1664" +d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 +t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" /> + <glyph glyph-name="folder_close" unicode="" horiz-adv-x="1664" +d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> + <glyph glyph-name="folder_open" unicode="" horiz-adv-x="1920" +d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 +t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" /> + <glyph glyph-name="resize_vertical" unicode="" horiz-adv-x="768" +d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" /> + <glyph glyph-name="resize_horizontal" unicode="" horiz-adv-x="1792" +d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> + <glyph glyph-name="bar_chart" unicode="" horiz-adv-x="2048" +d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" /> + <glyph glyph-name="twitter_sign" unicode="" +d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 +q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 +t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="facebook_sign" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 +q0 119 84.5 203.5t203.5 84.5h960z" /> + <glyph glyph-name="camera_retro" unicode="" horiz-adv-x="1792" +d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 +t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 +q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="key" unicode="" horiz-adv-x="1792" +d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 +l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 +t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" /> + <glyph glyph-name="cogs" unicode="" horiz-adv-x="1920" +d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 +t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 +l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 +l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 +q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 +t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 +q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 +q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" /> + <glyph glyph-name="comments" unicode="" horiz-adv-x="1792" +d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 +q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 +q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" /> + <glyph glyph-name="thumbs_up_alt" unicode="" +d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 +t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 +q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 +q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" /> + <glyph glyph-name="thumbs_down_alt" unicode="" +d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 +t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z +M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 +h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" /> + <glyph glyph-name="star_half" unicode="" horiz-adv-x="896" +d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" /> + <glyph glyph-name="heart_empty" unicode="" horiz-adv-x="1792" +d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 +q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 +q224 0 351 -124t127 -344z" /> + <glyph glyph-name="signout" unicode="" horiz-adv-x="1664" +d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 +q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" /> + <glyph glyph-name="linkedin_sign" unicode="" +d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 +q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="pushpin" unicode="" horiz-adv-x="1152" +d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 +t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" /> + <glyph glyph-name="external_link" unicode="" horiz-adv-x="1792" +d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 +q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" /> + <glyph glyph-name="signin" unicode="" +d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 +q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="trophy" unicode="" horiz-adv-x="1664" +d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 +t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 +q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" /> + <glyph glyph-name="github_sign" unicode="" +d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 +q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 +t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 +q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="upload_alt" unicode="" horiz-adv-x="1664" +d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 +t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" /> + <glyph glyph-name="lemon" unicode="" +d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 +q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 +q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 +q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" /> + <glyph glyph-name="phone" unicode="" horiz-adv-x="1408" +d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186 +q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14 +t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" /> + <glyph glyph-name="check_empty" unicode="" horiz-adv-x="1408" +d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 +q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="bookmark_empty" unicode="" horiz-adv-x="1280" +d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 +q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> + <glyph glyph-name="phone_sign" unicode="" +d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5 +t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5 +t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z +" /> + <glyph glyph-name="twitter" unicode="" horiz-adv-x="1664" +d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 +q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" /> + <glyph glyph-name="facebook" unicode="" horiz-adv-x="1024" +d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" /> + <glyph glyph-name="github" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 +q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 +t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 +q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z +M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" /> + <glyph glyph-name="unlock" unicode="" horiz-adv-x="1664" +d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 +t316.5 -131.5t131.5 -316.5z" /> + <glyph glyph-name="credit_card" unicode="" horiz-adv-x="1920" +d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 +q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" /> + <glyph glyph-name="rss" unicode="" horiz-adv-x="1408" +d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 +t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 +q187 -186 294 -425.5t120 -501.5z" /> + <glyph glyph-name="hdd" unicode="" +d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 +h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 +l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" /> + <glyph glyph-name="bullhorn" unicode="" horiz-adv-x="1792" +d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 +t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" /> + <glyph glyph-name="bell" unicode="" horiz-adv-x="1792" +d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z +M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 +t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> + <glyph glyph-name="certificate" unicode="" +d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 +l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 +l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" /> + <glyph glyph-name="hand_right" unicode="" horiz-adv-x="1792" +d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 +q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 +q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 +t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" /> + <glyph glyph-name="hand_left" unicode="" horiz-adv-x="1792" +d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5 +t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z +M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67 +q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="hand_up" unicode="" +d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 +q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 +t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 +q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" /> + <glyph glyph-name="hand_down" unicode="" +d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 +t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 +q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 +q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" /> + <glyph glyph-name="circle_arrow_left" unicode="" +d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="circle_arrow_right" unicode="" +d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="circle_arrow_up" unicode="" +d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="circle_arrow_down" unicode="" +d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="globe" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 +q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 +q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 +q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 +t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 +q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 +q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 +t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 +t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 +q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 +q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 +q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 +t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 +q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 +q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" /> + <glyph glyph-name="wrench" unicode="" horiz-adv-x="1664" +d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 +t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" /> + <glyph glyph-name="tasks" unicode="" horiz-adv-x="1792" +d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 +t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> + <glyph glyph-name="filter" unicode="" horiz-adv-x="1408" +d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" /> + <glyph glyph-name="briefcase" unicode="" horiz-adv-x="1792" +d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 +t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" /> + <glyph glyph-name="fullscreen" unicode="" +d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 +l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z +" /> + <glyph glyph-name="group" unicode="" horiz-adv-x="1920" +d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 +t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 +t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 +t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" /> + <glyph glyph-name="link" unicode="" horiz-adv-x="1664" +d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 +l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 +t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 +q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" /> + <glyph glyph-name="cloud" unicode="" horiz-adv-x="1920" +d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z +" /> + <glyph glyph-name="beaker" unicode="" horiz-adv-x="1664" +d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" /> + <glyph glyph-name="cut" unicode="" horiz-adv-x="1792" +d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 +q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 +q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 +q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 +q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" /> + <glyph glyph-name="copy" unicode="" horiz-adv-x="1792" +d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 +h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" /> + <glyph glyph-name="paper_clip" unicode="" horiz-adv-x="1408" +d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 +l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 +z" /> + <glyph glyph-name="save" unicode="" +d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 +h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" /> + <glyph glyph-name="sign_blank" unicode="" +d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="reorder" unicode="" +d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 +t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> + <glyph glyph-name="ul" unicode="" horiz-adv-x="1792" +d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 +t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z +M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="ol" unicode="" horiz-adv-x="1792" +d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 +q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 +t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216 +q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="strikethrough" unicode="" horiz-adv-x="1792" +d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 +l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 +l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" /> + <glyph glyph-name="underline" unicode="" +d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 +q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 +q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 +q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" /> + <glyph glyph-name="table" unicode="" horiz-adv-x="1664" +d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 +v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 +q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 +q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 +z" /> + <glyph glyph-name="magic" unicode="" horiz-adv-x="1664" +d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 +l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" /> + <glyph glyph-name="truck" unicode="" horiz-adv-x="1792" +d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 +t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 +t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" /> + <glyph glyph-name="pinterest" unicode="" +d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 +q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 +q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="pinterest_sign" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 +t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 +t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" /> + <glyph glyph-name="google_plus_sign" unicode="" +d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 +h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="google_plus" unicode="" horiz-adv-x="2304" +d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 +q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" /> + <glyph glyph-name="money" unicode="" horiz-adv-x="1920" +d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 +v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" /> + <glyph glyph-name="caret_down" unicode="" horiz-adv-x="1024" +d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> + <glyph glyph-name="caret_up" unicode="" horiz-adv-x="1024" +d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="caret_left" unicode="" horiz-adv-x="640" +d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" /> + <glyph glyph-name="caret_right" unicode="" horiz-adv-x="640" +d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="columns" unicode="" horiz-adv-x="1664" +d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" /> + <glyph glyph-name="sort" unicode="" horiz-adv-x="1024" +d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="sort_down" unicode="" horiz-adv-x="1024" +d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> + <glyph glyph-name="sort_up" unicode="" horiz-adv-x="1024" +d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="envelope_alt" unicode="" horiz-adv-x="1792" +d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 +q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" /> + <glyph glyph-name="linkedin" unicode="" +d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 +q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" /> + <glyph glyph-name="undo" unicode="" +d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 +t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" /> + <glyph glyph-name="legal" unicode="" horiz-adv-x="1792" +d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 +t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 +q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 +q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" /> + <glyph glyph-name="dashboard" unicode="" horiz-adv-x="1792" +d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 +t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 +t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 +q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="comment_alt" unicode="" horiz-adv-x="1792" +d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 +q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 +t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> + <glyph glyph-name="comments_alt" unicode="" horiz-adv-x="1792" +d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 +t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 +t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 +q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" /> + <glyph glyph-name="bolt" unicode="" horiz-adv-x="896" +d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" /> + <glyph glyph-name="sitemap" unicode="" horiz-adv-x="1792" +d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 +q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 +z" /> + <glyph glyph-name="umbrella" unicode="" horiz-adv-x="1664" +d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 +q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 +q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" /> + <glyph glyph-name="paste" unicode="" horiz-adv-x="1792" +d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 +h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" /> + <glyph glyph-name="light_bulb" unicode="" horiz-adv-x="1024" +d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 +q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 +q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 +t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" /> + <glyph glyph-name="exchange" unicode="" horiz-adv-x="1792" +d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 +q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> + <glyph glyph-name="cloud_download" unicode="" horiz-adv-x="1920" +d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 +q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> + <glyph glyph-name="cloud_upload" unicode="" horiz-adv-x="1920" +d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 +q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> + <glyph glyph-name="user_md" unicode="" horiz-adv-x="1408" +d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 +t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 +t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 +t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="stethoscope" unicode="" horiz-adv-x="1408" +d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 +t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 +t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" /> + <glyph glyph-name="suitcase" unicode="" horiz-adv-x="1792" +d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 +t66 -158z" /> + <glyph glyph-name="bell_alt" unicode="" horiz-adv-x="1792" +d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 +t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> + <glyph glyph-name="coffee" unicode="" horiz-adv-x="1920" +d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 +t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="food" unicode="" horiz-adv-x="1408" +d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 +t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" /> + <glyph glyph-name="file_text_alt" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 +q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" /> + <glyph glyph-name="building" unicode="" horiz-adv-x="1408" +d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" /> + <glyph glyph-name="hospital" unicode="" horiz-adv-x="1408" +d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 +t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 +v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" /> + <glyph glyph-name="ambulance" unicode="" horiz-adv-x="1920" +d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 +t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 +q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="medkit" unicode="" horiz-adv-x="1792" +d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 +q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" /> + <glyph glyph-name="fighter_jet" unicode="" horiz-adv-x="1920" +d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 +q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" /> + <glyph glyph-name="beer" unicode="" horiz-adv-x="1664" +d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" /> + <glyph glyph-name="h_sign" unicode="" +d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="f0fe" unicode="" +d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="double_angle_left" unicode="" horiz-adv-x="1024" +d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 +t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" /> + <glyph glyph-name="double_angle_right" unicode="" horiz-adv-x="1024" +d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 +l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="double_angle_up" unicode="" horiz-adv-x="1152" +d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 +q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="double_angle_down" unicode="" horiz-adv-x="1152" +d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 +t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> + <glyph glyph-name="angle_left" unicode="" horiz-adv-x="640" +d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> + <glyph glyph-name="angle_right" unicode="" horiz-adv-x="640" +d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="angle_up" unicode="" horiz-adv-x="1152" +d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="angle_down" unicode="" horiz-adv-x="1152" +d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> + <glyph glyph-name="desktop" unicode="" horiz-adv-x="1920" +d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 +t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="laptop" unicode="" horiz-adv-x="1920" +d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z +M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" /> + <glyph glyph-name="tablet" unicode="" horiz-adv-x="1152" +d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 +q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" /> + <glyph glyph-name="mobile_phone" unicode="" horiz-adv-x="768" +d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 +q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> + <glyph glyph-name="circle_blank" unicode="" +d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 +t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="quote_left" unicode="" horiz-adv-x="1664" +d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z +M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" /> + <glyph glyph-name="quote_right" unicode="" horiz-adv-x="1664" +d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 +v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" /> + <glyph glyph-name="spinner" unicode="" horiz-adv-x="1792" +d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 +t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z +M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 +q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" /> + <glyph glyph-name="circle" unicode="" +d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="reply" unicode="" horiz-adv-x="1792" +d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 +l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" /> + <glyph glyph-name="github_alt" unicode="" horiz-adv-x="1664" +d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 +q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 +t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 +q0 -87 -27 -168q136 -160 136 -398z" /> + <glyph glyph-name="folder_close_alt" unicode="" horiz-adv-x="1664" +d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 +q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> + <glyph glyph-name="folder_open_alt" unicode="" horiz-adv-x="1920" +d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 +v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z +" /> + <glyph glyph-name="expand_alt" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="collapse_alt" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="smile" unicode="" +d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 +t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 +t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="frown" unicode="" +d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 +t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 +t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="meh" unicode="" +d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 +t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="gamepad" unicode="" horiz-adv-x="1920" +d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 +t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 +t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" /> + <glyph glyph-name="keyboard" unicode="" horiz-adv-x="1920" +d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 +h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 +h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 +q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 +h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="flag_alt" unicode="" horiz-adv-x="1792" +d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 +h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 +q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> + <glyph glyph-name="flag_checkered" unicode="" horiz-adv-x="1792" +d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 +q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 +q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 +q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> + <glyph glyph-name="terminal" unicode="" horiz-adv-x="1664" +d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 +t9 -23z" /> + <glyph glyph-name="code" unicode="" horiz-adv-x="1920" +d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 +l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" /> + <glyph glyph-name="reply_all" unicode="" horiz-adv-x="1792" +d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 +q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" /> + <glyph glyph-name="star_half_empty" unicode="" horiz-adv-x="1664" +d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 +l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" /> + <glyph glyph-name="location_arrow" unicode="" horiz-adv-x="1408" +d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" /> + <glyph glyph-name="crop" unicode="" horiz-adv-x="1664" +d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 +v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" /> + <glyph glyph-name="code_fork" unicode="" horiz-adv-x="1024" +d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 +q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 +q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" /> + <glyph glyph-name="unlink" unicode="" horiz-adv-x="1664" +d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 +q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 +l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 +t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> + <glyph glyph-name="question" unicode="" horiz-adv-x="1024" +d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 +t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" /> + <glyph glyph-name="_279" unicode="" horiz-adv-x="640" +d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 +q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" /> + <glyph glyph-name="exclamation" unicode="" horiz-adv-x="640" +d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" /> + <glyph glyph-name="superscript" unicode="" +d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z +M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5 +t-65.5 -51.5t-30.5 -63h232v80h126z" /> + <glyph glyph-name="subscript" unicode="" +d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z +M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73 +h232v80h126z" /> + <glyph glyph-name="_283" unicode="" horiz-adv-x="1920" +d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" /> + <glyph glyph-name="puzzle_piece" unicode="" horiz-adv-x="1664" +d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 +t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 +q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 +q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" /> + <glyph glyph-name="microphone" unicode="" horiz-adv-x="1152" +d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 +t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" /> + <glyph glyph-name="microphone_off" unicode="" horiz-adv-x="1408" +d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 +q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 +t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" /> + <glyph glyph-name="shield" unicode="" horiz-adv-x="1280" +d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 +t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="calendar_empty" unicode="" horiz-adv-x="1664" +d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 +q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="fire_extinguisher" unicode="" horiz-adv-x="1408" +d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 +q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 +q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" /> + <glyph glyph-name="rocket" unicode="" horiz-adv-x="1664" +d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 +q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" /> + <glyph glyph-name="maxcdn" unicode="" horiz-adv-x="1792" +d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" /> + <glyph glyph-name="chevron_sign_left" unicode="" +d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="chevron_sign_right" unicode="" +d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="chevron_sign_up" unicode="" +d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="chevron_sign_down" unicode="" +d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="html5" unicode="" horiz-adv-x="1408" +d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" /> + <glyph glyph-name="css3" unicode="" horiz-adv-x="1792" +d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" /> + <glyph glyph-name="anchor" unicode="" horiz-adv-x="1792" +d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 +q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 +t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" /> + <glyph glyph-name="unlock_alt" unicode="" horiz-adv-x="1152" +d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 +v-320h736z" /> + <glyph glyph-name="bullseye" unicode="" +d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 +t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ellipsis_horizontal" unicode="" horiz-adv-x="1408" +d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> + <glyph glyph-name="ellipsis_vertical" unicode="" horiz-adv-x="384" +d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> + <glyph glyph-name="_303" unicode="" +d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128 +q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="play_sign" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 +q16 -8 32 -8q17 0 32 9z" /> + <glyph glyph-name="ticket" unicode="" horiz-adv-x="1792" +d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 +t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" /> + <glyph glyph-name="minus_sign_alt" unicode="" +d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 +t84.5 -203.5z" /> + <glyph glyph-name="check_minus" unicode="" horiz-adv-x="1408" +d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 +t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="level_up" unicode="" horiz-adv-x="1024" +d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" /> + <glyph glyph-name="level_down" unicode="" horiz-adv-x="1024" +d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" /> + <glyph glyph-name="check_sign" unicode="" +d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 +t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="edit_sign" unicode="" +d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 +v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_312" unicode="" +d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 +q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="share_sign" unicode="" +d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 +t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="compass" unicode="" +d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="collapse" unicode="" +d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 +v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="collapse_top" unicode="" +d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_317" unicode="" +d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 +t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="eur" unicode="" horiz-adv-x="1024" +d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 +t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 +l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" /> + <glyph glyph-name="gbp" unicode="" horiz-adv-x="1024" +d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 +q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" /> + <glyph glyph-name="usd" unicode="" horiz-adv-x="1024" +d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 +t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 +t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 +t53 -63.5t31.5 -76.5t13 -94z" /> + <glyph glyph-name="inr" unicode="" horiz-adv-x="898" +d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 +q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" /> + <glyph glyph-name="jpy" unicode="" horiz-adv-x="1027" +d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 +l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" /> + <glyph glyph-name="rub" unicode="" horiz-adv-x="1280" +d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 +q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" /> + <glyph glyph-name="krw" unicode="" horiz-adv-x="1792" +d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 +t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 +q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" /> + <glyph glyph-name="btc" unicode="" horiz-adv-x="1280" +d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 +l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 +t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" /> + <glyph glyph-name="file" unicode="" +d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" /> + <glyph glyph-name="file_text" unicode="" +d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 +q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" /> + <glyph glyph-name="sort_by_alphabet" unicode="" horiz-adv-x="1664" +d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 +v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 +l230 -662h70z" /> + <glyph glyph-name="_329" unicode="" horiz-adv-x="1664" +d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 +v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 +v119h121z" /> + <glyph glyph-name="sort_by_attributes" unicode="" horiz-adv-x="1792" +d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 +q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 +q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" /> + <glyph glyph-name="sort_by_attributes_alt" unicode="" horiz-adv-x="1792" +d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 +q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 +q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" /> + <glyph glyph-name="sort_by_order" unicode="" +d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 +zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 +t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" /> + <glyph glyph-name="sort_by_order_alt" unicode="" +d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 +t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 +q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" /> + <glyph glyph-name="_334" unicode="" horiz-adv-x="1664" +d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 +q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 +t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" /> + <glyph glyph-name="_335" unicode="" horiz-adv-x="1664" +d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 +t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 +t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" /> + <glyph glyph-name="youtube_sign" unicode="" +d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 +q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 +q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 +q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38 +q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5 +h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="youtube" unicode="" +d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 +q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 +q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 +q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51 +q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" /> + <glyph glyph-name="xing" unicode="" horiz-adv-x="1408" +d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 +q25 45 64 45h241q22 0 31 -15z" /> + <glyph glyph-name="xing_sign" unicode="" +d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 +l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="youtube_play" unicode="" horiz-adv-x="1792" +d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5 +l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136 +q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" /> + <glyph glyph-name="dropbox" unicode="" horiz-adv-x="1792" +d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" /> + <glyph glyph-name="stackexchange" unicode="" +d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" /> + <glyph glyph-name="instagram" unicode="" +d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 +q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5 +t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317 +q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" /> + <glyph glyph-name="flickr" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 +t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" /> + <glyph glyph-name="adn" unicode="" +d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="f171" unicode="" horiz-adv-x="1408" +d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 +t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 +t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 +t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" /> + <glyph glyph-name="bitbucket_sign" unicode="" +d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 +t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z +M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 +v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="tumblr" unicode="" horiz-adv-x="1024" +d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 +q78 2 134 29z" /> + <glyph glyph-name="tumblr_sign" unicode="" +d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z +M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="long_arrow_down" unicode="" horiz-adv-x="768" +d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" /> + <glyph glyph-name="long_arrow_up" unicode="" horiz-adv-x="768" +d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" /> + <glyph glyph-name="long_arrow_left" unicode="" horiz-adv-x="1792" +d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" /> + <glyph glyph-name="long_arrow_right" unicode="" horiz-adv-x="1792" +d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" /> + <glyph glyph-name="apple" unicode="" horiz-adv-x="1408" +d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 +q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" /> + <glyph glyph-name="windows" unicode="" horiz-adv-x="1664" +d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" /> + <glyph glyph-name="android" unicode="" horiz-adv-x="1408" +d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 +t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 +h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" /> + <glyph glyph-name="linux" unicode="" +d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z +M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 +q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 +q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 +t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 +q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 +q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 +q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 +q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4 +t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5 +t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43 +q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49 +t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54 +q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5 +t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5 +t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" /> + <glyph glyph-name="dribble" unicode="" +d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 +t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 +q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 +t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="skype" unicode="" +d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 +t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 +q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 +q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" /> + <glyph glyph-name="foursquare" unicode="" horiz-adv-x="1280" +d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z +M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 +l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" /> + <glyph glyph-name="trello" unicode="" +d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 +q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> + <glyph glyph-name="female" unicode="" horiz-adv-x="1280" +d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 +q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="male" unicode="" horiz-adv-x="1024" +d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z +M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="gittip" unicode="" +d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="sun" unicode="" horiz-adv-x="1792" +d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 +l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 +q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" /> + <glyph glyph-name="_366" unicode="" +d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 +t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" /> + <glyph glyph-name="archive" unicode="" horiz-adv-x="1792" +d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 +q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" /> + <glyph glyph-name="bug" unicode="" horiz-adv-x="1664" +d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 +q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 +t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" /> + <glyph glyph-name="vk" unicode="" horiz-adv-x="1920" +d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 +t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 +q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24 +q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 +q39 5 64 -2.5t31 -16.5z" /> + <glyph glyph-name="weibo" unicode="" horiz-adv-x="1792" +d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 +q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 +q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 +q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z +M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" /> + <glyph glyph-name="renren" unicode="" +d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 +q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" /> + <glyph glyph-name="_372" unicode="" horiz-adv-x="1408" +d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 +t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 +t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 +t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" /> + <glyph glyph-name="stack_exchange" unicode="" horiz-adv-x="1280" +d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z +" /> + <glyph glyph-name="_374" unicode="" +d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 +t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="arrow_circle_alt_left" unicode="" +d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 +t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_376" unicode="" +d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z +M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="dot_circle_alt" unicode="" +d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 +t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_378" unicode="" horiz-adv-x="1664" +d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 +q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" /> + <glyph glyph-name="vimeo_square" unicode="" +d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 +q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_380" unicode="" horiz-adv-x="1152" +d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 +q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> + <glyph glyph-name="plus_square_o" unicode="" horiz-adv-x="1408" +d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 +q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_382" unicode="" horiz-adv-x="2176" +d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 +t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 +q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" /> + <glyph glyph-name="_383" unicode="" horiz-adv-x="1664" +d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 +q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 +t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" /> + <glyph glyph-name="_384" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 +q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 +t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" /> + <glyph glyph-name="_385" unicode="" horiz-adv-x="1792" +d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 +t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 +t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 +t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 +t273 -182.5t331.5 -68z" /> + <glyph glyph-name="_386" unicode="" horiz-adv-x="1792" +d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" /> + <glyph glyph-name="_387" unicode="" horiz-adv-x="2048" +d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 +q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" /> + <glyph glyph-name="_388" unicode="" horiz-adv-x="2304" +d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 +q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" /> + <glyph glyph-name="_389" unicode="" +d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 +q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" /> + <glyph glyph-name="uniF1A0" unicode="" +d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 +t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" /> + <glyph glyph-name="f1a1" unicode="" horiz-adv-x="1792" +d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 +t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 +q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 +t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_392" unicode="" +d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 +q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 +q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 +q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_393" unicode="" +d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 +v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 +t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="f1a4" unicode="" horiz-adv-x="1920" +d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 +v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" /> + <glyph glyph-name="_395" unicode="" +d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 +t84.5 -203.5z" /> + <glyph glyph-name="_396" unicode="" horiz-adv-x="2048" +d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 +v-369h123z" /> + <glyph glyph-name="_397" unicode="" +d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 +v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 +q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_398" unicode="" horiz-adv-x="2038" +d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 +q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 +q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 +q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 +t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 +q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 +t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 +t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" /> + <glyph glyph-name="_399" unicode="" +d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 +q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 +q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 +t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 +q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" /> + <glyph glyph-name="_400" unicode="" +d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z +M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 +t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 +q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 +t135.5 51q85 0 145 -60.5t60 -145.5z" /> + <glyph glyph-name="f1ab" unicode="" +d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 +q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 +q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z +M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 +q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 +q20 0 20 -21v-418z" /> + <glyph glyph-name="_402" unicode="" horiz-adv-x="1792" +d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 +l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 +t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 +q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 +q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" /> + <glyph glyph-name="_403" unicode="" +d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 +t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 +q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 +q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 +t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 +q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 +q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 +t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" /> + <glyph glyph-name="_404" unicode="" horiz-adv-x="1280" +d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152 +q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="uniF1B1" unicode="" horiz-adv-x="1664" +d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 +q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 +q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 +t100.5 134t141.5 55.5z" /> + <glyph glyph-name="_406" unicode="" horiz-adv-x="768" +d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" /> + <glyph glyph-name="_407" unicode="" horiz-adv-x="1792" +d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z +" /> + <glyph glyph-name="_408" unicode="" horiz-adv-x="2304" +d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 +t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 +v-400l434 -186q36 -16 57 -48t21 -70z" /> + <glyph glyph-name="_409" unicode="" horiz-adv-x="2048" +d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 +q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 +q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" /> + <glyph glyph-name="_410" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 +t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 +t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" /> + <glyph glyph-name="_411" unicode="" horiz-adv-x="1792" +d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 +q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 +q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" /> + <glyph glyph-name="_412" unicode="" +d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 +q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 +q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z +" /> + <glyph glyph-name="_413" unicode="" horiz-adv-x="1792" +d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 +l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 +t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 +q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" /> + <glyph glyph-name="_414" unicode="" horiz-adv-x="2048" +d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 +q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 +l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="_415" unicode="" horiz-adv-x="2048" +d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 +t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z +M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" /> + <glyph glyph-name="_416" unicode="" +d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 +q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" /> + <glyph glyph-name="_417" unicode="" +d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 +q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 +q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_418" unicode="" horiz-adv-x="1024" +d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" /> + <glyph glyph-name="_419" unicode="" horiz-adv-x="2304" +d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 +q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 +q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 +l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 +q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236 +q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786 +q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" /> + <glyph glyph-name="uniF1C0" unicode="" +d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 +t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 +t-103 128v128q0 69 103 128t280 93.5t385 34.5z" /> + <glyph glyph-name="uniF1C1" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 +q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 +q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" /> + <glyph glyph-name="_422" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5 +t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" /> + <glyph glyph-name="_423" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 +h-290v-107h68l189 -272l-194 -283h-68z" /> + <glyph glyph-name="_424" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" /> + <glyph glyph-name="_425" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" /> + <glyph glyph-name="_426" unicode="" +d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 +v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 +q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" /> + <glyph glyph-name="_427" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 +q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" /> + <glyph glyph-name="_428" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" /> + <glyph glyph-name="_429" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 +l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" /> + <glyph glyph-name="_430" unicode="" +d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 +q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" /> + <glyph glyph-name="_431" unicode="" horiz-adv-x="1792" +d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 +q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" /> + <glyph glyph-name="_432" unicode="" horiz-adv-x="2048" +d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 +q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 +t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" /> + <glyph glyph-name="_433" unicode="" horiz-adv-x="1792" +d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 +q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 +t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" /> + <glyph glyph-name="_434" unicode="" horiz-adv-x="1792" +d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 +t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" /> + <glyph glyph-name="uniF1D0" unicode="" horiz-adv-x="1792" +d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 +t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 +t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 +q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" /> + <glyph glyph-name="uniF1D1" unicode="" horiz-adv-x="1792" +d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 +l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 +q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 +q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 +t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 +t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF1D2" unicode="" +d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 +q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 +q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 +q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_438" unicode="" horiz-adv-x="1792" +d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 +q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 +q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 +v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" /> + <glyph glyph-name="_439" unicode="" +d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="uniF1D5" unicode="" horiz-adv-x="1280" +d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 +t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 +t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" /> + <glyph glyph-name="uniF1D6" unicode="" horiz-adv-x="1792" +d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 +q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 +t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 +t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" /> + <glyph glyph-name="uniF1D7" unicode="" horiz-adv-x="2048" +d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 +q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 +q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 +q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" /> + <glyph glyph-name="_443" unicode="" horiz-adv-x="1792" +d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" /> + <glyph glyph-name="_444" unicode="" horiz-adv-x="1792" +d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 +l863 639l-478 -797z" /> + <glyph glyph-name="_445" unicode="" +d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 +t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 +t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_446" unicode="" +d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_447" unicode="" horiz-adv-x="1792" +d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 +t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 +t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 +q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 +q0 -26 -12 -48t-36 -22z" /> + <glyph glyph-name="_448" unicode="" horiz-adv-x="1280" +d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 +q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" /> + <glyph glyph-name="_449" unicode="" +d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 +q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" /> + <glyph glyph-name="uniF1E0" unicode="" +d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 +t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" /> + <glyph glyph-name="_451" unicode="" +d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 +t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_452" unicode="" horiz-adv-x="1792" +d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 +t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 +q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 +t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> + <glyph glyph-name="_453" unicode="" horiz-adv-x="1792" +d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 +l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" /> + <glyph glyph-name="_454" unicode="" horiz-adv-x="1792" +d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 +v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 +q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 +zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 +t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" /> + <glyph glyph-name="_455" unicode="" horiz-adv-x="1792" +d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z +M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_456" unicode="" horiz-adv-x="1792" +d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234 +l401 400q38 37 91 37t90 -37z" /> + <glyph glyph-name="_457" unicode="" horiz-adv-x="1792" +d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 +t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z +M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7 +t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" /> + <glyph glyph-name="_458" unicode="" horiz-adv-x="1792" +d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" /> + <glyph glyph-name="_459" unicode="" +d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 +q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 +t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 +q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" /> + <glyph glyph-name="_460" unicode="" horiz-adv-x="2048" +d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 +t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" /> + <glyph glyph-name="_461" unicode="" horiz-adv-x="2048" +d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 +q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z +M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" /> + <glyph glyph-name="_462" unicode="" horiz-adv-x="1792" +d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 +t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 +t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 +t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z +M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 +h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_463" unicode="" +d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 +q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 +q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" /> + <glyph glyph-name="_464" unicode="" horiz-adv-x="1792" +d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 +q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" /> + <glyph glyph-name="uniF1F0" unicode="" horiz-adv-x="2304" +d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 +q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 +q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_466" unicode="" horiz-adv-x="2304" +d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249 +q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z +M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32 +h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4 +q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75 +q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14 +q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22 +q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12 +q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122 +h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5 +t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_467" unicode="" horiz-adv-x="2304" +d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 +q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 +v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 +q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 +t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" /> + <glyph glyph-name="f1f3" unicode="" horiz-adv-x="2304" +d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z +M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 +l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 +v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 +q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 +q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 +t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 +h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 +t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" /> + <glyph glyph-name="_469" unicode="" horiz-adv-x="2304" +d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 +t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 +q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 +t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 +l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 +q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_470" unicode="" horiz-adv-x="2304" +d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 +q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 +q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 +q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 +q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_471" unicode="" horiz-adv-x="2048" +d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 +l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 +l418 363q10 8 23.5 7t21.5 -11z" /> + <glyph glyph-name="_472" unicode="" horiz-adv-x="2048" +d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 +q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 +q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" /> + <glyph glyph-name="_473" unicode="" horiz-adv-x="1408" +d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 +q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 +q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_474" unicode="" +d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 +t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 +t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_475" unicode="" +d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 +q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 +t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 +t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" /> + <glyph glyph-name="_476" unicode="" horiz-adv-x="1792" +d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 +t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" /> + <glyph glyph-name="f1fc" unicode="" horiz-adv-x="1792" +d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 +t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" /> + <glyph glyph-name="_478" unicode="" horiz-adv-x="1792" +d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5 +t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38 +t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448 +h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5 +q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" /> + <glyph glyph-name="_479" unicode="" horiz-adv-x="2048" +d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" /> + <glyph glyph-name="_480" unicode="" horiz-adv-x="1792" +d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_481" unicode="" horiz-adv-x="2048" +d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 +t9 -23z" /> + <glyph glyph-name="_482" unicode="" horiz-adv-x="1792" +d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 +q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 +t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 +q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" /> + <glyph glyph-name="_483" unicode="" +d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 +q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 +q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_484" unicode="" horiz-adv-x="2048" +d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 +t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 +t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" /> + <glyph glyph-name="_485" unicode="" horiz-adv-x="2048" +d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 +t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" /> + <glyph glyph-name="_486" unicode="" horiz-adv-x="2304" +d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 +q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 +q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 +q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" /> + <glyph glyph-name="_487" unicode="" +d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 +h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 +t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" /> + <glyph glyph-name="_488" unicode="" horiz-adv-x="2048" +d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 +q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 +q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" /> + <glyph glyph-name="_489" unicode="" horiz-adv-x="1280" +d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 +t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 +t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 +q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 +q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 +t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" /> + <glyph glyph-name="_490" unicode="" horiz-adv-x="2048" +d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 +q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 +t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 +t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" /> + <glyph glyph-name="_491" unicode="" +d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 +t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_492" unicode="" +d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 +q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 +q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" /> + <glyph glyph-name="_493" unicode="" +d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" /> + <glyph glyph-name="_494" unicode="" horiz-adv-x="2048" +d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 +q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 +q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438 +h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66 +l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946 +l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82 +zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" /> + <glyph glyph-name="f210" unicode="" +d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" /> + <glyph glyph-name="_496" unicode="" +d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 +q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" /> + <glyph glyph-name="f212" unicode="" horiz-adv-x="2048" +d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 +q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 +q209 0 374 -102q172 107 374 102z" /> + <glyph glyph-name="_498" unicode="" horiz-adv-x="2048" +d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 +q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 +q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" /> + <glyph glyph-name="_499" unicode="" +d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 +l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 +v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z +M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 +v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 +h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 +t-43 -34t-16.5 -53.5z" /> + <glyph glyph-name="_500" unicode="" horiz-adv-x="2048" +d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 +q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" /> + <glyph glyph-name="_501" unicode="" horiz-adv-x="2048" +d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 +t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 +t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 +q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" /> + <glyph glyph-name="_502" unicode="" horiz-adv-x="1664" +d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 +t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 +q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> + <glyph glyph-name="_503" unicode="" horiz-adv-x="1664" +d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 +t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 +q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> + <glyph glyph-name="_504" unicode="" horiz-adv-x="2048" +d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 +l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" /> + <glyph glyph-name="_505" unicode="" horiz-adv-x="2048" +d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 +q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 +q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 +v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 +q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" /> + <glyph glyph-name="_506" unicode="" +d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 +t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 +q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 +t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" /> + <glyph glyph-name="_507" unicode="" horiz-adv-x="2304" +d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 +t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 +l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 +t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" /> + <glyph glyph-name="_508" unicode="" +d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 +q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 +q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 +t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="_509" unicode="" horiz-adv-x="1792" +d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 +q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 +t127 -344z" /> + <glyph glyph-name="venus" unicode="" horiz-adv-x="1280" +d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 +q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" /> + <glyph glyph-name="_511" unicode="" +d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 +q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_512" unicode="" horiz-adv-x="1280" +d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 +t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 +t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_513" unicode="" +d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 +q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 +t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_514" unicode="" horiz-adv-x="1792" +d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 +q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 +t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 +t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_515" unicode="" horiz-adv-x="1792" +d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 +t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 +q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 +q0 -226 -154 -391q103 -57 218 -57z" /> + <glyph glyph-name="_516" unicode="" horiz-adv-x="1920" +d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 +q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 +t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 +q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" /> + <glyph glyph-name="_517" unicode="" horiz-adv-x="2048" +d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 +t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 +t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 +t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" /> + <glyph glyph-name="_518" unicode="" +d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 +t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 +t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_519" unicode="" horiz-adv-x="1280" +d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 +t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 +t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_520" unicode="" horiz-adv-x="2048" +d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 +t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 +t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_521" unicode="" horiz-adv-x="1280" +d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 +t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_522" unicode="" horiz-adv-x="1280" +d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 +t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" /> + <glyph glyph-name="_523" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="_524" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="_525" unicode="" +d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" /> + <glyph glyph-name="_526" unicode="" horiz-adv-x="1280" +d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 +l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 +q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" /> + <glyph glyph-name="_527" unicode="" +d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 +t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 +l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" /> + <glyph glyph-name="_528" unicode="" horiz-adv-x="1792" +d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 +q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" /> + <glyph glyph-name="_529" unicode="" horiz-adv-x="2048" +d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 +t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 +t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" /> + <glyph glyph-name="_530" unicode="" horiz-adv-x="2048" +d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 +q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 +t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" /> + <glyph glyph-name="_531" unicode="" horiz-adv-x="2048" +d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 +q-26 0 -45 -19t-19 -45v-384h1152z" /> + <glyph glyph-name="_532" unicode="" +d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" /> + <glyph glyph-name="_533" unicode="" +d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 +t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" /> + <glyph glyph-name="_534" unicode="" +d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 +t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" /> + <glyph glyph-name="_535" unicode="" horiz-adv-x="1792" +d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 +q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" /> + <glyph glyph-name="_536" unicode="" +d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" /> + <glyph glyph-name="_537" unicode="" horiz-adv-x="2296" +d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 +q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 +q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 +q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 +q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 +q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 +q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8 +t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 +q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 +q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z +M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86 +t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 +q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4 +l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130 +t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 +q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 +q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" /> + <glyph glyph-name="_538" unicode="" horiz-adv-x="2304" +d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 +t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 +t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" /> + <glyph glyph-name="_539" unicode="" horiz-adv-x="1792" +d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 +t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 +t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 +q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 +q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" /> + <glyph glyph-name="_540" unicode="" horiz-adv-x="2304" +d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 +v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="_541" unicode="" horiz-adv-x="2304" +d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 +h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_542" unicode="" horiz-adv-x="2304" +d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 +h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_543" unicode="" horiz-adv-x="2304" +d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 +h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_544" unicode="" horiz-adv-x="2304" +d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 +v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_545" unicode="" horiz-adv-x="1280" +d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" /> + <glyph glyph-name="_546" unicode="" horiz-adv-x="1024" +d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" /> + <glyph glyph-name="_547" unicode="" horiz-adv-x="2048" +d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 +h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" /> + <glyph glyph-name="_548" unicode="" horiz-adv-x="2304" +d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 +v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" /> + <glyph glyph-name="_549" unicode="" +d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" /> + <glyph glyph-name="_550" unicode="" +d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 +z" /> + <glyph glyph-name="_551" unicode="" horiz-adv-x="2304" +d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 +t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 +t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 +t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_552" unicode="" horiz-adv-x="2304" +d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 +t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z +M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_553" unicode="" horiz-adv-x="1792" +d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 +zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" /> + <glyph glyph-name="_554" unicode="" horiz-adv-x="2304" +d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 +q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 +t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 +t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" /> + <glyph glyph-name="_555" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 +t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> + <glyph glyph-name="_556" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" /> + <glyph glyph-name="_557" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" /> + <glyph glyph-name="_558" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 +h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> + <glyph glyph-name="_559" unicode="" +d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 +t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 +h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" /> + <glyph glyph-name="_560" unicode="" +d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 +q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 +t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 +q72 69 174 69z" /> + <glyph glyph-name="_561" unicode="" horiz-adv-x="1792" +d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 +t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 +h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" /> + <glyph glyph-name="_562" unicode="" horiz-adv-x="1792" +d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 +q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 +t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 +t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 +q0 -42 -23 -78t-61 -53l-310 -141h91z" /> + <glyph glyph-name="_563" unicode="" horiz-adv-x="2048" +d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 +q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 +q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" /> + <glyph glyph-name="_564" unicode="" horiz-adv-x="2048" +d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79 +t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24 +q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26 +l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" /> + <glyph glyph-name="_565" unicode="" horiz-adv-x="1792" +d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 +q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 +v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 +v-384h32z" /> + <glyph glyph-name="_566" unicode="" +d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 +v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 +q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 +q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 +q0 -53 37.5 -90.5t90.5 -37.5h668z" /> + <glyph glyph-name="_567" unicode="" horiz-adv-x="1973" +d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 +t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 +q13 0 22 -8.5t10 -20.5z" /> + <glyph glyph-name="_568" unicode="" horiz-adv-x="1792" +d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 +t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 +q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_569" unicode="" horiz-adv-x="1792" +d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 +q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5 +t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 +q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 +t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" /> + <glyph glyph-name="f260" unicode="" horiz-adv-x="2048" +d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" /> + <glyph glyph-name="f261" unicode="" horiz-adv-x="1792" +d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 +t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_572" unicode="" horiz-adv-x="2304" +d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 +t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 +t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 +t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 +t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 +q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" /> + <glyph glyph-name="f263" unicode="" horiz-adv-x="1280" +d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 +t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 +q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" /> + <glyph glyph-name="_574" unicode="" +d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 +q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 +zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_575" unicode="" horiz-adv-x="1720" +d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 +l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" /> + <glyph glyph-name="_576" unicode="" horiz-adv-x="2304" +d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 +q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 +l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" /> + <glyph glyph-name="_577" unicode="" horiz-adv-x="1792" +d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 +q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 +t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 +t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 +t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 +t191 -286t71 -348z" /> + <glyph glyph-name="_578" unicode="" horiz-adv-x="1792" +d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 +q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" /> + <glyph glyph-name="_579" unicode="" horiz-adv-x="1792" +d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 +q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 +q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" /> + <glyph glyph-name="_580" unicode="" horiz-adv-x="1792" +d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 +q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z +" /> + <glyph glyph-name="_581" unicode="" horiz-adv-x="1792" +d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 +q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z +M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" /> + <glyph glyph-name="_582" unicode="" horiz-adv-x="2048" +d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 +v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="_583" unicode="" horiz-adv-x="1792" +d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 +h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 +q-68 175 -180 287z" /> + <glyph glyph-name="_584" unicode="" +d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 +q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 +q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 +q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 +q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 +t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" /> + <glyph glyph-name="_585" unicode="" horiz-adv-x="1792" +d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z +M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 +q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 +t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 +q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" /> + <glyph glyph-name="_586" unicode="" horiz-adv-x="1792" +d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 +h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 +v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" /> + <glyph glyph-name="_587" unicode="" horiz-adv-x="1792" +d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 +t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 +t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_588" unicode="" horiz-adv-x="1792" +d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z +M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 +q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_589" unicode="" horiz-adv-x="1792" +d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 +t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 +t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_590" unicode="" horiz-adv-x="1792" +d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" /> + <glyph glyph-name="_591" unicode="" horiz-adv-x="1024" +d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 +q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" /> + <glyph glyph-name="_592" unicode="" horiz-adv-x="1792" +d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 +q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" /> + <glyph glyph-name="_593" unicode="" horiz-adv-x="2048" +d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 +v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" /> + <glyph glyph-name="_594" unicode="" horiz-adv-x="1792" +d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 +q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" /> + <glyph glyph-name="_595" unicode="" horiz-adv-x="1792" +d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 +t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 +t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> + <glyph glyph-name="_596" unicode="" horiz-adv-x="1792" +d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 +t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 +t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 +t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" /> + <glyph glyph-name="_597" unicode="" horiz-adv-x="1024" +d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" /> + <glyph glyph-name="_598" unicode="" horiz-adv-x="1792" +d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 +q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" /> + <glyph glyph-name="f27e" unicode="" +d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" /> + <glyph glyph-name="uniF280" unicode="" +d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 +h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 +l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" /> + <glyph glyph-name="uniF281" unicode="" horiz-adv-x="1792" +d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 +l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 +t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 +q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" /> + <glyph glyph-name="_602" unicode="" horiz-adv-x="1792" +d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 +q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" /> + <glyph glyph-name="_603" unicode="" horiz-adv-x="2304" +d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" /> + <glyph glyph-name="_604" unicode="" horiz-adv-x="1792" +d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308 +t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20 +t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" /> + <glyph glyph-name="uniF285" unicode="" horiz-adv-x="1792" +d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" /> + <glyph glyph-name="uniF286" unicode="" horiz-adv-x="1792" +d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 +q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5 +q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96 +q16 0 16 -16z" /> + <glyph glyph-name="_607" unicode="" horiz-adv-x="2304" +d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 +q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 +t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" /> + <glyph glyph-name="_608" unicode="" horiz-adv-x="1792" +d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 +t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_609" unicode="" horiz-adv-x="2304" +d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 +q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 +q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 +q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" /> + <glyph glyph-name="_610" unicode="" +d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 +t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 +q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 +t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" /> + <glyph glyph-name="_611" unicode="" +d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 +t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_612" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 +t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" /> + <glyph glyph-name="_613" unicode="" +d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 +t103 -385.5z" /> + <glyph glyph-name="_614" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 +t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" /> + <glyph glyph-name="_615" unicode="" horiz-adv-x="1792" +d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 +t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="_616" unicode="" horiz-adv-x="2048" +d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 +t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 +q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 +h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" /> + <glyph glyph-name="_617" unicode="" horiz-adv-x="1792" +d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 +q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 +q15 0 25 -12q9 -12 6 -28z" /> + <glyph glyph-name="_618" unicode="" +d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 +t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" /> + <glyph glyph-name="_619" unicode="" horiz-adv-x="1024" +d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" /> + <glyph glyph-name="_620" unicode="" +d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 +t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 +t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="_621" unicode="" horiz-adv-x="1792" +d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" /> + <glyph glyph-name="_622" unicode="" horiz-adv-x="1792" +d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 +q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" /> + <glyph glyph-name="_623" unicode="" +d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 +t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" /> + <glyph glyph-name="_624" unicode="" horiz-adv-x="1792" +d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 +q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 +q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" /> + <glyph glyph-name="_625" unicode="" horiz-adv-x="1792" +d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 +q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z +M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 +t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_626" unicode="" +d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 +l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z +M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" /> + <glyph glyph-name="_627" unicode="" +d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 +t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 +t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 +t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_628" unicode="" horiz-adv-x="1408" +d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 +q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 +q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 +q3 -1 7 1t7 4l3 2q11 9 11 17z" /> + <glyph glyph-name="_629" unicode="" horiz-adv-x="2304" +d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 +t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 +t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 +h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 +t9.5 -70.5z" /> + <glyph glyph-name="uniF2A0" unicode="" horiz-adv-x="1408" +d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 +q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 +l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 +t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 +q-18 -19 -45 -19z" /> + <glyph glyph-name="uniF2A1" unicode="" horiz-adv-x="2176" +d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 +q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 +q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 +t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 +t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 +t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 +t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" /> + <glyph glyph-name="uniF2A2" unicode="" horiz-adv-x="1792" +d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z +M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 +t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 +t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 +q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" /> + <glyph glyph-name="uniF2A3" unicode="" horiz-adv-x="2304" +d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 +q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 +q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 +q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 +q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 +q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" /> + <glyph glyph-name="uniF2A4" unicode="" horiz-adv-x="1792" +d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 +t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 +t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 +l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" /> + <glyph glyph-name="uniF2A5" unicode="" +d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 +q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 +q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 +t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="uniF2A6" unicode="" horiz-adv-x="1535" +d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 +l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 +q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 +q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" /> + <glyph glyph-name="uniF2A7" unicode="" horiz-adv-x="1664" +d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 +t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 +l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148 +q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26 +l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" /> + <glyph glyph-name="uniF2A8" unicode="" horiz-adv-x="1792" +d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 +q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 +q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 +q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" /> + <glyph glyph-name="uniF2A9" unicode="" horiz-adv-x="1280" +d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 +q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z +M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" /> + <glyph glyph-name="uniF2AA" unicode="" +d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z +M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 +q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 +t84.5 -203.5z" /> + <glyph glyph-name="uniF2AB" unicode="" +d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 +q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 +t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 +t103 -385.5z" /> + <glyph glyph-name="uniF2AC" unicode="" horiz-adv-x="1664" +d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 +q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 +t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" /> + <glyph glyph-name="uniF2AD" unicode="" +d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 +q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 +t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 +q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="uniF2AE" unicode="" horiz-adv-x="2304" +d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 +q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158 +q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" /> + <glyph glyph-name="uniF2B0" unicode="" +d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 +q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108 +l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z +M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" /> + <glyph glyph-name="uniF2B1" unicode="" horiz-adv-x="1664" +d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 +t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" /> + <glyph glyph-name="uniF2B2" unicode="" horiz-adv-x="1792" +d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 +t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114 +q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50 +q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5 +t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46 +q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5 +q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177 +t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" /> + <glyph glyph-name="uniF2B3" unicode="" +d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 +h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="uniF2B4" unicode="" +d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 +q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" /> + <glyph glyph-name="uniF2B5" unicode="" horiz-adv-x="2304" +d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66 +l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180 +q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z +M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421 +q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" /> + <glyph glyph-name="uniF2B6" unicode="" horiz-adv-x="1792" +d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107 +t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39 +q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" /> + <glyph glyph-name="uniF2B7" unicode="" horiz-adv-x="1792" +d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5 +l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5 +h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94 +q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" /> + <glyph glyph-name="uniF2B8" unicode="" +d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465 +l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161 +q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74 +q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" /> + <glyph glyph-name="uniF2B9" unicode="" horiz-adv-x="1664" +d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576 +q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216 +q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" /> + <glyph glyph-name="uniF2BA" unicode="" horiz-adv-x="1664" +d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5 +t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96 +q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216 +q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" /> + <glyph glyph-name="uniF2BB" unicode="" horiz-adv-x="2048" +d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z +M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568 +q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9 +h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2BC" unicode="" horiz-adv-x="2048" +d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925 +q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568 +q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5 +t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113 +t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2BD" unicode="" horiz-adv-x="1792" +d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5 +t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2BE" unicode="" horiz-adv-x="1792" +d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61 +t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" /> + <glyph glyph-name="uniF2C0" unicode="" +d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5 +t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145 +q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" /> + <glyph glyph-name="uniF2C1" unicode="" horiz-adv-x="1280" +d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5 +t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352 +q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2C2" unicode="" horiz-adv-x="2048" +d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56 +t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23 +v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728 +q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2C3" unicode="" horiz-adv-x="2048" +d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z +M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64 +q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47 +h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2C4" unicode="" horiz-adv-x="1792" +d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117 +q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5 +t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" /> + <glyph glyph-name="uniF2C5" unicode="" horiz-adv-x="2304" +d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21 +t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46 +t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54 +t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29 +q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5 +t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314 +q2 -42 2 -64z" /> + <glyph glyph-name="uniF2C6" unicode="" horiz-adv-x="1792" +d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 +t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2C7" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2C8" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2C9" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2CA" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2CB" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z +M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" /> + <glyph glyph-name="uniF2CC" unicode="" horiz-adv-x="1920" +d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41 +t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19 +t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768 +q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19 +t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384 +q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" /> + <glyph glyph-name="uniF2CD" unicode="" horiz-adv-x="1792" +d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9 +t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9 +t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42 +q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9 +t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23 +t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" /> + <glyph glyph-name="uniF2CE" unicode="" +d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5 +t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70 +q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20 +q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5 +t72.5 -263.5z" /> + <glyph glyph-name="uniF2D0" unicode="" horiz-adv-x="1792" +d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D1" unicode="" horiz-adv-x="1792" +d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D2" unicode="" horiz-adv-x="2048" +d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47 +t47 -113z" /> + <glyph glyph-name="uniF2D3" unicode="" horiz-adv-x="1792" +d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10 +l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D4" unicode="" horiz-adv-x="1792" +d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 +l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D5" unicode="" horiz-adv-x="1792" +d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2D6" unicode="" horiz-adv-x="1794" +d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12 +t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5 +t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5 +q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5 +q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34 +q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5 +t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2D7" unicode="" +d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89 +q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5 +t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" /> + <glyph glyph-name="uniF2D8" unicode="" +d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7 +t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5 +h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113 +v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D9" unicode="" horiz-adv-x="2176" +d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584 +q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5 +q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15 +q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82 +q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104 +t302 11t306.5 -97q220 -115 333 -336t87 -474z" /> + <glyph glyph-name="uniF2DA" unicode="" horiz-adv-x="1792" +d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178 +q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199 +t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297 +t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208 +t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" /> + <glyph glyph-name="uniF2DB" unicode="" +d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16 +q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28 +t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32 +q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16 +h48q16 0 16 -16z" /> + <glyph glyph-name="uniF2DC" unicode="" horiz-adv-x="1664" +d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45 +t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33 +q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313 +l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106 +q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" /> + <glyph glyph-name="uniF2DD" unicode="" horiz-adv-x="1792" +d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321 +q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" /> + <glyph glyph-name="uniF2DE" unicode="" horiz-adv-x="1792" +d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62 +t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71 +t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2E0" unicode="" horiz-adv-x="1920" +d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3 +t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53 +q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5 +q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5 +t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5 +q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z +M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21 +q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16 +q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" /> + <glyph glyph-name="uniF2E1" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E2" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E3" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E4" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E5" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E6" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E7" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="_698" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E9" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EA" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EB" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EC" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2ED" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EE" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="lessequal" unicode="" horiz-adv-x="1792" + /> + </font> +</defs></svg> diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 Binary files /dev/null and b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf differ diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.woff b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..400014a4b06eee3d0c0d54402a47ab2601b2862b Binary files /dev/null and b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.woff differ diff --git a/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 Binary files /dev/null and b/interface/web/themes/default/assets/stylesheets/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 differ diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css index f5e8c46abfec9f60135b9ea07fb2cd5cef597a93..c255573e6c5560d69bc99ef7ef6e7bc20ca3edbc 100644 --- a/interface/web/themes/default/assets/stylesheets/ispconfig.css +++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css @@ -1,5 +1,6 @@ body { - overflow-y: scroll; } + overflow-y: scroll; + overflow-x: hidden; } .left { float: left; } @@ -140,7 +141,9 @@ body { #sidebar { margin-top: 27px; - width: 18%; + min-width: 18%; + max-width: 21%; + width: auto; border-style: solid; border-width: 1px; border-radius: 4px; } @@ -421,7 +424,7 @@ ul.gs-resultbox li.gs-cheader p.gs-cheader-limit { ul.df-resultbox li.df-cdata img, ul.gs-resultbox li.gs-cdata img { margin-right: 12px; } - + ul.df-resultbox li.df-cdata p span.df-cdata-title, ul.gs-resultbox li.gs-cdata p span.gs-cdata-title { font-weight: bold; } @@ -794,4 +797,7 @@ span.notification_text { color: red; background: #fdd; text-decoration: none; -} \ No newline at end of file +} +#apache_directives, #nginx_directives, #proxy_directives { + font-family: Consolas, "Courier New", Courier, monospace; +} diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 15aa44e148d0859e243f46c35327624cd93f3447..4cc88760bb33f3f4db9de9a5daf6b7a43b3a0eb7 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -8,7 +8,17 @@ <meta name='viewport' content='width=device-width, user-scalable=yes'> <meta name='description' lang='en' content='' /> <meta name='keywords' lang='en' content='' /> - <meta name='robots' content='index, follow' /> + <meta name='robots' content='noindex, nofollow' /> + + <link rel='apple-touch-icon' sizes='180x180' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/apple-touch-icon.png'> + <link rel='icon' type='image/png' sizes='32x32' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/favicon-32x32.png'> + <link rel='icon' type='image/png' sizes='16x16' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/favicon-16x16.png'> + <link rel='manifest' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/site.webmanifest'> + <link rel='mask-icon' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/safari-pinned-tab.svg' color='#cc151c'> + <link rel='shortcut icon' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/favicon.ico'> + <meta name='msapplication-TileColor' content='#cc151c'> + <meta name='msapplication-config' content='/themes/<tmpl_var name='current_theme'>/assets/favicon/browserconfig.xml'> + <meta name='theme-color' content='#cc151c'> <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/bootstrap.min.css' /> <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/fonts.min.css' /> @@ -19,6 +29,7 @@ <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/themes/default/theme.min.css' /> <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/select2.css' /> <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/select2-bootstrap.css' /> + <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/font-awesome-4.7.0/css/font-awesome.min.css' /> <tmpl_if name='logged_in' value='n'><link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/login.css' /></tmpl_if> </head> @@ -123,15 +134,15 @@ <script> <!-- //$('.ttip').tipsy({live: true, gravity: 'ne', html: true}); - + ISPConfig.tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled">'; ISPConfig.tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled">'; ISPConfig.tabChangeWarningTxt = '<tmpl_var name="global_tabchange_warning_txt">'; ISPConfig.tabChangeDiscardTxt = '<tmpl_var name="global_tabchange_discard_txt">'; - + <tmpl_if name="use_loadindicator" value="y">ISPConfig.setOption('useLoadIndicator', true);</tmpl_if> <tmpl_if name="use_combobox" value="y">ISPConfig.setOption('useComboBox', true);</tmpl_if> - + $(document).ready(function() { $('#globalsearch').ispconfigSearch({ dataSrc: '/dashboard/ajax_get_json.php?type=globalsearch', diff --git a/interface/web/themes/default/templates/main_login.tpl.htm b/interface/web/themes/default/templates/main_login.tpl.htm index 11042f02af351ebfdc4f97212bcf3b3b3b1044a5..c52e9071f283b83ff20ebd4b1cc53d039399f5f3 100644 --- a/interface/web/themes/default/templates/main_login.tpl.htm +++ b/interface/web/themes/default/templates/main_login.tpl.htm @@ -8,7 +8,16 @@ <meta name='viewport' content='width=device-width, user-scalable=yes'> <meta name='description' lang='en' content='' /> <meta name='keywords' lang='en' content='' /> - <meta name='robots' content='index, follow' /> + + <link rel='apple-touch-icon' sizes='180x180' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/apple-touch-icon.png'> + <link rel='icon' type='image/png' sizes='32x32' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/favicon-32x32.png'> + <link rel='icon' type='image/png' sizes='16x16' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/favicon-16x16.png'> + <link rel='manifest' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/site.webmanifest'> + <link rel='mask-icon' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/safari-pinned-tab.svg' color='#cc151c'> + <link rel='shortcut icon' href='/themes/<tmpl_var name='current_theme'>/assets/favicon/favicon.ico'> + <meta name='msapplication-TileColor' content='#cc151c'> + <meta name='msapplication-config' content='/themes/<tmpl_var name='current_theme'>/assets/favicon/browserconfig.xml'> + <meta name='theme-color' content='#cc151c'> <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/bootstrap.min.css' /> <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/fonts.min.css' /> diff --git a/interface/web/tools/form/interface_settings.tform.php b/interface/web/tools/form/interface_settings.tform.php deleted file mode 100644 index f213605bf787aaa739f69b7b853507f607128e17..0000000000000000000000000000000000000000 --- a/interface/web/tools/form/interface_settings.tform.php +++ /dev/null @@ -1,177 +0,0 @@ -<?php - -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - Form Definition - - Tabellendefinition - - Datentypen: - - INTEGER (Wandelt Ausdr�cke in Int um) - - DOUBLE - - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) - - VARCHAR (kein weiterer Format Check) - - TEXT (kein weiterer Format Check) - - DATE (Datumsformat, Timestamp Umwandlung) - - Formtype: - - TEXT (normales Textfeld) - - TEXTAREA (normales Textfeld) - - PASSWORD (Feldinhalt wird nicht angezeigt) - - SELECT (Gibt Werte als option Feld aus) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hinweis: - Das ID-Feld ist nicht bei den Table Values einzuf�gen. - - -*/ - -$form['title'] = 'interface_head_txt'; -$form['description'] = 'interface_desc_txt'; -$form['name'] = 'interface'; -$form['action'] = 'interface_settings.php'; -$form['db_table'] = 'sys_user'; -$form['db_table_idx'] = 'userid'; -$form["db_history"] = "no"; -$form['tab_default'] = 'main'; -$form['list_default'] = 'index.php'; -$form['auth'] = 'no'; //?? - -//* 0 = id of the user, > 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; -//* 0 = default groupid of the user, > 0 id must match with groupid of current user -$form['auth_preset']['groupid'] = 0; - -//** Permissions are: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -//* Pick out modules -//* TODO: limit to activated modules of the user -$modules_list = array(); -if($_SESSION["s"]["user"]["typ"] == 'admin') { - $handle = @opendir(ISPC_WEB_PATH); - while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') { - $modules_list[$file] = $file; - } - } - } - } -} else { - $tmp = $app->db->queryOneRecord("SELECT * FROM sys_user where username = ?", $_SESSION["s"]["user"]['username']); - $modules = $tmp['modules']; - //$modules = $conf['interface_modules_enabled']; - if($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $modules .= ',client'; - } - $tmp = explode(',', $modules); - foreach($tmp as $m) { - $modules_list[$m] = $m; - } -} - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file, -4, 4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -//* Load themes -$themes_list = array(); -$handle = @opendir(ISPC_THEMES_PATH); -while ($file = @readdir($handle)) { - if (substr($file, 0, 1) != '.') { - if(@is_dir(ISPC_THEMES_PATH."/$file")) { - if(!file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") || (@file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") && trim(@file_get_contents(ISPC_THEMES_PATH."/$file/ispconfig_version")) == ISPC_APP_VERSION)) { - $themes_list[$file] = $file; - } - } - } -} - -$form['tabs']['main'] = array ( - 'title' => 'Settings', - 'width' => 80, - 'template' => 'templates/interface_settings.htm', - 'fields' => array ( - //################################# - // Beginn Datenbankfelder - //################################# - 'startmodule' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $modules_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'app_theme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => 'default', - 'value' => $themes_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - //################################# - // ENDE Datenbankfelder - //################################# - ) -); - - -?> diff --git a/interface/web/tools/form/user_settings.tform.php b/interface/web/tools/form/user_settings.tform.php index f3ad5a2d3d3b1362cb72de062092ac75f5831a83..f063634b0ccf96ed6222acb33274c81b7dbd9ea2 100644 --- a/interface/web/tools/form/user_settings.tform.php +++ b/interface/web/tools/form/user_settings.tform.php @@ -61,14 +61,14 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ $form['title'] = 'User Settings'; -$form['description'] = 'Form to edit the user password and language.'; +//*$form['description'] = 'Form to edit the user password and language.'; $form['name'] = 'usersettings'; $form['action'] = 'user_settings.php'; $form['db_table'] = 'sys_user'; $form['db_table_idx'] = 'userid'; $form["db_history"] = "no"; $form['tab_default'] = 'users'; -$form['list_default'] = 'index.php'; +$form['list_default'] = 'user_settings.php'; $form['auth'] = 'no'; //* 0 = id of the user, > 0 id must match with id of current user @@ -92,6 +92,46 @@ while ($file = @readdir($handle)) { } } } +//* Pick out modules +//* TODO: limit to activated modules of the user +$modules_list = array(); +if($_SESSION["s"]["user"]["typ"] == 'admin') { + $handle = @opendir(ISPC_WEB_PATH); + while ($file = @readdir($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir(ISPC_WEB_PATH."/$file")) { + if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') { + $modules_list[$file] = $file; + } + } + } + } +} else { + $tmp = $app->db->queryOneRecord("SELECT * FROM sys_user where username = ?", $_SESSION["s"]["user"]['username']); + $modules = $tmp['modules']; + //$modules = $conf['interface_modules_enabled']; + if($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $modules .= ',client'; + } + $tmp = explode(',', $modules); + foreach($tmp as $m) { + $modules_list[$m] = $m; + } +} + +//* Load themes +$themes_list = array(); +$handle = @opendir(ISPC_THEMES_PATH); +while ($file = @readdir($handle)) { + if (substr($file, 0, 1) != '.') { + if(@is_dir(ISPC_THEMES_PATH."/$file")) { + if(!file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") || (@file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") && trim(@file_get_contents(ISPC_THEMES_PATH."/$file/ispconfig_version")) == ISPC_APP_VERSION)) { + $themes_list[$file] = $file; + } + } + } +} + $form['tabs']['users'] = array ( 'title' => 'Settings', @@ -141,6 +181,44 @@ $form['tabs']['users'] = array ( 'maxlength' => '2', 'rows' => '', 'cols' => '' + ), + 'startmodule' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'startmodule_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'startmodule_regex'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $modules_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'app_theme' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'app_theme_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'app_theme_regex'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => 'default', + 'value' => $themes_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' ) //################################# // ENDE Datenbankfelder diff --git a/interface/web/tools/import_ispconfig.php b/interface/web/tools/import_ispconfig.php index e2b8bad6479d43aeced846ebf2669da516276054..716ed2f9341ba7555660ab9e9ff1f5ab31aa506c 100644 --- a/interface/web/tools/import_ispconfig.php +++ b/interface/web/tools/import_ispconfig.php @@ -107,6 +107,17 @@ if(isset($_POST['connected'])) { } $app->tpl->setVar("client_group_id", $client_select); + //* Fill the mail server select field + $sql = "SELECT server_id, server_name FROM server WHERE mail_server = 1 and mirror_server_id = 0"; + $mail_servers = $app->db->queryAllRecords($sql); + $mail_server_select = ""; + if(is_array($mail_servers)) { + foreach( $mail_servers as $m_server) { + $selected = @($m_server['server_id'] == $_POST['local_server_id'])?'SELECTED':''; + $mail_server_select .= "<option value='$m_server[server_id]' $selected>$m_server[server_name]</option>\r\n"; + } + } + $app->tpl->setVar("local_server_id", $mail_server_select); try { //* Allow connections to self signed SSL certs @@ -161,6 +172,7 @@ $app->tpl->setVar('connected', $connected); $app->tpl->setVar('remote_session_id', $remote_session_id); $app->tpl->setVar('msg', $msg); $app->tpl->setVar('error', $error); +$app->tpl->setVar('local_server_id', $_POST['local_server_id'], true); //* SET csrf token $csrf_token = $app->auth->csrf_token_get('ispconfig_import'); @@ -188,7 +200,10 @@ function start_domain_import($mail_domain) { $server_id = intval($tmp['server_id']); unset($tmp); if($server_id == 0) $server_id = 1; - + + if (isset($_POST['local_server_id']) && intval($_POST['local_server_id']) !== $server_id){ + $server_id = intval($_POST['local_server_id']); + } //* get the mail domain record $mail_domain_rec = $client->mail_domain_get($remote_session_id, array('domain' => $mail_domain)); if(is_array($mail_domain_rec)) { diff --git a/interface/web/tools/import_vpopmail.php b/interface/web/tools/import_vpopmail.php index 3e732d3740923cb32457409f9d5260b086ac08a4..7ae4efb58b6f87388e9233584de3b434b5027ddd 100644 --- a/interface/web/tools/import_vpopmail.php +++ b/interface/web/tools/import_vpopmail.php @@ -242,6 +242,7 @@ function start_import() { "disablesmtp" => 'n', "disablesieve" => 'n', "disablelda" => 'n', + "disablelmtp" => 'n', "disabledoveadm" => 'n' ); $app->db->datalogInsert('mail_user', $sql, 'mailuser_id'); diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php deleted file mode 100644 index d7a1333b592dbe1147290055b16f03376956ec4a..0000000000000000000000000000000000000000 --- a/interface/web/tools/interface_settings.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -/****************************************** -* Begin Form configuration -******************************************/ - -$tform_def_file = "form/interface_settings.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Check permissions for module -$app->auth->check_module_permissions('tools'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - var $_theme_changed = false; - - function onLoad() { - global $app, $conf, $tform_def_file; - - // Loading template classes and initialize template - if(!is_object($app->tpl)) $app->uses('tpl'); - if(!is_object($app->tform)) $app->uses('tform'); - - $app->tpl->newTemplate("tabbed_form.tpl.htm"); - - // Load table definition from file - $app->tform->loadFormDef($tform_def_file); - - // Importing ID - $this->id = $_SESSION['s']['user']['userid']; - $_POST['id'] = $_SESSION['s']['user']['userid']; - - if(count($_POST) > 1) { - $this->dataRecord = $_POST; - $this->onSubmit(); - } else { - $this->onShow(); - } - } - - function onBeforeInsert() { - global $app, $conf; - - if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; - } - $this->updateSessionTheme(); - } - - function onInsert() { - die('No inserts allowed.'); - } - - function onBeforeUpdate() { - global $app, $conf; - - if($conf['demo_mode'] == true && $this->id <= 3) $app->tform->errorMessage .= 'This function is disabled in demo mode.'; - - if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; - } - $this->updateSessionTheme(); - } - - function updateSessionTheme() { - global $app, $conf; - - if($this->dataRecord['app_theme'] != 'default') { - $tmp_path = ISPC_THEMES_PATH."/".$this->dataRecord['app_theme']; - if(!@is_dir($tmp_path) || (@file_exists($tmp_path."/ispconfig_version") && trim(file_get_contents($tmp_path."/ispconfig_version")) != ISPC_APP_VERSION)) { - // fall back to default theme if this one is not compatible with current ispc version - $this->dataRecord['app_theme'] = 'default'; - } - } - if($this->dataRecord['app_theme'] != $_SESSION['s']['user']['theme']) $this->_theme_changed = true; - $_SESSION['s']['theme'] = $this->dataRecord['app_theme']; - $_SESSION['s']['user']['theme'] = $_SESSION['s']['theme']; - $_SESSION['s']['user']['app_theme'] = $_SESSION['s']['theme']; - } - - function onAfterInsert() { - $this->onAfterUpdate(); - } - - function onAfterUpdate() { - if($this->_theme_changed == true) { - // not the best way, but it works - header('Content-Type: text/html'); - print '<script type="text/javascript">document.location.reload();</script>'; - exit; - } - //else parent::onShow(); - } - - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/web/tools/lib/lang/ar_interface.lng b/interface/web/tools/lib/lang/ar_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ar_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/ar_usersettings.lng b/interface/web/tools/lib/lang/ar_usersettings.lng index 4ac506ab77c1d084eb975ff864fabc0ffb2ddfd7..c05b94e76e77b6f2c2548b8f3dc9607ba91d228f 100644 --- a/interface/web/tools/lib/lang/ar_usersettings.lng +++ b/interface/web/tools/lib/lang/ar_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/bg_interface.lng b/interface/web/tools/lib/lang/bg_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/bg_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/bg_usersettings.lng b/interface/web/tools/lib/lang/bg_usersettings.lng index 838053f5637682cf67fa9987a58e896ac325c5f4..c30dcf37019f205569a250bd4addd21cf6961e6a 100644 --- a/interface/web/tools/lib/lang/bg_usersettings.lng +++ b/interface/web/tools/lib/lang/bg_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/br.lng b/interface/web/tools/lib/lang/br.lng index 3000e972fc7eb8a0d11ed3df185c521ae706b948..1c1147216504e7c91983b42cc964cea44d4cca24 100644 --- a/interface/web/tools/lib/lang/br.lng +++ b/interface/web/tools/lib/lang/br.lng @@ -1,13 +1,13 @@ <?php -$wb['User Settings'] = 'Configurações do usuário'; +$wb['User Settings'] = 'Configurações de usuários'; $wb['Settings'] = 'Configurações'; $wb['ISPConfig Tools'] = 'Ferramentas'; +$wb['Interface'] = 'Interface'; $wb['Password and Language'] = 'Senha e Idioma'; -$wb['ispconfig_tools_note'] = 'Este módulo permite você alterar a senha e o idioma e sincronizar os registros dns.'; +$wb['ispconfig_tools_note'] = 'Este módulo permite alterar a senha e idioma e iniciar a sincronização de registros dns.'; +$wb['Sync Tools'] = 'Sincronização'; $wb['Resync'] = 'Sincronizar'; -$wb['Sync Tools'] = 'Sincronismo'; $wb['Import'] = 'Importar'; -$wb['ISPConfig 3 mail'] = 'ISPConfig 3'; -$wb['PDNS Tupa'] = 'Tupa PowerDNS'; -$wb['Interface'] = 'Interface'; +$wb['ISPConfig 3 mail'] = 'e-Mails do ISPConfig'; +$wb['PDNS Tupa'] = 'PowerDNS'; ?> diff --git a/interface/web/tools/lib/lang/br_import_ispconfig.lng b/interface/web/tools/lib/lang/br_import_ispconfig.lng index 8124d13f10edc1c39bd86746b0d3cd63e58db217..d77242b4838539a758babaf081d666c1e080215f 100644 --- a/interface/web/tools/lib/lang/br_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/br_import_ispconfig.lng @@ -1,23 +1,23 @@ <?php $wb['head_txt'] = 'Importar configuração de e-mail do ISPConfig 3'; -$wb['legend_txt'] = 'Detalhes da conexão do servidor remoto'; -$wb['legend2_txt'] = 'Importar domÃnio de e-mails'; +$wb['legend_txt'] = 'Detalhes da conexão remota do servidor'; +$wb['legend2_txt'] = 'Importar domÃnio de e-mail'; $wb['resync_sites_txt'] = 'Sincronizar sites'; $wb['resync_ftp_txt'] = 'Sincronizar usuários ftp'; -$wb['resync_shell_txt'] = 'Sincronizar usuários shell'; -$wb['resync_cron_txt'] = 'Sincronizar tarefas na cron'; -$wb['resync_db_txt'] = 'Sincronizar configurações de usuários do banco de dados'; -$wb['resync_mailbox_txt'] = 'Sincronizar e-mails'; +$wb['resync_shell_txt'] = 'Sincronizar usuários do shell'; +$wb['resync_cron_txt'] = 'Sincronizar tarefas no cron'; +$wb['resync_db_txt'] = 'Sincronizar configurações do cliente de banco de dados'; +$wb['resync_mailbox_txt'] = 'Sincronizar contas de e-mail'; $wb['resync_dns_txt'] = 'Sincronizar registros dns'; $wb['btn_start_txt'] = 'Iniciar importação'; -$wb['btn_connect_txt'] = 'Conectar no servidor remoto'; +$wb['btn_connect_txt'] = 'Conectar ao servidor remoto'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['client_group_id_txt'] = 'Cliente local'; -$wb['mail_domain_txt'] = 'DomÃnio de e-mails remoto'; -$wb['import_mailbox_txt'] = 'Importar e-mails'; -$wb['import_aliasdomain_txt'] = 'Importar apelidos de domÃnio'; -$wb['import_alias_txt'] = 'Importar apelidos de e-mails'; -$wb['import_forward_txt'] = 'Importar encaminhamentos de e-mails'; -$wb['import_user_filter_txt'] = 'Importar filtros de e-mail de usuários'; +$wb['mail_domain_txt'] = 'DomÃnio de e-mail remoto'; +$wb['import_mailbox_txt'] = 'Importar contas de e-mail'; +$wb['import_aliasdomain_txt'] = 'Importar alias de domÃnios'; +$wb['import_alias_txt'] = 'Importar alias de e-mail'; +$wb['import_forward_txt'] = 'Importar encaminhamentos de e-mail'; +$wb['import_user_filter_txt'] = 'Importar filtros de e-mail'; $wb['import_spamfilter_txt'] = 'Importar filtros anti-spam'; ?> diff --git a/interface/web/tools/lib/lang/br_import_vpopmail.lng b/interface/web/tools/lib/lang/br_import_vpopmail.lng index 55bc0bf238083d8a8833422dad1fbbaf2c826866..c18b0b6810dc8a5dfe4d5ba69847f575e656039e 100644 --- a/interface/web/tools/lib/lang/br_import_vpopmail.lng +++ b/interface/web/tools/lib/lang/br_import_vpopmail.lng @@ -1,7 +1,8 @@ <?php -$wb['head_txt'] = 'Importar configuração de e-mail do vpopmail'; -$wb['legend_txt'] = 'Detalhes da conexão do servidor de banco de dados remoto'; -$wb['btn_start_txt'] = 'Iniciar importação'; -$wb['btn_connect_txt'] = 'Conectar servidor remoto'; +$wb['head_txt'] = 'Importar configurações de e-mail do vpopmail'; +$wb['legend_txt'] = 'Detalhes da conexão remota do servidor de banco de dados'; +$wb['btn_start_txt'] = 'Iniciar Importação'; +$wb['btn_connect_txt'] = 'Conectar ao servidor remoto'; $wb['btn_cancel_txt'] = 'Cancelar'; + ?> diff --git a/interface/web/tools/lib/lang/br_index.lng b/interface/web/tools/lib/lang/br_index.lng index 437e1f01c384ab9871008b40fe50cc5ce7607c7c..bbb7085209407315ab13083159d593e387f7923a 100644 --- a/interface/web/tools/lib/lang/br_index.lng +++ b/interface/web/tools/lib/lang/br_index.lng @@ -1,4 +1,4 @@ <?php -$wb['page_head_txt'] = 'Ferramentas'; +$wb['page_head_txt'] = 'Ferramentas do ISPConfig'; $wb['page_desc_txt'] = 'Alterar configurações de usuário'; ?> diff --git a/interface/web/tools/lib/lang/br_interface.lng b/interface/web/tools/lib/lang/br_interface.lng deleted file mode 100644 index 45341060c552b666e73909c00f81a77e0c4fbaf7..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/br_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Configurações da interface'; -$wb['interface_desc_txt'] = 'Alterar interface'; -$wb['language_txt'] = 'Idioma'; -$wb['startmodule_txt'] = 'Módulo inicial'; -$wb['app_theme_txt'] = 'Tema'; -?> diff --git a/interface/web/tools/lib/lang/br_resync.lng b/interface/web/tools/lib/lang/br_resync.lng index bf854b33b31405b59fb49f3d94c6f9a33a0b9143..160a35dd0c32f92d5d4dfe50d986b91d0f627edc 100644 --- a/interface/web/tools/lib/lang/br_resync.lng +++ b/interface/web/tools/lib/lang/br_resync.lng @@ -1,53 +1,53 @@ <?php -$wb['head_txt'] = 'Sincronismo'; -$wb['legend_txt'] = 'Sincronizar'; +$wb['head_txt'] = 'Ferramentas de Sincronização'; +$wb['legend_txt'] = 'Sincronização'; $wb['resync_all_txt'] = 'Todos os serviços'; $wb['resync_sites_txt'] = 'Sites'; -$wb['resync_ftp_txt'] = 'Contas ftp'; +$wb['resync_ftp_txt'] = 'Contas FTP'; $wb['resync_webdav_txt'] = 'Usuários webdav'; -$wb['resync_shell_txt'] = 'Usuários shell'; +$wb['resync_shell_txt'] = 'Usuários do shell'; $wb['resync_cron_txt'] = 'Tarefas no cron'; -$wb['resync_db_txt'] = 'Configurações de banco de dados de clientes'; -$wb['resync_mailbox_txt'] = 'e-mails'; -$wb['resync_mail_txt'] = 'DomÃnio de e-mails'; +$wb['resync_db_txt'] = 'Configurações do banco de dados de clientes'; +$wb['resync_mailbox_txt'] = 'Contas de e-mail'; +$wb['resync_mail_txt'] = 'DomÃnios de e-mail'; $wb['resync_mailfilter_txt'] = 'Filtros de e-mail'; $wb['resync_mailinglist_txt'] = 'Listas de e-mail'; $wb['resync_dns_txt'] = 'Registros dns'; -$wb['resync_vserver_txt'] = 'Servidores virtuais'; +$wb['resync_vserver_txt'] = 'Máquinas virtuais'; $wb['resync_client_txt'] = 'Clientes e revendas'; $wb['all_active_txt'] = 'Todos os servidores ativos'; $wb['all_active_mail_txt'] = 'Todos os servidores de e-mail ativos'; $wb['all_active_web_txt'] = 'Todos os servidores web ativos'; $wb['all_active_dns_txt'] = 'Todos os servidores dns ativos'; -$wb['all_active_file_txt'] = 'Todos servidores ftp ativos'; +$wb['all_active_file_txt'] = 'Todos os servidores ftp ativos'; $wb['all_active_db_txt'] = 'Todos os servidores de banco de dados ativos'; -$wb['all_active_vserver_txt'] = 'Todos servidores virtuais ativos'; -$wb['do_sites_txt'] = 'Sites sincronizados'; -$wb['do_ftp_txt'] = 'Usuários ftp sincronizados'; -$wb['do_webdav_txt'] = 'Usuários webdav sincronizados'; -$wb['do_shell_txt'] = 'Usuários shell sincronizados'; -$wb['do_cron_txt'] = 'Tarefas no cron sincronizadas'; -$wb['do_db_user_txt'] = 'Usuários de banco de dados sincronizados'; -$wb['do_db_txt'] = 'Banco de dados sincronizados'; -$wb['do_mail_txt'] = 'DomÃnio de e-mails sincronizados'; -$wb['do_mailbox_txt'] = 'Contas de e-mail sincronizadas'; -$wb['do_mail_alias_txt'] = 'Apelidos de e-mail sincronizados'; -$wb['do_mail_access_txt'] = 'Usuários remotos de e-mail sincronizados'; -$wb['do_mail_contentfilter_txt'] = 'Filtros de e-mail sincronizados'; -$wb['do_mail_userfilter_txt'] = 'Filtros de e-mail de usuários sincronizados'; -$wb['do_mailinglist_txt'] = 'Listas de e-mail sincronizadas'; -$wb['do_dns_txt'] = 'Zonas dns sincronizadas'; -$wb['do_vserver_txt'] = 'Servidores virtuais sincronizados'; -$wb['do_clients_txt'] = 'Clientes e revendas sincronizados'; -$wb['no_results_txt'] = 'Não encontrado'; +$wb['all_active_vserver_txt'] = 'Todos as máquinas virtuais ativas'; +$wb['do_sites_txt'] = 'Sites sincronizados.'; +$wb['do_ftp_txt'] = 'Usuários ftp sincronizados.'; +$wb['do_webdav_txt'] = 'Usuários webdav sincronizados.'; +$wb['do_shell_txt'] = 'Usuários do shell sincronizados.'; +$wb['do_cron_txt'] = 'Tarefas no cron sincronizadas.'; +$wb['do_db_user_txt'] = 'Usuários do banco de dados sincronizados.'; +$wb['do_db_txt'] = 'Banco de dados sincronizados.'; +$wb['do_mail_txt'] = 'DomÃnios de e-mal sincronizados.'; +$wb['do_mailbox_txt'] = 'Contas de e-mail sincronizadas.'; +$wb['do_mail_alias_txt'] = 'Alias de domÃnios de e-mail sincronizados.'; +$wb['do_mail_access_txt'] = 'Acessos de e-mail sincronizados.'; +$wb['do_mail_contentfilter_txt'] = 'Filtros de conteúdo de e-mail sincronizados.'; +$wb['do_mail_userfilter_txt'] = 'Filtros de e-mail sincronizados.'; +$wb['do_mailinglist_txt'] = 'Listas de e-mail sincronizadas.'; +$wb['do_dns_txt'] = 'Zonas DNS sincronizadas.'; +$wb['do_vserver_txt'] = 'Máquinas virtuais sincronizados.'; +$wb['do_clients_txt'] = 'Clientes e revendas sincronizados.'; +$wb['no_results_txt'] = 'Nada foi encontrado.'; $wb['btn_start_txt'] = 'Iniciar'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['do_mail_spamfilter_policy_txt'] = 'PolÃticas anti-spam sincronizadas'; -$wb['do_mail_spamfilter_txt'] = 'Filtros anti-spam sincronizados'; -$wb['do_mailget_txt'] = 'Contas de busca de e-mail sincronizadas'; -$wb['resync_mailget_txt'] = 'Contas de busca de e-mails'; -$wb['resync_mailtransport_txt'] = 'E-Mail Transport'; -$wb['resync_mailrelay_txt'] = 'E-Mail Relay'; -$wb['do_mailtransport_txt'] = 'Resynced Mailtransport'; -$wb['do_mailrelay_txt'] = 'Resynced Mailrelay'; +$wb['do_mail_spamfilter_policy_txt'] = 'Sincronizar polÃticas anti-spam'; +$wb['do_mail_spamfilter_txt'] = 'PolÃticas anti-spam sincronizadas.'; +$wb['do_mailget_txt'] = 'Contas de busca sincronizadas.'; +$wb['resync_mailget_txt'] = 'Sincronizar contas de busca.'; +$wb['resync_mailtransport_txt'] = 'Sincronizar transportes de e-mail'; +$wb['resync_mailrelay_txt'] = 'Sincronizar retransmissão de e-mail'; +$wb['do_mailtransport_txt'] = 'Transportes de e-mail sincronizados.'; +$wb['do_mailrelay_txt'] = 'Retransmissões de e-mail sincronizados.'; ?> diff --git a/interface/web/tools/lib/lang/br_tpl_default.lng b/interface/web/tools/lib/lang/br_tpl_default.lng index 1e09eea22cb37acfb69a24fc1a3ce2449d96b034..30ae32b17aef86dfe80ce7e33eab64ff163b2811 100644 --- a/interface/web/tools/lib/lang/br_tpl_default.lng +++ b/interface/web/tools/lib/lang/br_tpl_default.lng @@ -1,7 +1,7 @@ <?php -$wb['list_head_txt'] = 'Configurações do tema padrão'; +$wb['list_head_txt'] = 'Configuração padrão de temas'; $wb['list_desc_txt'] = 'Alterar opções especÃficas do tema padrão'; -$wb['no_settings_txt'] = 'Não existem configurações para o tema padrão.'; +$wb['no_settings_txt'] = 'Não existe configurações para o tema padrão.'; $wb['btn_start_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Voltar'; ?> diff --git a/interface/web/tools/lib/lang/br_usersettings.lng b/interface/web/tools/lib/lang/br_usersettings.lng index 8fccd268529f05507256890d6d5f8f69bc2b119f..e254e81a4f3005f3de39a18410d6af66b72f169e 100644 --- a/interface/web/tools/lib/lang/br_usersettings.lng +++ b/interface/web/tools/lib/lang/br_usersettings.lng @@ -2,11 +2,14 @@ $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['language_txt'] = 'Idioma'; -$wb['password_mismatch'] = 'As senhas não coincidem'; -$wb['Form to edit the user password and language.'] = 'Alterar idioma e senha'; +$wb['password_mismatch'] = 'A senha e confirmação da senha não coincidem.'; +$wb['Form to edit the user password and language.'] = 'Editar senha e idioma do usuário'; $wb['Settings'] = 'Configurações'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['language_txt'] = 'Idioma'; +$wb['startmodule_txt'] = 'Módulo Inicial'; +$wb['app_theme_txt'] = 'Tema'; ?> diff --git a/interface/web/tools/lib/lang/ca_interface.lng b/interface/web/tools/lib/lang/ca_interface.lng deleted file mode 100644 index b252103fd908f4022a457e2faca119739c96dc90..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ca_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Paramètres d\'interface'; -$wb['interface_desc_txt'] = 'Modifier votre interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Page d\'accueil'; -$wb['app_theme_txt'] = 'Interface'; -?> diff --git a/interface/web/tools/lib/lang/ca_usersettings.lng b/interface/web/tools/lib/lang/ca_usersettings.lng index fa40272aa08c094150913e5a3194e2cda2356128..4705660b9e1489cdd8fdcdaadd22561a4892d410 100644 --- a/interface/web/tools/lib/lang/ca_usersettings.lng +++ b/interface/web/tools/lib/lang/ca_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Générer mot de passe'; $wb['repeat_password_txt'] = 'Retaper le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Page d\'accueil'; +$wb['app_theme_txt'] = 'Interface'; ?> diff --git a/interface/web/tools/lib/lang/cz_interface.lng b/interface/web/tools/lib/lang/cz_interface.lng deleted file mode 100644 index 507b7c3cbeda904058d89d4929dfed78d349fa87..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/cz_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Nastavenà rozhranÃ'; -$wb['interface_desc_txt'] = 'Možnost úpravy rozhranÃ'; -$wb['language_txt'] = 'Jazyk'; -$wb['startmodule_txt'] = 'Výchozà modul po pÅ™ihlášenÃ'; -$wb['app_theme_txt'] = 'Výchozà grafické téma'; -?> diff --git a/interface/web/tools/lib/lang/cz_usersettings.lng b/interface/web/tools/lib/lang/cz_usersettings.lng index ab76b2261ddba6e3de82efe75c06f8472e4c07fb..f447299e0883850364fd41fd65f986f55ab5cf20 100644 --- a/interface/web/tools/lib/lang/cz_usersettings.lng +++ b/interface/web/tools/lib/lang/cz_usersettings.lng @@ -9,4 +9,7 @@ $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['password_txt'] = 'Heslo'; +$wb['language_txt'] = 'Jazyk'; +$wb['startmodule_txt'] = 'Výchozà modul po pÅ™ihlášenÃ'; +$wb['app_theme_txt'] = 'Výchozà grafické téma'; ?> diff --git a/interface/web/tools/lib/lang/de_interface.lng b/interface/web/tools/lib/lang/de_interface.lng deleted file mode 100644 index 2af008f7639d2806c904323588c719ba096c8605..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/de_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Benutzeroberflächen Einstellungen'; -$wb['interface_desc_txt'] = 'Passen Sie die Benutzeroberfläche für sich an'; -$wb['language_txt'] = 'Sprache'; -$wb['startmodule_txt'] = 'Startmodul'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/de_usersettings.lng b/interface/web/tools/lib/lang/de_usersettings.lng index c643d38ff4e49bd5ba909380cf4af702715de985..dd5fefffae16a756fc596ae7566cedefe27d495f 100644 --- a/interface/web/tools/lib/lang/de_usersettings.lng +++ b/interface/web/tools/lib/lang/de_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Passwort erzeugen'; $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['language_txt'] = 'Sprache'; +$wb['startmodule_txt'] = 'Startmodul'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/dk_interface.lng b/interface/web/tools/lib/lang/dk_interface.lng deleted file mode 100644 index cc17dd2f5c5c9e04c67f11a66d8d04de0c6c5f58..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/dk_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Indstillinger'; -$wb['interface_desc_txt'] = 'Ændre din grænseflade'; -$wb['language_txt'] = 'Sprog'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/dk_usersettings.lng b/interface/web/tools/lib/lang/dk_usersettings.lng index 9398f2626ade1697b6ce74f5c4db00421a8c1c1f..341d9db757b08e847b3d0aa5b7ece8781959764a 100644 --- a/interface/web/tools/lib/lang/dk_usersettings.lng +++ b/interface/web/tools/lib/lang/dk_usersettings.lng @@ -9,4 +9,7 @@ $wb['repeat_password_txt'] = 'Gentage Adgangskode'; $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; $wb['password_txt'] = 'Password'; +$wb['language_txt'] = 'Sprog'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/el_interface.lng b/interface/web/tools/lib/lang/el_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/el_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/el_usersettings.lng b/interface/web/tools/lib/lang/el_usersettings.lng index 57e8bcb17a2b7dfc6677e58efbda065b480fd12a..68ddcd657c44dac297d32edcc570ceb6bd06b10c 100644 --- a/interface/web/tools/lib/lang/el_usersettings.lng +++ b/interface/web/tools/lib/lang/el_usersettings.lng @@ -9,4 +9,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/en_import_ispconfig.lng b/interface/web/tools/lib/lang/en_import_ispconfig.lng index 65ea1459806162a7ad5868dfc5325186b93edcd3..73002f88680904ef6e97d0407d4dfecbbab11637 100644 --- a/interface/web/tools/lib/lang/en_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/en_import_ispconfig.lng @@ -20,5 +20,6 @@ $wb['import_alias_txt'] = 'Import email alias'; $wb['import_forward_txt'] = 'Import forward'; $wb['import_user_filter_txt'] = 'Import user filter'; $wb['import_spamfilter_txt'] = 'Import spamfilter'; +$wb['local_server_txt'] = 'Local Mail Server'; ?> \ No newline at end of file diff --git a/interface/web/tools/lib/lang/en_interface.lng b/interface/web/tools/lib/lang/en_interface.lng deleted file mode 100644 index b15c7334b28e702ac47115ab5274b98aecc307b9..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/en_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb["interface_head_txt"] = 'Interface Settings'; -$wb["interface_desc_txt"] = 'Modify your interface'; -$wb["language_txt"] = 'Language'; -$wb["startmodule_txt"] = 'Startmodule'; -$wb["app_theme_txt"] = 'Design'; -?> \ No newline at end of file diff --git a/interface/web/tools/lib/lang/en_usersettings.lng b/interface/web/tools/lib/lang/en_usersettings.lng index 79c7437cb1b8882a75b3b3fc8ade2aeebcf4043f..601ae420ffb4120572a670e778a1887328a43fa4 100644 --- a/interface/web/tools/lib/lang/en_usersettings.lng +++ b/interface/web/tools/lib/lang/en_usersettings.lng @@ -9,4 +9,11 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb["language_txt"] = 'Language'; +$wb["startmodule_txt"] = 'Startmodule'; +$wb["app_theme_txt"] = 'Design'; +$wb['startmodule_empty'] = 'Startmodule empty.'; +$wb['startmodule_regex'] = 'Invalid chars in Startmodule.'; +$wb['app_theme_empty'] = 'App theme empty.'; +$wb['app_theme_regex'] = 'Invalid chars in App theme.'; ?> diff --git a/interface/web/tools/lib/lang/es_interface.lng b/interface/web/tools/lib/lang/es_interface.lng deleted file mode 100644 index 87b94e4c4a7b6e3876b3429c299eaaaa83a5876d..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/es_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Configuración de la interfaz'; -$wb['interface_desc_txt'] = 'Modifique su interfaz'; -$wb['language_txt'] = 'Idioma'; -$wb['startmodule_txt'] = 'Módulo de inicio'; -$wb['app_theme_txt'] = 'Diseño'; -?> diff --git a/interface/web/tools/lib/lang/es_usersettings.lng b/interface/web/tools/lib/lang/es_usersettings.lng index 9b2de57bfbd3bcf118bddf3f7113d9f57a47812b..43a181a11c7337042c0faada5357b30b53aae228 100644 --- a/interface/web/tools/lib/lang/es_usersettings.lng +++ b/interface/web/tools/lib/lang/es_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generar contraseña'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; $wb['password_match_txt'] = 'Las contraseñas coinciden.'; +$wb['language_txt'] = 'Idioma'; +$wb['startmodule_txt'] = 'Módulo de inicio'; +$wb['app_theme_txt'] = 'Diseño'; ?> diff --git a/interface/web/tools/lib/lang/fi.lng b/interface/web/tools/lib/lang/fi.lng old mode 100755 new mode 100644 diff --git a/interface/web/tools/lib/lang/fi_interface.lng b/interface/web/tools/lib/lang/fi_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/fi_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/fi_usersettings.lng b/interface/web/tools/lib/lang/fi_usersettings.lng old mode 100755 new mode 100644 index 8267c8117a57f1969b107d87d015a5c53bd6773d..91d71739537e6d663f4a6e9fc043ab5f73af5fed --- a/interface/web/tools/lib/lang/fi_usersettings.lng +++ b/interface/web/tools/lib/lang/fi_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/fr_interface.lng b/interface/web/tools/lib/lang/fr_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/fr_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/fr_usersettings.lng b/interface/web/tools/lib/lang/fr_usersettings.lng index bafccd3b97ba4a51252e6ab9a8932d07ff1856f0..b398e76e352ccb6b168473b29f74bcbf6c5b932f 100644 --- a/interface/web/tools/lib/lang/fr_usersettings.lng +++ b/interface/web/tools/lib/lang/fr_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Générer un mot de passe'; $wb['repeat_password_txt'] = 'Répéter le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/hr_interface.lng b/interface/web/tools/lib/lang/hr_interface.lng deleted file mode 100644 index 5cc9815a10c76d57884aa2056a06b2f765fc86e4..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/hr_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Postavke teme'; -$wb['interface_desc_txt'] = 'Podesi temu'; -$wb['language_txt'] = 'Jezik'; -$wb['startmodule_txt'] = 'PoÄetna stranica'; -$wb['app_theme_txt'] = 'Tema'; -?> diff --git a/interface/web/tools/lib/lang/hr_usersettings.lng b/interface/web/tools/lib/lang/hr_usersettings.lng index 50759d4883abbc64344f6b8bc4afa9e73fff949a..b707cce4da55bf35f0c771408c92f95fd0464457 100644 --- a/interface/web/tools/lib/lang/hr_usersettings.lng +++ b/interface/web/tools/lib/lang/hr_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generiraj Å¡ifru'; $wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; $wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; $wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['language_txt'] = 'Jezik'; +$wb['startmodule_txt'] = 'PoÄetna stranica'; +$wb['app_theme_txt'] = 'Tema'; ?> diff --git a/interface/web/tools/lib/lang/hu_interface.lng b/interface/web/tools/lib/lang/hu_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/hu_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/hu_usersettings.lng b/interface/web/tools/lib/lang/hu_usersettings.lng index 49aa75537fc06fa9fd9aaef184b5e16aa5408efd..2a89acf5b5f926929859300cc3e573566b55fc1c 100644 --- a/interface/web/tools/lib/lang/hu_usersettings.lng +++ b/interface/web/tools/lib/lang/hu_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/id_interface.lng b/interface/web/tools/lib/lang/id_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/id_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/id_usersettings.lng b/interface/web/tools/lib/lang/id_usersettings.lng index 7b1bc225cad5a6e8d3631332e983cd88e92f5179..760cfe75f244d893433fc863f683093816a11c00 100644 --- a/interface/web/tools/lib/lang/id_usersettings.lng +++ b/interface/web/tools/lib/lang/id_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/it_interface.lng b/interface/web/tools/lib/lang/it_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/it_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/it_usersettings.lng b/interface/web/tools/lib/lang/it_usersettings.lng index e75e8d28d2cf550d1893d81053c910d87584e7a3..a1ad8eba871125a2cf17c29a4e70b39f2f2f995d 100644 --- a/interface/web/tools/lib/lang/it_usersettings.lng +++ b/interface/web/tools/lib/lang/it_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/ja_interface.lng b/interface/web/tools/lib/lang/ja_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ja_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/ja_usersettings.lng b/interface/web/tools/lib/lang/ja_usersettings.lng index 443a4510543f83ab235d1e0dcf57a1f4770f5576..291aa94537208f694c4b6e49eabe059d7ac8f085 100644 --- a/interface/web/tools/lib/lang/ja_usersettings.lng +++ b/interface/web/tools/lib/lang/ja_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/nl_interface.lng b/interface/web/tools/lib/lang/nl_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/nl_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/nl_usersettings.lng b/interface/web/tools/lib/lang/nl_usersettings.lng index 0a95f7ffa9024dfff4d9db8168f76769a6df4792..909df9dbecf4bcadca6266477ec37b276581f1ee 100644 --- a/interface/web/tools/lib/lang/nl_usersettings.lng +++ b/interface/web/tools/lib/lang/nl_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Taal'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/pl_interface.lng b/interface/web/tools/lib/lang/pl_interface.lng deleted file mode 100644 index 0256fab376397535594b29404ab1b4d5cadb7a3e..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/pl_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Ustawienia interfejsu'; -$wb['interface_desc_txt'] = 'ZmieÅ„ temat interfejsu'; -$wb['language_txt'] = 'JÄ™zyk'; -$wb['startmodule_txt'] = 'ModuÅ‚ startowy'; -$wb['app_theme_txt'] = 'Temat'; -?> diff --git a/interface/web/tools/lib/lang/pl_usersettings.lng b/interface/web/tools/lib/lang/pl_usersettings.lng index 45081f681b6fce1de43062dd7602f154a15a5821..64396df2409dbb08ea741cd5d7ea7551ce5769c1 100644 --- a/interface/web/tools/lib/lang/pl_usersettings.lng +++ b/interface/web/tools/lib/lang/pl_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Wygeneruj hasÅ‚o'; $wb['repeat_password_txt'] = 'Powtórz hasÅ‚o'; $wb['password_mismatch_txt'] = 'HasÅ‚a siÄ™ nie zgadzajÄ…'; $wb['password_match_txt'] = 'HasÅ‚a siÄ™ zgadzajÄ…'; +$wb['language_txt'] = 'JÄ™zyk'; +$wb['startmodule_txt'] = 'ModuÅ‚ startowy'; +$wb['app_theme_txt'] = 'Temat'; ?> diff --git a/interface/web/tools/lib/lang/pt_interface.lng b/interface/web/tools/lib/lang/pt_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/pt_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/pt_usersettings.lng b/interface/web/tools/lib/lang/pt_usersettings.lng index 81fd824d303c8845fbe31e5110d226738fbcaad8..4925a3f7286da3e7a1fc9c74205d7dcd4217ccfe 100644 --- a/interface/web/tools/lib/lang/pt_usersettings.lng +++ b/interface/web/tools/lib/lang/pt_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/ro_interface.lng b/interface/web/tools/lib/lang/ro_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ro_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/ro_usersettings.lng b/interface/web/tools/lib/lang/ro_usersettings.lng index fae890fab609e6801b5e57f2de2e5059b37b1f50..8c43550f33cc56729cd5902089e60d21b5732e25 100644 --- a/interface/web/tools/lib/lang/ro_usersettings.lng +++ b/interface/web/tools/lib/lang/ro_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/ru_interface.lng b/interface/web/tools/lib/lang/ru_interface.lng deleted file mode 100644 index 91644d5c2b71fcbf9d4bbeb13e3b510d956af1b5..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ru_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'ÐаÑтройки интерфейÑа'; -$wb['interface_desc_txt'] = 'Измените Ñвой интерфейÑ'; -$wb['language_txt'] = 'Язык'; -$wb['startmodule_txt'] = 'Стартовый модуль'; -$wb['app_theme_txt'] = 'Тема'; -?> diff --git a/interface/web/tools/lib/lang/ru_usersettings.lng b/interface/web/tools/lib/lang/ru_usersettings.lng index 609b69fdb0ae28b498da62f2050c15caed902e4d..ffa3f3bf03116cf1d8b3cd4b97c38114e4762b28 100644 --- a/interface/web/tools/lib/lang/ru_usersettings.lng +++ b/interface/web/tools/lib/lang/ru_usersettings.lng @@ -9,4 +9,9 @@ $wb['generate_password_txt'] = 'Создать пароль'; $wb['repeat_password_txt'] = 'Повторить пароль'; $wb['password_mismatch_txt'] = 'Пароли не Ñовпадают.'; $wb['password_match_txt'] = 'Ðти пароли Ñовпадают.'; +$wb['interface_head_txt'] = 'ÐаÑтройки интерфейÑа'; +$wb['interface_desc_txt'] = 'Измените Ñвой интерфейÑ'; +$wb['language_txt'] = 'Язык'; +$wb['startmodule_txt'] = 'Стартовый модуль'; +$wb['app_theme_txt'] = 'Тема'; ?> diff --git a/interface/web/tools/lib/lang/se_interface.lng b/interface/web/tools/lib/lang/se_interface.lng deleted file mode 100644 index 9a66f59e00d79e4940c7c3e50ebda5e7adcfc7a6..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/se_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Gränssnittsinställnignar'; -$wb['interface_desc_txt'] = 'Ändra ditt gränssnitt'; -$wb['language_txt'] = 'SprÃ¥k'; -$wb['startmodule_txt'] = 'Startmodul'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/se_usersettings.lng b/interface/web/tools/lib/lang/se_usersettings.lng index 4461fff4968b7df639c080a81b5e9ddf6cb4113d..f6de2dc4eebe227af1be4cfe0e5de3bd5ee7eff1 100644 --- a/interface/web/tools/lib/lang/se_usersettings.lng +++ b/interface/web/tools/lib/lang/se_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generera lösenord'; $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; +$wb['language_txt'] = 'SprÃ¥k'; +$wb['startmodule_txt'] = 'Startmodul'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/sk_interface.lng b/interface/web/tools/lib/lang/sk_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/sk_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/sk_usersettings.lng b/interface/web/tools/lib/lang/sk_usersettings.lng index 4c8bcb900e742c83a7b65aa4c29293be8f866f1a..e00f5e664b1bb4bcb71a6614446dec2530c1aa21 100644 --- a/interface/web/tools/lib/lang/sk_usersettings.lng +++ b/interface/web/tools/lib/lang/sk_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/tr.lng b/interface/web/tools/lib/lang/tr.lng index 5782a862cf47bf28206e7da5fe9eca08a38f96d4..6115b8a7a341c7fd734371e1a72b25c781e3afa5 100644 --- a/interface/web/tools/lib/lang/tr.lng +++ b/interface/web/tools/lib/lang/tr.lng @@ -4,10 +4,10 @@ $wb['Settings'] = 'Ayarlar'; $wb['ISPConfig Tools'] = 'ISPConfig Araçları'; $wb['Interface'] = 'Arayüz'; $wb['Password and Language'] = 'Parola ve Dil'; -$wb['ispconfig_tools_note'] = 'Bu modül parola ve dilin deÄŸiÅŸtirilmesini saÄŸlayarak DNS kayıtları eÅŸleÅŸtirmesini baÅŸlatır.'; -$wb['Sync Tools'] = 'EÅŸleÅŸtirme Araçları'; -$wb['Resync'] = 'EÅŸleÅŸtirme'; -$wb['Import'] = 'Al'; -$wb['ISPConfig 3 mail'] = 'ISPConfig 3 postası'; +$wb['ispconfig_tools_note'] = 'Bu modül parola ve dilin deÄŸiÅŸtirilmesini saÄŸlayarak DNS kayıtları eÅŸitlemesini baÅŸlatır.'; +$wb['Sync Tools'] = 'EÅŸitleme Araçları'; +$wb['Resync'] = 'EÅŸitleme'; +$wb['Import'] = 'İçe Aktar'; +$wb['ISPConfig 3 mail'] = 'ISPConfig 3 E-postaları'; $wb['PDNS Tupa'] = 'PowerDNS Tupa Yöneticisi'; ?> diff --git a/interface/web/tools/lib/lang/tr_import_ispconfig.lng b/interface/web/tools/lib/lang/tr_import_ispconfig.lng index 7aec6bd47092f87953dac5fc1b8f06e6be754b35..67c98edbe78b40f51b3326400789a25f1cdbb66f 100644 --- a/interface/web/tools/lib/lang/tr_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/tr_import_ispconfig.lng @@ -1,23 +1,24 @@ <?php -$wb['head_txt'] = 'ISPConfig 3 E-posta Ayarları Alma'; -$wb['legend_txt'] = 'Uzak sunucu baÄŸlantı bilgileri'; -$wb['legend2_txt'] = 'E-posta alan adı alınsın'; -$wb['resync_sites_txt'] = 'Web siteleri eÅŸleÅŸtirilsin'; -$wb['resync_ftp_txt'] = 'FTP kullanıcıları eÅŸleÅŸtirilsin'; -$wb['resync_shell_txt'] = 'Kabuk kullanıcıları eÅŸleÅŸtirilsin'; -$wb['resync_cron_txt'] = 'Zamanlanmış görevler eÅŸleÅŸtirilsin'; -$wb['resync_db_txt'] = 'Müşteri veritabanı ayarları eÅŸleÅŸtirilsin'; -$wb['resync_mailbox_txt'] = 'Posta kutuları eÅŸleÅŸtirilsin'; -$wb['resync_dns_txt'] = 'DNS kayıtları eÅŸleÅŸtirilsin'; -$wb['btn_start_txt'] = 'Almayı BaÅŸlat'; +$wb['head_txt'] = 'ISPConfig 3 E-posta Ayarlarını İçe Aktarma'; +$wb['legend_txt'] = 'Uzak Sunucu BaÄŸlantı Bilgileri'; +$wb['legend2_txt'] = 'E-posta etki alanı içe aktarılsın'; +$wb['resync_sites_txt'] = 'Web Siteleri EÅŸitlensin'; +$wb['resync_ftp_txt'] = 'FTP Kullanıcıları EÅŸitlensin'; +$wb['resync_shell_txt'] = 'Kabuk Kullanıcıları EÅŸitlensin'; +$wb['resync_cron_txt'] = 'Zamanlanmış Görevler EÅŸitlensin'; +$wb['resync_db_txt'] = 'Müşteri Veritabanı Ayarları EÅŸitlensin'; +$wb['resync_mailbox_txt'] = 'E-posta Kutuları EÅŸitlensin'; +$wb['resync_dns_txt'] = 'DNS Kayıtları EÅŸitlensin'; +$wb['btn_start_txt'] = 'İçe Aktarmayı BaÅŸlat'; $wb['btn_connect_txt'] = 'Uzak Sunucuya BaÄŸlan'; $wb['btn_cancel_txt'] = 'Geri'; $wb['client_group_id_txt'] = 'Yerel Müşteri'; -$wb['mail_domain_txt'] = 'Uzak e-posta alan adı'; -$wb['import_mailbox_txt'] = 'Posta kutusunu al'; -$wb['import_aliasdomain_txt'] = 'Takma alan adını al'; -$wb['import_alias_txt'] = 'Takma e-postayı al'; -$wb['import_forward_txt'] = 'Yönlendirmeyi al'; -$wb['import_user_filter_txt'] = 'Kullanıcı süzgecini al'; -$wb['import_spamfilter_txt'] = 'Önemsiz posta süzgecini al'; +$wb['mail_domain_txt'] = 'Uzak E-posta Etki Alanı'; +$wb['import_mailbox_txt'] = 'E-posta Kutusu İçe Aktarılsın'; +$wb['import_aliasdomain_txt'] = 'Takma Etki Alanı İçe Aktarılsın'; +$wb['import_alias_txt'] = 'Takma E-posta İçe Aktarılsın'; +$wb['import_forward_txt'] = 'Yönlendirme İçe Aktarılsın'; +$wb['import_user_filter_txt'] = 'Kullanıcı Süzgeci İçe Aktarılsın'; +$wb['import_spamfilter_txt'] = 'Önemsiz İleti Süzgeci İçe Aktarılsın'; + ?> diff --git a/interface/web/tools/lib/lang/tr_import_vpopmail.lng b/interface/web/tools/lib/lang/tr_import_vpopmail.lng index 66fe56da1c7b170aaafa907796c2e5902387fc28..f0c05ea741bc4c84e72efd0590a956c77c6da283 100644 --- a/interface/web/tools/lib/lang/tr_import_vpopmail.lng +++ b/interface/web/tools/lib/lang/tr_import_vpopmail.lng @@ -1,7 +1,8 @@ <?php -$wb['head_txt'] = 'Import email configuration from Vpopmail'; -$wb['legend_txt'] = 'Remote database server connection details'; -$wb['btn_start_txt'] = 'Start Import'; -$wb['btn_connect_txt'] = 'Connect to remote server'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['head_txt'] = 'Vpopmail e-posta yapılandırmasını içe aktar'; +$wb['legend_txt'] = 'Uzak veritabanı sunucusu baÄŸlantı bilgileri'; +$wb['btn_start_txt'] = 'İçe Aktarmayı BaÅŸlat'; +$wb['btn_connect_txt'] = 'Uzak Sunucuya BaÄŸlan'; +$wb['btn_cancel_txt'] = 'İptal'; + ?> diff --git a/interface/web/tools/lib/lang/tr_index.lng b/interface/web/tools/lib/lang/tr_index.lng index d8ea10cf557b41784d4270b28d4ba54b974d2dca..6d9a6c361c7fb14160b549c4d90acf4596ade2c5 100644 --- a/interface/web/tools/lib/lang/tr_index.lng +++ b/interface/web/tools/lib/lang/tr_index.lng @@ -1,4 +1,4 @@ <?php $wb['page_head_txt'] = 'ISPConfig Araçları'; -$wb['page_desc_txt'] = 'Kullanıcı ayarlarını deÄŸiÅŸtirme'; +$wb['page_desc_txt'] = 'Kullanıcı Ayarlarını DeÄŸiÅŸtirme'; ?> diff --git a/interface/web/tools/lib/lang/tr_interface.lng b/interface/web/tools/lib/lang/tr_interface.lng deleted file mode 100644 index 2ff88a976e1c32f10659b9abd6867e67322cd817..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/tr_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Arayüz Ayarları'; -$wb['interface_desc_txt'] = 'Arayüzü düzenleyin'; -$wb['language_txt'] = 'Dil'; -$wb['startmodule_txt'] = 'BaÅŸlangıç modülü'; -$wb['app_theme_txt'] = 'Tasarım'; -?> diff --git a/interface/web/tools/lib/lang/tr_resync.lng b/interface/web/tools/lib/lang/tr_resync.lng index 71ebb0dda2b463c28ebce0184f86206b0f0af470..7cdfa91b9e4d6620d416367255a0cde0c2582800 100644 --- a/interface/web/tools/lib/lang/tr_resync.lng +++ b/interface/web/tools/lib/lang/tr_resync.lng @@ -1,53 +1,53 @@ <?php -$wb['head_txt'] = 'EÅŸleÅŸtirme Aracı'; -$wb['legend_txt'] = 'EÅŸleÅŸtirme'; -$wb['resync_sites_txt'] = 'Web siteleri eÅŸleÅŸtirilsin'; -$wb['resync_ftp_txt'] = 'FTP kullanıcıları eÅŸleÅŸtirilsin'; -$wb['resync_shell_txt'] = 'Kabuk kullanıcıları eÅŸleÅŸtirilsin'; -$wb['resync_cron_txt'] = 'Zamanlanmış görevler eÅŸleÅŸtirilsin'; -$wb['resync_db_txt'] = 'Müşteri veritabanı ayarları eÅŸleÅŸtirilsin'; -$wb['resync_mailbox_txt'] = 'Posta kutuları eÅŸleÅŸtirilsin'; -$wb['resync_dns_txt'] = 'DNS kayıtları eÅŸleÅŸtirilsin'; -$wb['resync_client_txt'] = 'Müşteri kayıtları eÅŸleÅŸtirilsin'; -$wb['btn_start_txt'] = 'EÅŸleÅŸtir'; +$wb['head_txt'] = 'EÅŸitleme Aracı'; +$wb['legend_txt'] = 'EÅŸitleme'; +$wb['resync_all_txt'] = 'Tüm Hizmetler'; +$wb['resync_sites_txt'] = 'Web Siteleri EÅŸitlensin'; +$wb['resync_ftp_txt'] = 'FTP Kullanıcıları EÅŸitlensin'; +$wb['resync_webdav_txt'] = 'WebDAV Kullanıcıları'; +$wb['resync_shell_txt'] = 'Kabuk Kullanıcıları EÅŸitlensin'; +$wb['resync_cron_txt'] = 'Zamanlanmış Görevler EÅŸitlensin'; +$wb['resync_db_txt'] = 'Müşteri Veritabanı Ayarları EÅŸitlensin'; +$wb['resync_mailbox_txt'] = 'E-posta Kutuları EÅŸitlensin'; +$wb['resync_mail_txt'] = 'E-posta Etki Alanları'; +$wb['resync_mailfilter_txt'] = 'E-posta Süzgeci'; +$wb['resync_mailinglist_txt'] = 'E-posta Listesi'; +$wb['resync_dns_txt'] = 'DNS Kayıtları EÅŸitlensin'; +$wb['resync_vserver_txt'] = 'sSunucu'; +$wb['resync_client_txt'] = 'Müşteri Kayıtları EÅŸitlensin'; +$wb['all_active_txt'] = 'Tüm Etkin Sunucular'; +$wb['all_active_mail_txt'] = 'Tüm Etkin E-posta Sunucuları'; +$wb['all_active_web_txt'] = 'Tüm Etkin Web Sunucuları'; +$wb['all_active_dns_txt'] = 'Tüm Etkin DNS Sunucuları'; +$wb['all_active_file_txt'] = 'Tüm Etkin Dosya Sunucuları'; +$wb['all_active_db_txt'] = 'Tüm Etkin Veritabanı Sunucuları'; +$wb['all_active_vserver_txt'] = 'Tüm Etkin Sanal Sunucular'; +$wb['do_sites_txt'] = 'EÅŸitlenen Web Sitesi'; +$wb['do_ftp_txt'] = 'EÅŸitlenen FTP Kullanıcısı'; +$wb['do_webdav_txt'] = 'EÅŸitlenen WebDav Kullanıcısı'; +$wb['do_shell_txt'] = 'EÅŸitlenen Kabuk Kullanıcısı'; +$wb['do_cron_txt'] = 'EÅŸitlenen Zamanlanmış Görev'; +$wb['do_db_user_txt'] = 'EÅŸitlenen Veritabanı Kullanıcısı'; +$wb['do_db_txt'] = 'EÅŸitlenen Veritabanı'; +$wb['do_mail_txt'] = 'EÅŸitlenen E-posta Etki Alanı'; +$wb['do_mailbox_txt'] = 'EÅŸitlenen E-posta Kutusu'; +$wb['do_mail_alias_txt'] = 'EÅŸitlenen Takma Ad'; +$wb['do_mail_access_txt'] = 'EÅŸitlenen E-posta EriÅŸimi'; +$wb['do_mail_contentfilter_txt'] = 'EÅŸitlenen İçerik Süzgeci'; +$wb['do_mail_userfilter_txt'] = 'EÅŸitlenen E-posta Kullanıcı Süzgeci'; +$wb['do_mailinglist_txt'] = 'EÅŸitlenen E-posta Listesi'; +$wb['do_dns_txt'] = 'EÅŸitlenen DNS Bölgesi'; +$wb['do_vserver_txt'] = 'EÅŸitlenen Sanal Sunucu'; +$wb['do_clients_txt'] = 'EÅŸitlenen Müşteri ve Bayiler'; +$wb['no_results_txt'] = 'Herhangi bir ÅŸey bulunamadı'; +$wb['btn_start_txt'] = 'EÅŸitle'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['resync_all_txt'] = 'All services'; -$wb['resync_webdav_txt'] = 'WebDAV-Users'; -$wb['resync_mail_txt'] = 'Maildomains'; -$wb['resync_mailfilter_txt'] = 'Mailfilter'; -$wb['resync_mailinglist_txt'] = 'Mailinglist'; -$wb['resync_vserver_txt'] = 'vServer'; -$wb['all_active_txt'] = 'All active server'; -$wb['all_active_mail_txt'] = 'All active Mail-Server'; -$wb['all_active_web_txt'] = 'All active Web-Server'; -$wb['all_active_dns_txt'] = 'All active DNS-Server'; -$wb['all_active_file_txt'] = 'All active File-Server'; -$wb['all_active_db_txt'] = 'All active Database-Server'; -$wb['all_active_vserver_txt'] = 'All active vServer'; -$wb['do_sites_txt'] = 'Resynced Website'; -$wb['do_ftp_txt'] = 'Resynced FTP user'; -$wb['do_webdav_txt'] = 'Resynced WebDav user'; -$wb['do_shell_txt'] = 'Resynced Shell user'; -$wb['do_cron_txt'] = 'Resynced Cronjob'; -$wb['do_db_user_txt'] = 'Resynced Database User'; -$wb['do_db_txt'] = 'Resynced Database'; -$wb['do_mail_txt'] = 'Resynced Maildomain'; -$wb['do_mailbox_txt'] = 'Resynced Mailbox'; -$wb['do_mail_alias_txt'] = 'Resynced Alias'; -$wb['do_mail_access_txt'] = 'Resynced Mail access'; -$wb['do_mail_contentfilter_txt'] = 'Resynced Content Filter'; -$wb['do_mail_userfilter_txt'] = 'Resynced Mail User Filter'; -$wb['do_mailinglist_txt'] = 'Resynced Mailinglist'; -$wb['do_dns_txt'] = 'Resynced DNS zone'; -$wb['do_vserver_txt'] = 'Resynced vServer'; -$wb['do_clients_txt'] = 'Resynced clients and reseller'; -$wb['no_results_txt'] = 'Nothing found'; -$wb['do_mail_spamfilter_policy_txt'] = 'Resynced Spamfilter Policies'; -$wb['do_mail_spamfilter_txt'] = 'Resynced Spamfilter'; -$wb['do_mailget_txt'] = 'Resynced Fetchmail'; +$wb['do_mail_spamfilter_policy_txt'] = 'EÅŸitlenen Önemsiz İleti Süzgeci İlkeleri'; +$wb['do_mail_spamfilter_txt'] = 'EÅŸitlenen Önemsiz İleti Süzgeci'; +$wb['do_mailget_txt'] = 'EÅŸitlenen Fetchmail'; $wb['resync_mailget_txt'] = 'Fetchmail'; -$wb['resync_mailtransport_txt'] = 'E-Mail Transport'; -$wb['resync_mailrelay_txt'] = 'E-Mail Relay'; -$wb['do_mailtransport_txt'] = 'Resynced Mailtransport'; -$wb['do_mailrelay_txt'] = 'Resynced Mailrelay'; +$wb['resync_mailtransport_txt'] = 'E-posta Gönderici'; +$wb['resync_mailrelay_txt'] = 'E-posta Aktarıcı'; +$wb['do_mailtransport_txt'] = 'E-posta Gönderici EÅŸitlendi'; +$wb['do_mailrelay_txt'] = 'E-posta Aktarıcı EÅŸitlendi'; ?> diff --git a/interface/web/tools/lib/lang/tr_usersettings.lng b/interface/web/tools/lib/lang/tr_usersettings.lng index 60c7679b9f555adfac952e54518161d4169ae07a..a1fd7c56d4cddc2fd47065819f46c37917369bfb 100644 --- a/interface/web/tools/lib/lang/tr_usersettings.lng +++ b/interface/web/tools/lib/lang/tr_usersettings.lng @@ -1,12 +1,15 @@ <?php -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_txt'] = 'Parola'; +$wb['password_strength_txt'] = 'Parola ZorluÄŸu'; $wb['language_txt'] = 'Dil'; $wb['password_mismatch'] = 'Parola ile onayı aynı deÄŸil.'; $wb['Form to edit the user password and language.'] = 'Parola ve dil ayarlarını deÄŸiÅŸtirme formu.'; $wb['Settings'] = 'Ayarlar'; -$wb['generate_password_txt'] = 'Parola OluÅŸtur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['password_txt'] = 'Password'; +$wb['language_txt'] = 'Dil'; +$wb['startmodule_txt'] = 'BaÅŸlangıç modülü'; +$wb['app_theme_txt'] = 'Tasarım'; ?> diff --git a/interface/web/tools/lib/module.conf.php b/interface/web/tools/lib/module.conf.php index 617ab0b6cd6d354e96499bfecbf90b8700b86d0c..5911cdbebfe822898c5968bfe663bdb2746886d8 100644 --- a/interface/web/tools/lib/module.conf.php +++ b/interface/web/tools/lib/module.conf.php @@ -5,7 +5,7 @@ global $conf; $module['name'] = 'tools'; $module['title'] = 'top_menu_tools'; $module['template'] = 'module.tpl.htm'; -$module['startpage'] = 'tools/index.php'; +$module['startpage'] = 'tools/user_settings.php'; $module['tab_width'] = '60'; $module['order'] = '80'; @@ -13,7 +13,7 @@ $module['order'] = '80'; //**** Change User password $items = array(); -$items[] = array( 'title' => 'Password and Language', +$items[] = array( 'title' => 'User Settings', 'target' => 'content', 'link' => 'tools/user_settings.php', 'html_id' => 'user_settings'); @@ -24,23 +24,4 @@ $module['nav'][] = array( 'title' => 'User Settings', 'items' => $items); unset($items); - -//**** Change interface settings + load settings page of the activated theme -$items = array(); - -$items[] = array( 'title' => 'Interface', - 'target' => 'content', - 'link' => 'tools/interface_settings.php', - 'html_id' => 'interface_settings'); - -if(file_exists(ISPC_WEB_PATH.'/tools/lib/interface.d/tpl_' . $_SESSION['s']['user']['app_theme'] . '.menu.php')) include_once ISPC_WEB_PATH.'/tools/lib/interface.d/tpl_' . $_SESSION['s']['user']['app_theme'] . '.menu.php'; - -$module['nav'][] = array( 'title' => 'Interface', - 'open' => 1, - 'items' => $items); - -unset($items); - - - ?> diff --git a/interface/web/tools/templates/dns_import_tupa.htm b/interface/web/tools/templates/dns_import_tupa.htm index cd47f431e017f967aa316fce7fbe75d528cdcb65..4593fbb8002e71ca47c63ae50fce1a9afcb89191 100644 --- a/interface/web/tools/templates/dns_import_tupa.htm +++ b/interface/web/tools/templates/dns_import_tupa.htm @@ -2,7 +2,6 @@ <p><tmpl_var name="list_desc_txt"></p> - <legend>PowerDNS Tupa import</legend> <div class="form-group"> <label class="col-sm-3 control-label" for="dbhost">Tupa database hostname</label> <div class="col-sm-9"><input class="form-control" type="text" id="dbhost" value="{tmpl_var name='dbhost'}" name="dbhost" /></div> diff --git a/interface/web/tools/templates/import_ispconfig.htm b/interface/web/tools/templates/import_ispconfig.htm index 1d63df2a6d2152e9f365f01b13b858dfd6459b3f..9d845701f6dc403dd60725a9d2554f609b319fa2 100644 --- a/interface/web/tools/templates/import_ispconfig.htm +++ b/interface/web/tools/templates/import_ispconfig.htm @@ -36,6 +36,12 @@ {tmpl_var name='client_group_id'} </select></div> </div> + <div class="form-group"> + <label for="local_server_id" class="col-sm-3 control-label">{tmpl_var name='local_server_txt'}</label> + <div class="col-sm-9"><select name="local_server_id" id="local_server_id" class="form-control"> + {tmpl_var name='local_server_id'} + </select></div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name="import_mailbox_txt"}</label> <div class="col-sm-9"><input class="form-control" type="checkbox" id="import_mailbox" value="1" name="import_mailbox" checked="checked" /></div> diff --git a/interface/web/tools/templates/interface_settings.htm b/interface/web/tools/templates/interface_settings.htm deleted file mode 100644 index ccd500044521a6e29e5e093811fdaaa081b3f0bb..0000000000000000000000000000000000000000 --- a/interface/web/tools/templates/interface_settings.htm +++ /dev/null @@ -1,29 +0,0 @@ -<div class='page-header'> - <h1><tmpl_var name="page_head_txt"></h1> -</div> -<p><tmpl_var name="page_desc_txt"></p> - - - - <!-- TODO: If user theme change is activated --> - <div class="form-group"> - <label for="app_theme" class="col-sm-3 control-label">{tmpl_var name='app_theme_txt'}</label> - <div class="col-sm-9"><select name="app_theme" id="app_theme" class="form-control"> - {tmpl_var name='app_theme'} - </select></div> - </div> - <!-- TODO: Limit to activated modules --> - <div class="form-group"> - <label for="startmodule" class="col-sm-3 control-label">{tmpl_var name='startmodule_txt'}</label> - <div class="col-sm-9"><select name="startmodule" id="startmodule" class="form-control"> - {tmpl_var name='startmodule'} - </select></div> - </div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/interface_settings.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file diff --git a/interface/web/tools/templates/resync.htm b/interface/web/tools/templates/resync.htm index 3e66290fb0fd46e2117a7550bf0d0a12e18d76cd..ef3ac886c8b49c46487d7137c9d430b9745e9bec 100644 --- a/interface/web/tools/templates/resync.htm +++ b/interface/web/tools/templates/resync.htm @@ -1,8 +1,3 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - <div class="form-group"> <label for="resync_all" class="col-sm-2 control-label">{tmpl_var name='resync_all_txt'}</label> <div class="col-sm-1"><input type="checkbox" id="resync_all" value="1" name="resync_all"></div> diff --git a/interface/web/tools/templates/user_settings.htm b/interface/web/tools/templates/user_settings.htm index 26f9e0c861602e55c3e1d099aed496a747a6c658..a620f419c54d58ed5ad4e3b044c8410b10d46160 100644 --- a/interface/web/tools/templates/user_settings.htm +++ b/interface/web/tools/templates/user_settings.htm @@ -1,46 +1,58 @@ -<div class='page-header'> - <h1><tmpl_var name="list_head_txt"></h1> -</div> -<p><tmpl_var name="list_desc_txt"></p> - - <div class="form-group"> - <label for="passwort" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label> - <div class="col-sm-9"> - <div class="input-group"> - <input type="password" name="passwort" id="passwort" value="{tmpl_var name='passwort'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('passwort','repeat_password');" /> - <span class="input-group-btn"> - <button class="btn btn-default" type="button" onclick="generatePassword('passwort','repeat_password');">{tmpl_var name='generate_password_txt'}</button> - </span> - </div> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> - <div class="col-sm-9 checkbox"> - <div id="passBar"></div> - <span id="passText"> </span> - </div> - </div> - <div class="form-group"> - <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label> - <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('passwort','repeat_password');" /></div></div> - <div class="form-group"> - <div class="col-sm-offset-3 col-sm-9"> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - </div> - </div> - <div class="form-group"> - <label for="language" class="col-sm-3 control-label">{tmpl_var name='language_txt'}</label> - <div class="col-sm-9"><select name="language" id="language" class="form-control flags"> - {tmpl_var name='language'} - </select></div> - </div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/user_settings.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file +<div class="form-group"> + <label for="passwort" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label> + <div class="col-sm-9"> + <div class="input-group"> + <input type="password" name="passwort" id="passwort" value="{tmpl_var name='passwort'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('passwort','repeat_password');" /> + <span class="input-group-btn"> + <button class="btn btn-default" type="button" onclick="generatePassword('passwort','repeat_password');">{tmpl_var name='generate_password_txt'}</button> + </span> + </div> + </div> +</div> +<div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> + <div class="col-sm-9 checkbox"> + <div id="passBar"></div> + <span id="passText"> </span> + </div> +</div> +<div class="form-group"> + <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label> + <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('passwort','repeat_password');" /></div> +</div> +<div class="form-group"> + <div class="col-sm-offset-3 col-sm-9"> + <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> + <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> + </div> +</div> +<div class="form-group"> + <label for="language" class="col-sm-3 control-label">{tmpl_var name='language_txt'}</label> + <div class="col-sm-9"><select name="language" id="language" class="form-control flags"> + {tmpl_var name='language'} + </select> + </div> +</div> +<!-- TODO: If user theme change is activated --> +<div class="form-group"> + <label for="app_theme" class="col-sm-3 control-label">{tmpl_var name='app_theme_txt'}</label> + <div class="col-sm-9"><select name="app_theme" id="app_theme" class="form-control"> + {tmpl_var name='app_theme'} + </select> + </div> +</div> +<!-- TODO: Limit to activated modules --> +<div class="form-group"> + <label for="startmodule" class="col-sm-3 control-label">{tmpl_var name='startmodule_txt'}</label> + <div class="col-sm-9"><select name="startmodule" id="startmodule" class="form-control"> + {tmpl_var name='startmodule'} + </select> + </div> +</div> +<input type="hidden" name="id" value="{tmpl_var name='id'}"> +<div class="clear"> + <div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/user_settings.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button> + </div> +</div> diff --git a/interface/web/tools/user_settings.php b/interface/web/tools/user_settings.php index 5c3876fb864d8036338dda594437adcf0208d765..03c0b6a7e2ce23cd7ea9a24d7d8396d2f6aa4d5d 100644 --- a/interface/web/tools/user_settings.php +++ b/interface/web/tools/user_settings.php @@ -86,22 +86,50 @@ class page_action extends tform_actions { if($_POST['passwort'] != $_POST['repeat_password']) { $app->tform->errorMessage = $app->tform->lng('password_mismatch'); } - + $language = $app->functions->check_language($_POST['language']); $_SESSION['s']['user']['language'] = $language; $_SESSION['s']['language'] = $language; } - + function onAfterUpdate() { global $app; - + if($_POST['passwort'] != '') { $tmp_user = $app->db->queryOneRecord("SELECT passwort FROM sys_user WHERE userid = ?", $_SESSION['s']['user']['userid']); $_SESSION['s']['user']['passwort'] = $tmp_user['passwort']; unset($tmp_user); } + $this->updateSessionTheme(); + + if($this->_theme_changed == true) { + // not the best way, but it works + header('Content-Type: text/html'); + print '<script type="text/javascript">document.location.reload();</script>'; + exit; + } } + var $_theme_changed = false; + function updateSessionTheme() { + global $app, $conf; + + if($this->dataRecord['app_theme'] != 'default') { + $tmp_path = ISPC_THEMES_PATH."/".$this->dataRecord['app_theme']; + if(!@is_dir($tmp_path) || (@file_exists($tmp_path."/ispconfig_version") && trim(file_get_contents($tmp_path."/ispconfig_version")) != ISPC_APP_VERSION)) { + // fall back to default theme if this one is not compatible with current ispc version + $this->dataRecord['app_theme'] = 'default'; + } + } + if($this->dataRecord['app_theme'] != $_SESSION['s']['user']['theme']) $this->_theme_changed = true; + $_SESSION['s']['theme'] = $this->dataRecord['app_theme']; + $_SESSION['s']['user']['theme'] = $_SESSION['s']['theme']; + $_SESSION['s']['user']['app_theme'] = $_SESSION['s']['theme']; + } + + function onAfterInsert() { + $this->onAfterUpdate(); + } } diff --git a/interface/web/vm/lib/lang/br.lng b/interface/web/vm/lib/lang/br.lng index 513a018bf515ddded5fc5a8cd55310f95c4c7101..ae59107a783fe8f9bdff7304df509f224efe62b3 100644 --- a/interface/web/vm/lib/lang/br.lng +++ b/interface/web/vm/lib/lang/br.lng @@ -1,7 +1,7 @@ <?php -$wb['Virtual Servers'] = 'Servidores virtuais'; -$wb['OS Templates'] = 'Gabaritos do SO'; -$wb['VM Templates'] = 'Gabaritos de máquina virtual'; +$wb['Virtual Servers'] = 'Máquinas virtuais'; +$wb['OS Templates'] = 'Gabaritos de SO'; +$wb['VM Templates'] = 'Gabaritos de VM'; $wb['IP addresses'] = 'Endereço IP'; $wb['OpenVZ'] = 'OpenVZ'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_action.lng b/interface/web/vm/lib/lang/br_openvz_action.lng index a301f51d0ed92567fe5fbf18626d95ba1f1b5e05..cc191c14e9634d996a33b0f34ae4143266fa0b10 100644 --- a/interface/web/vm/lib/lang/br_openvz_action.lng +++ b/interface/web/vm/lib/lang/br_openvz_action.lng @@ -1,16 +1,16 @@ <?php -$wb['head_txt'] = 'Ações do servidor virtual para máquinas virtuais:'; +$wb['head_txt'] = 'Ações do virtualizador:'; $wb['start_txt'] = 'Iniciar máquina virtual'; $wb['stop_txt'] = 'Parar máquina virtual'; $wb['restart_txt'] = 'Reiniciar máquina virtual'; -$wb['ostemplate_txt'] = 'Adicionar gabarito de SO'; -$wb['ostemplate_desc_txt'] = '(exemplo: debian-6.0-i386-custom)'; +$wb['ostemplate_txt'] = 'Adicionar gabarito de sistema operacional'; +$wb['ostemplate_desc_txt'] = '(exemplo: debian-9.0-amd64-custom)'; $wb['btn_save_txt'] = 'Executar ação selecionada'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['start_exec_txt'] = 'O comando -iniciar- foi enviado ao servidor servidor de máquinas virtuais. Espere alguns minutos até que a máquina virtual seja iniciada.'; -$wb['stop_exec_txt'] = 'O comando -parar- foi enviado ao servidor servidor de máquinas virtuais. Espere alguns minutos até que a máquina virtual pare.'; -$wb['restart_exec_txt'] = 'O comando -reiniciar- foi enviado ao servidor servidor de máquinas virtuais. Espere alguns minutos até que a máquina virtual seja reiniciada.'; -$wb['ostemplate_name_error'] = 'O gabarito de SO contém caracteres não permitidos.'; -$wb['ostemplate_name_unique_error'] = 'Já existe um gabarito de SO com este nome.'; -$wb['ostemplate_exec_txt'] = 'O comando -criar máquina virtual- foi enviado ao servidor servidor de máquinas virtuais. Espere alguns minutos até que a máquina virtual seja criada.'; +$wb['start_exec_txt'] = 'O comando "Iniciar" foi enviado para o virtualizador. Aguarde alguns instantes para a máquina virtual carregar.'; +$wb['stop_exec_txt'] = 'O comando "Parar" foi enviado para o virtualizador. Aguarde alguns instantes para a máquina virtual parar.'; +$wb['restart_exec_txt'] = 'O comando "Reiniciar" foi enviando para o virtualizador. Aguarde alguns instantes para a máquina virtual reiniciar.'; +$wb['ostemplate_name_error'] = 'O gabarito de sistema operacional contém caracteres não permitidos.'; +$wb['ostemplate_name_unique_error'] = 'Já existe um gabarito de sistema operacional com o mesmo nome.'; +$wb['ostemplate_exec_txt'] = 'O comando "Adicionar gabarito de SO" foi enviado para o virtualizador. Aguarde alguns instantes para o gabarito ser adicionado.'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_ip.lng b/interface/web/vm/lib/lang/br_openvz_ip.lng index 61fbd6ed6839aa1a1e15523b025063b2cdecb1be..612c391c9464ee05323833e73f333f72953eebd4 100644 --- a/interface/web/vm/lib/lang/br_openvz_ip.lng +++ b/interface/web/vm/lib/lang/br_openvz_ip.lng @@ -1,8 +1,8 @@ <?php -$wb['server_id_txt'] = 'Servidor servidor'; +$wb['server_id_txt'] = 'Virtualizador'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['vm_id_txt'] = 'Servidor virtual'; -$wb['reserved_txt'] = 'Reservedo'; +$wb['vm_id_txt'] = 'Máquina virtual'; +$wb['reserved_txt'] = 'Reservado'; $wb['ip_error_wrong'] = 'Por favor, insira um endereço IPv4 válido.'; $wb['ip_error_unique'] = 'O endereço IP já existe.'; $wb['IP address'] = 'Endereço IP'; diff --git a/interface/web/vm/lib/lang/br_openvz_ip_list.lng b/interface/web/vm/lib/lang/br_openvz_ip_list.lng index 99ddfbc7d88fefb63a0901c21c58c1d632eebfeb..f9a9f33622ed31f6e9f63228b7a3787b48c33acc 100644 --- a/interface/web/vm/lib/lang/br_openvz_ip_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_ip_list.lng @@ -1,7 +1,7 @@ <?php $wb['list_head_txt'] = 'Endereço IP do OpenVZ'; $wb['server_id_txt'] = 'Servidor'; +$wb['vm_id_txt'] = 'VM'; $wb['ip_address_txt'] = 'Endereço IP'; $wb['reserved_txt'] = 'Reservado'; -$wb['vm_id_txt'] = 'VPS'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_ostemplate.lng b/interface/web/vm/lib/lang/br_openvz_ostemplate.lng index edce912056486708dfafd3b167fe2c53757f24e9..ea76c915b77a781f355be540b138f682ceef6f17 100644 --- a/interface/web/vm/lib/lang/br_openvz_ostemplate.lng +++ b/interface/web/vm/lib/lang/br_openvz_ostemplate.lng @@ -1,11 +1,11 @@ <?php $wb['template_name_txt'] = 'Nome do gabarito'; -$wb['template_file_txt'] = 'Arquivo do gabarito'; -$wb['server_id_txt'] = 'Servidor'; +$wb['template_file_txt'] = 'Nome do arquivo'; +$wb['server_id_txt'] = 'Virtualizador'; $wb['allservers_txt'] = 'DisponÃvel em todos os servidores'; $wb['active_txt'] = 'Ativo'; $wb['description_txt'] = 'Descrição'; $wb['template_name_error_empty'] = 'Nome do gabarito está em branco.'; -$wb['template_file_error_empty'] = 'Nome o arquivo do gabarito está em branco.'; +$wb['template_file_error_empty'] = 'Nome do arquivo está em branco.'; $wb['Template'] = 'Gabarito'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng index 04e94a889d079ae3d2851c81f32bb43ad2000030..9e60baf179a43c41df5da422d115c173684ace64 100644 --- a/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Gabarito do SO openVZ'; +$wb['list_head_txt'] = 'Gabarito de sistema operacional'; $wb['active_txt'] = 'Ativo'; -$wb['template_name_txt'] = 'Nome'; -$wb['server_id_txt'] = 'Servidor'; +$wb['template_name_txt'] = 'Nome do gabarito'; +$wb['server_id_txt'] = 'Virtualizador'; $wb['allservers_txt'] = 'DisponÃvel em todos os servidores'; $wb['ostemplate_id_txt'] = 'ID'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_template.lng b/interface/web/vm/lib/lang/br_openvz_template.lng index 4190a31f9cd16067c6d529837e11c11f82fc823d..23d4c9b6afa626d66a4aed0f5d239196e350ac98 100644 --- a/interface/web/vm/lib/lang/br_openvz_template.lng +++ b/interface/web/vm/lib/lang/br_openvz_template.lng @@ -1,97 +1,97 @@ <?php -$wb['numproc_txt'] = 'Nº de Processadores'; -$wb['numtcpsock_txt'] = 'Nº de soquetes TCP'; -$wb['numothersock_txt'] = 'Nº de outros soquetes'; -$wb['vmguarpages_txt'] = 'Páginas de guarda'; -$wb['kmemsize_txt'] = 'Kmemsize'; -$wb['tcpsndbuf_txt'] = 'Tcpsndbuf'; -$wb['tcprcvbuf_txt'] = 'Tcprcvbuf'; -$wb['othersockbuf_txt'] = 'Othersockbuf'; -$wb['dgramrcvbuf_txt'] = 'Dgramrcvbuf'; -$wb['oomguarpages_txt'] = 'Oomguarpages'; -$wb['privvmpages_txt'] = 'Privvmpages'; -$wb['lockedpages_txt'] = 'Lockedpages'; -$wb['shmpages_txt'] = 'Shmpages'; -$wb['physpages_txt'] = 'Physpages'; -$wb['numfile_txt'] = 'Numfile'; -$wb['avnumproc_txt'] = 'Avnumproc'; -$wb['numflock_txt'] = 'Numflock'; -$wb['numpty_txt'] = 'Numpty'; -$wb['numsiginfo_txt'] = 'Numsiginfo'; -$wb['dcachesize_txt'] = 'Dcachesize'; -$wb['numiptent_txt'] = 'Numiptent'; -$wb['swappages_txt'] = 'Swappages'; -$wb['hostname_txt'] = 'Nome do servidor'; -$wb['nameserver_txt'] = 'Servidor(es) de nome'; -$wb['nameserver_desc_txt'] = '(separado por espaços em branco)'; +$wb['numproc_txt'] = 'Número de Processadores'; +$wb['numtcpsock_txt'] = 'Número de sockets tcp'; +$wb['numothersock_txt'] = '(numothersock)'; +$wb['vmguarpages_txt'] = 'Páginas de guarda da vm (vmguardpages)'; +$wb['kmemsize_txt'] = 'Tamanho da memória (Kmemsize)'; +$wb['tcpsndbuf_txt'] = 'Buffers tcp de envio (tcpsndbuf)'; +$wb['tcprcvbuf_txt'] = 'Buffers tcp de recepção (tcprcvbuf)'; +$wb['othersockbuf_txt'] = 'Outros buffers (othersockbuf)'; +$wb['dgramrcvbuf_txt'] = 'Buffers datagrama de envio (dgramrcvbuf)'; +$wb['oomguarpages_txt'] = '(oomguarpages)'; +$wb['privvmpages_txt'] = 'Tamanho da memória alocada para aplicações, em páginas (privvmpages)'; +$wb['lockedpages_txt'] = 'Páginas bloqueadas (lockedpages)'; +$wb['shmpages_txt'] = '(Shmpages)'; +$wb['physpages_txt'] = '(Physpages)'; +$wb['numfile_txt'] = 'Número de arquivos'; +$wb['avnumproc_txt'] = 'Média de processadores'; +$wb['numflock_txt'] = 'Número de arquivos bloqueados (numflock)'; +$wb['numpty_txt'] = 'Número de PTY (numpty)'; +$wb['numsiginfo_txt'] = 'Número de siginfo (informações de geração de sinal)'; +$wb['dcachesize_txt'] = 'Tamanho do cache (dcachesize)'; +$wb['numiptent_txt'] = 'Número de endereços IP (numiptent)'; +$wb['swappages_txt'] = 'Páginas de troca (swappages)'; +$wb['hostname_txt'] = 'Nome do host'; +$wb['nameserver_txt'] = 'Servidor(es) dns'; +$wb['nameserver_desc_txt'] = '(separado por espaço)'; $wb['capability_txt'] = 'Capacidade'; $wb['template_name_txt'] = 'Nome do gabarito'; -$wb['diskspace_txt'] = 'Espaço em disco'; +$wb['diskspace_txt'] = 'Espaço do disco'; $wb['ram_txt'] = 'RAM (garantida)'; $wb['ram_burst_txt'] = 'RAM (rajada)'; -$wb['cpu_units_txt'] = 'Unidades de CPU'; -$wb['cpu_num_txt'] = 'Cores de CPU'; -$wb['cpu_limit_txt'] = 'Limite de CPU %'; +$wb['cpu_units_txt'] = 'Número de cores da CPU'; +$wb['cpu_num_txt'] = 'Número de CPUs'; +$wb['cpu_limit_txt'] = 'Limite da CPU %'; $wb['io_priority_txt'] = 'Prioridade de E/S'; $wb['active_txt'] = 'Ativo'; $wb['description_txt'] = 'Descrição'; -$wb['numproc_desc_txt'] = 'Número de processos e tarefas.'; -$wb['numtcpsock_desc_txt'] = 'Número de soquetes TCP.'; -$wb['numothersock_desc_txt'] = 'Número de soquetes não TCP.'; -$wb['vmguarpages_desc_txt'] = 'Alocação de memória garantida, em páginas.'; -$wb['kmemsize_desc_txt'] = 'Tamanho da memória sem swap no kernel, alocada para processos neste contêiner.'; -$wb['tcpsndbuf_desc_txt'] = 'Tamanho total de buffers TCP enviados.'; -$wb['tcprcvbuf_desc_txt'] = 'Tamanho total de buffers TCP recebidos.'; -$wb['othersockbuf_desc_txt'] = 'Tamanho total de soquetes de UNIX-domain UDP e outros protocolos de datagrama que enviam buffers..'; -$wb['dgramrcvbuf_desc_txt'] = 'Receber buffers de UDP e outros protocolos de datagrama.'; -$wb['oomguarpages_desc_txt'] = 'A garantia de memória para o caso de rajadas é superior à reserva (out-of-memory), em páginas.'; +$wb['numproc_desc_txt'] = 'Número de processos e threads.'; +$wb['numtcpsock_desc_txt'] = 'Número de sockets tcp.'; +$wb['numothersock_desc_txt'] = 'Número de outros sockets.'; +$wb['vmguarpages_desc_txt'] = 'Garantia de alocação de memória, em páginas.'; +$wb['kmemsize_desc_txt'] = 'Tamanho da memória do kernel não cambiável, alocada para processos neste contêiner.'; +$wb['tcpsndbuf_desc_txt'] = 'Tamanho de buffers de envio tcp.'; +$wb['tcprcvbuf_desc_txt'] = 'Tamanho de buffers de recepção tcp.'; +$wb['othersockbuf_desc_txt'] = 'Tamanho de buffers de socket de domÃnio unix, udp e outros buffers de envio de protocolos de datagrama.'; +$wb['dgramrcvbuf_desc_txt'] = 'Tamanho de buffers de recepção udp e outros protocolos de datagrama.'; +$wb['oomguarpages_desc_txt'] = 'Quantidade garantida de memória para o caso da memória estar "com excesso de reserva" (garantia de eliminação de falta de memória), em páginas.'; $wb['privvmpages_desc_txt'] = 'Limite de alocação de memória, em páginas.'; -$wb['lockedpages_desc_txt'] = 'Páginas de processo não tem permissão para troca (páginas bloqueadas por mlock(2)).'; -$wb['shmpages_desc_txt'] = 'Tamanho total da memória compartilhada (IPC, mapeamentos anônimos compartilhados e objetos tmpfs), em páginas.'; -$wb['physpages_desc_txt'] = 'Número total de páginas de RAM, usada pelos processos.'; +$wb['lockedpages_desc_txt'] = 'Páginas de processos que não podem ser trocadas (páginas bloqueadas por mlock(2)).'; +$wb['shmpages_desc_txt'] = 'Tamanho da memória compartilhada (ISPC, mapeamentos anônimos compartilhados e objetos tmpfs), em páginas.'; +$wb['physpages_desc_txt'] = 'Número total de páginas RAM usadas pelos processos'; $wb['numfile_desc_txt'] = 'Número de arquivos abertos.'; $wb['numflock_desc_txt'] = 'Número de arquivos bloqueados.'; -$wb['numpty_desc_txt'] = 'Número de pseudo terminais.'; -$wb['numsiginfo_desc_txt'] = 'Número de estruturas de siginfo.'; -$wb['dcachesize_desc_txt'] = 'Tamanho total de dentry e estruturas inode bloqueados na memória.'; -$wb['numiptent_desc_txt'] = 'Número de entradas no firewall (Filtros de pacotes IP).'; -$wb['swappages_desc_txt'] = 'Quantidade de área de troca a ser exibida no container.'; -$wb['create_dns_txt'] = 'Adicionar dns para servidor'; -$wb['template_name_error_empty'] = 'Nome do gabarito está em branco.'; -$wb['diskspace_error_empty'] = 'Espaço do disco está em branco.'; +$wb['numpty_desc_txt'] = 'Número de pseudo-terminais (tty).'; +$wb['numsiginfo_desc_txt'] = 'Número de estruturas siginfo.'; +$wb['dcachesize_desc_txt'] = 'Tamanho de estruturas dentry e inode bloqueadas na memória.'; +$wb['numiptent_desc_txt'] = 'Número total de entradas NETFILTER (filtragem de pacotes IP).'; +$wb['swappages_desc_txt'] = 'Quantidade de espaço de troca a ser exibido no contêiner.'; +$wb['create_dns_txt'] = 'Adicionar dns para o nome do host'; +$wb['template_name_error_empty'] = 'O nome do gabarito está em branco.'; +$wb['diskspace_error_empty'] = 'O tamanho do disco está em branco.'; $wb['ram_error_empty'] = 'RAM (garantida) está em branco.'; $wb['ram_burst_error_empty'] = 'RAM (rajada) está em branco.'; -$wb['cpu_units_error_empty'] = 'Unidades de CPU está em branco.'; -$wb['cpu_num_error_empty'] = 'Cores de CPU está em branco.'; -$wb['cpu_limit_error_empty'] = 'CPU limit % está em branco.'; +$wb['cpu_units_error_empty'] = 'Número de cores da CPU está em branco.'; +$wb['cpu_num_error_empty'] = 'Número de CPU está em branco.'; +$wb['cpu_limit_error_empty'] = 'Limite da CPU está em branco.'; $wb['io_priority_error_empty'] = 'Prioridade de E/S está em branco.'; -$wb['template_nameserver_error_empty'] = 'Servidor(es) de nome está em branco.'; -$wb['numproc_error_empty'] = 'N° de processadores está em branco.'; -$wb['numtcpsock_error_empty'] = 'N° de soquetes TCP está em branco.'; -$wb['numothersock_error_empty'] = 'N° de outros soquetes está em branco.'; -$wb['vmguarpages_error_empty'] = 'Páginas de guarda está em branco.'; +$wb['template_nameserver_error_empty'] = 'Servidor(es) dns está em branco.'; +$wb['numproc_error_empty'] = 'Número de processadores está em branco.'; +$wb['numtcpsock_error_empty'] = 'Número de sockets tcp está em branco.'; +$wb['numothersock_error_empty'] = 'Número de outros sockets está em branco.'; +$wb['vmguarpages_error_empty'] = 'Página de guarda da vm está em branco.'; $wb['kmemsize_error_empty'] = 'Kmemsize está em branco.'; -$wb['tcpsndbuf_error_empty'] = 'Tcpsndbuf está em branco.'; -$wb['tcprcvbuf_error_empty'] = 'Tcprcvbuf está em branco.'; -$wb['othersockbuf_error_empty'] = 'Othersockbuf está em branco.'; -$wb['dgramrcvbuf_error_empty'] = 'Dgramrcvbuf está em branco.'; +$wb['tcpsndbuf_error_empty'] = 'Tamanho de buffers de envio tcp está em branco.'; +$wb['tcprcvbuf_error_empty'] = 'Tamanho de buffers de recepção está em branco.'; +$wb['othersockbuf_error_empty'] = 'Tamanho de outros buffers de socket está em branco.'; +$wb['dgramrcvbuf_error_empty'] = 'Tamanho de buffers de recepção udp e outros protocolos de datagrama está em branco.'; $wb['oomguarpages_error_empty'] = 'Oomguarpages está em branco.'; -$wb['privvmpages_error_empty'] = 'Privvmpages está em branco.'; +$wb['privvmpages_error_empty'] = 'Tamanho da memória alocada para aplicações, em páginas, está em branco.'; $wb['lockedpages_error_empty'] = 'Lockedpages está em branco.'; $wb['shmpages_error_empty'] = 'Shmpages está em branco.'; $wb['physpages_error_empty'] = 'Physpages está em branco.'; -$wb['numfile_error_empty'] = 'Numfile está em branco.'; -$wb['avnumproc_error_empty'] = 'Avnumproc está em branco.'; -$wb['numflock_error_empty'] = 'Numflock está em branco.'; -$wb['numpty_error_empty'] = 'Numpty está em branco.'; -$wb['numsiginfo_error_empty'] = 'Numsiginfo está em branco.'; -$wb['dcachesize_error_empty'] = 'Dcachesize está em branco.'; -$wb['numiptent_error_empty'] = 'Numiptent está em branco.'; -$wb['swappages_error_empty'] = 'Swappages está em branco.'; +$wb['numfile_error_empty'] = 'Número de arquivos está em branco.'; +$wb['avnumproc_error_empty'] = 'Média de processadores está em branco.'; +$wb['numflock_error_empty'] = 'Número de arquivos bloqueados está em branco.'; +$wb['numpty_error_empty'] = 'Número de pseudo-terminais está em branco.'; +$wb['numsiginfo_error_empty'] = 'Número de informações siginfo está em branco.'; +$wb['dcachesize_error_empty'] = 'Tamanho do cache está em branco.'; +$wb['numiptent_error_empty'] = 'Número de entradas NETFILTER está em branco.'; +$wb['swappages_error_empty'] = 'Páginas de troca está em branco.'; $wb['Template'] = 'Gabarito'; $wb['Advanced'] = 'Avançado'; $wb['features_txt'] = 'Recursos'; -$wb['iptables_txt'] = 'Firewall'; +$wb['iptables_txt'] = 'Firewall (iptables)'; $wb['custom_txt'] = 'Configurações personalizadas'; -$wb['custom_error'] = 'Não permitido em configurações personalizadas: '; +$wb['custom_error'] = 'Não permitido nas configurações personalizadas: '; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_template_list.lng b/interface/web/vm/lib/lang/br_openvz_template_list.lng index 390869859ac1bb8ddabb9017d234439cdb3606d5..00d1b648d8285b43e044a62069358479c8a67732 100644 --- a/interface/web/vm/lib/lang/br_openvz_template_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_template_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Gabarito de máquina virtual OpenVZ'; +$wb['list_head_txt'] = 'Gabarito de máquina virtual'; $wb['active_txt'] = 'Ativo'; -$wb['template_name_txt'] = 'Nome do Gabarito'; +$wb['template_name_txt'] = 'Nome do gabarito'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_vm.lng b/interface/web/vm/lib/lang/br_openvz_vm.lng index 04794daf86b2d3305ca3363c204af3f3dabd6f44..a8176e768815da9b533b731130d3277e8f920202 100644 --- a/interface/web/vm/lib/lang/br_openvz_vm.lng +++ b/interface/web/vm/lib/lang/br_openvz_vm.lng @@ -1,45 +1,46 @@ <?php -$wb['diskspace_txt'] = 'Espaço em disco'; +$wb['diskspace_txt'] = 'Espaço no disco'; $wb['ram_txt'] = 'RAM (garantida)'; $wb['ram_burst_txt'] = 'RAM (rajada)'; -$wb['cpu_units_txt'] = 'Unidades de CPU(s)'; -$wb['cpu_num_txt'] = 'Quantidade de CPU(s)'; -$wb['cpu_limit_txt'] = 'Limite de CPU(s)'; -$wb['io_priority_txt'] = 'Prioridade de E/S'; -$wb['nameserver_txt'] = 'Servidor(es) de nome'; -$wb['nameserver_desc_txt'] = '(separado por espaços em branco)'; +$wb['cpu_units_txt'] = 'Número de cores da CPU'; +$wb['cpu_num_txt'] = 'Número de CPU'; +$wb['cpu_limit_txt'] = 'Limite de CPU (%)'; +$wb['io_priority_txt'] = 'prioridade de E/S'; +$wb['nameserver_txt'] = 'Servidor(es) dns'; +$wb['nameserver_desc_txt'] = '(separados por espaço)'; $wb['capability_txt'] = 'Capacidade'; -$wb['server_id_txt'] = 'Servidor servidor'; -$wb['ostemplate_id_txt'] = 'Gabarito do SO'; +$wb['server_id_txt'] = 'Virtualizador'; +$wb['ostemplate_id_txt'] = 'Gabarito de sistema operacional'; $wb['template_id_txt'] = 'Gabarito'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['hostname_txt'] = 'Servidor'; +$wb['hostname_txt'] = 'Nome do host'; $wb['vm_password_txt'] = 'Senha da máquina virtual'; $wb['start_boot_txt'] = 'Iniciar no boot'; $wb['active_txt'] = 'Ativo'; $wb['description_txt'] = 'Descrição'; $wb['client_group_id_txt'] = 'Cliente'; $wb['veid_txt'] = 'VEID'; -$wb['create_dns_txt'] = 'Adicionar DNS para servidor'; +$wb['create_dns_txt'] = 'Adicionar dns para a máquina virtual'; $wb['active_until_date_txt'] = 'Ativo até a data'; $wb['ip_address_error_empty'] = 'Endereço IP está em branco.'; -$wb['hostname_error_empty'] = 'Nome do servidor está em branco.'; +$wb['hostname_error_empty'] = 'Nome do host está em branco.'; $wb['vm_password_error_empty'] = 'Senha da máquina virtual está em branco.'; $wb['veid_error_empty'] = 'VEID está em branco.'; -$wb['veid_error_unique'] = 'VEID não existe.'; -$wb['diskspace_error_empty'] = 'Espaço em disco está em branco.'; +$wb['veid_error_unique'] = 'VEID já existe.'; +$wb['diskspace_error_empty'] = 'Espaço do disco está em branco.'; $wb['ram_error_empty'] = 'RAM (garantida) está em branco.'; $wb['ram_burst_error_empty'] = 'RAM (rajada) está em branco.'; -$wb['cpu_units_error_empty'] = 'Unidade de CPU(s) está em branco.'; -$wb['cpu_num_error_empty'] = 'Quantidade de CPU(s) está em branco.'; -$wb['cpu_limit_error_empty'] = 'Limite de CPU(s) está em branco.'; +$wb['cpu_units_error_empty'] = 'Número de cores da CPU está em branco.'; +$wb['cpu_num_error_empty'] = 'Número de CPU está em branco.'; +$wb['cpu_limit_error_empty'] = 'Limite de CPU está em branco.'; $wb['io_priority_error_empty'] = 'Prioridade de E/S está em branco.'; -$wb['template_nameserver_error_empty'] = 'Servidor(es) de nome está em branco.'; -$wb['Virtual server'] = 'Servidor virtual'; +$wb['template_nameserver_error_empty'] = 'Servidor(es) dns está em branco.'; +$wb['Virtual server'] = 'Máquina Virtual'; $wb['Advanced'] = 'Avançado'; +$wb['Additional IP'] = 'Endereço IP adicional'; $wb['features_txt'] = 'Recursos'; $wb['iptables_txt'] = 'Firewall'; $wb['custom_txt'] = 'Configurações personalizadas'; -$wb['bootorder_txt'] = 'Prioridade do boot'; -$wb['bootorder_error_notpositive'] = 'Somente números positivos podem ser configurados na prioridade do boot.'; +$wb['bootorder_txt'] = 'Ordem da prioridade do boot'; +$wb['bootorder_error_notpositive'] = 'São permitidos apenas números inteiros, > 0, na ordem da prioridade do boot.'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_vm_list.lng b/interface/web/vm/lib/lang/br_openvz_vm_list.lng index 03d510f2f765743f1d9be45a3ba8df08952bf815..c907c710eaeed01b34d86a3c8dfaadd5c0abe039 100644 --- a/interface/web/vm/lib/lang/br_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_vm_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'Servidor virtual'; +$wb['list_head_txt'] = 'Máquina virtual'; $wb['active_txt'] = 'Ativo'; -$wb['server_id_txt'] = 'ID do servidor'; +$wb['server_id_txt'] = 'Virtualizador'; $wb['ostemplate_id_txt'] = 'Gabarito do SO'; $wb['template_id_txt'] = 'Gabarito'; -$wb['hostname_txt'] = 'Servidor'; +$wb['hostname_txt'] = 'Nome do host'; $wb['ip_address_txt'] = 'Endereço IP'; $wb['veid_txt'] = 'VEID'; ?> diff --git a/interface/web/vm/lib/lang/tr.lng b/interface/web/vm/lib/lang/tr.lng index 82599dd038568772d46f805c842d38d8c7223bc1..23bca66851d28da3d3ce0babc97ba969d08f3b9f 100644 --- a/interface/web/vm/lib/lang/tr.lng +++ b/interface/web/vm/lib/lang/tr.lng @@ -1,7 +1,7 @@ <?php -$wb['Virtual Servers'] = 'Sanal Sunucular'; -$wb['OS Templates'] = 'OS Kalıpları'; -$wb['VM Templates'] = 'VM Kalıpları'; +$wb['Virtual Servers'] = 'sSunucular'; +$wb['OS Templates'] = 'İşletim Sistemi Kalıpları'; +$wb['VM Templates'] = 'Sanal Makine Kalıpları'; $wb['IP addresses'] = 'IP Adresleri'; $wb['OpenVZ'] = 'OpenVZ'; ?> diff --git a/interface/web/vm/lib/lang/tr_openvz_action.lng b/interface/web/vm/lib/lang/tr_openvz_action.lng index 29759e0266fdabd3883e23f8a93792a0a6df7554..8e2a3652d2b31369cc849be6c0a61fd9a2bb9f10 100644 --- a/interface/web/vm/lib/lang/tr_openvz_action.lng +++ b/interface/web/vm/lib/lang/tr_openvz_action.lng @@ -1,16 +1,17 @@ <?php -$wb['head_txt'] = 'VM Sanal Sunucu İşlemleri:'; +$wb['head_txt'] = 'Sanal Makine Sanal Sunucu İşlemleri:'; $wb['start_txt'] = 'Sanal sunucuyu baÅŸlat'; $wb['stop_txt'] = 'Sanal sunucuyu durdur'; $wb['restart_txt'] = 'Sanal sunucuyu yeniden baÅŸlat'; -$wb['ostemplate_txt'] = 'OS Kalıbı OluÅŸtur'; +$wb['ostemplate_txt'] = 'İşletim Sistemi Kalıbı Ekle'; $wb['ostemplate_desc_txt'] = '(örnek: debian-6.0-i386-custom)'; $wb['btn_save_txt'] = 'SeçilmiÅŸ iÅŸlemi yürüt'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['start_exec_txt'] = 'VM sunucusuna baÅŸlatma komutu gönderildi. VM baÅŸlatılana kadar bir dakika geçebilir.'; -$wb['stop_exec_txt'] = 'VM sunucusuna durdurma komutu gönderildi. VM durdurulana kadar bir dakika geçebilir.'; -$wb['restart_exec_txt'] = 'VM sunucusuna yeniden baÅŸlatma komutu gönderildi. VM yeniden baÅŸlatılana kadar bir dakika geçebilir.'; -$wb['ostemplate_name_error'] = 'OS kalıbı adında izin verilmeyen karakterler var.'; +$wb['start_exec_txt'] = 'Sanal makine sunucusuna baÅŸlatma komutu gönderildi. Sanal makine baÅŸlatılana kadar bir dakika geçebilir.'; +$wb['stop_exec_txt'] = 'Sanal makine sunucusuna durdurma komutu gönderildi. Sanal makine durdurulana kadar bir dakika geçebilir.'; +$wb['restart_exec_txt'] = 'Sanal makine sunucusuna yeniden baÅŸlatma komutu gönderildi. Sanal makine yeniden baÅŸlatılana kadar bir dakika geçebilir.'; +$wb['ostemplate_name_error'] = 'İşletim sistemi kalıbı adında izin verilmeyen karakterler var.'; $wb['ostemplate_name_unique_error'] = 'Aynı adlı bir iÅŸletim sistemi kalıbı zaten var.'; -$wb['ostemplate_exec_txt'] = 'VM sunucusuna iÅŸletim sistemi kalıbı oluÅŸturma komutu gönderildi. İşletim sistemi kalıbının oluÅŸturulması bir kaç dakika alabilir.'; +$wb['ostemplate_exec_txt'] = 'Sanal makine sunucusuna iÅŸletim sistemi kalıbı oluÅŸturma komutu gönderildi. İşletim sistemi kalıbının oluÅŸturulması bir kaç dakika alabilir.'; + ?> diff --git a/interface/web/vm/lib/lang/tr_openvz_ip.lng b/interface/web/vm/lib/lang/tr_openvz_ip.lng index 637a70f2ea87b83d0bfb467860a3c8722f111ac3..e24b354bae0f6b192c1e8c81f119c46f7d3f4aa0 100644 --- a/interface/web/vm/lib/lang/tr_openvz_ip.lng +++ b/interface/web/vm/lib/lang/tr_openvz_ip.lng @@ -1,7 +1,7 @@ <?php $wb['server_id_txt'] = 'Sunucu'; $wb['ip_address_txt'] = 'IP Adresi'; -$wb['vm_id_txt'] = 'Sanal Sunucu'; +$wb['vm_id_txt'] = 'sSunucu'; $wb['reserved_txt'] = 'Ayrılmış'; $wb['ip_error_wrong'] = 'Lütfen geçerli bir IPv4 adresi yazın.'; $wb['ip_error_unique'] = 'Bu IP adresi zaten var.'; diff --git a/interface/web/vm/lib/lang/tr_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/tr_openvz_ostemplate_list.lng index bf5923aed17fe4dc744a7e9bd50877dfb3bbdbd3..3a4a10fdaa70cc85a13105b7f6e7537f216de461 100644 --- a/interface/web/vm/lib/lang/tr_openvz_ostemplate_list.lng +++ b/interface/web/vm/lib/lang/tr_openvz_ostemplate_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'OpenVZ OS Kalıbı'; +$wb['list_head_txt'] = 'OpenVZ İşletim Sistemi Kalıbı'; $wb['active_txt'] = 'Etkin'; $wb['template_name_txt'] = 'Kalıp Adı'; $wb['server_id_txt'] = 'Sunucu'; diff --git a/interface/web/vm/lib/lang/tr_openvz_template.lng b/interface/web/vm/lib/lang/tr_openvz_template.lng index fb1452e8853141d0135cf9607cc4a3b968bdfcc6..7768d0bae6947be224a3b1f282f9aa9b2941f87d 100644 --- a/interface/web/vm/lib/lang/tr_openvz_template.lng +++ b/interface/web/vm/lib/lang/tr_openvz_template.lng @@ -2,11 +2,11 @@ $wb['numproc_txt'] = 'İşlemci Sayısı'; $wb['numtcpsock_txt'] = 'TCP Soket Sayısı'; $wb['numothersock_txt'] = 'DiÄŸer Soket Sayısı'; -$wb['vmguarpages_txt'] = 'VM Koruma Sayfası'; +$wb['vmguarpages_txt'] = 'Sanal Makine Koruma Sayfası'; $wb['kmemsize_txt'] = 'Kmemsize'; -$wb['tcpsndbuf_txt'] = 'TCP Gönderme ArabelleÄŸi'; -$wb['tcprcvbuf_txt'] = 'TCP Alma ArabelleÄŸi'; -$wb['othersockbuf_txt'] = 'DiÄŸer Soket ArabelleÄŸi'; +$wb['tcpsndbuf_txt'] = 'TCP Gönderme Ara BelleÄŸi'; +$wb['tcprcvbuf_txt'] = 'TCP Alma Ara BelleÄŸi'; +$wb['othersockbuf_txt'] = 'DiÄŸer Soket Ara BelleÄŸi'; $wb['dgramrcvbuf_txt'] = 'Dgramrcvbuf'; $wb['oomguarpages_txt'] = 'Oomguarpages'; $wb['privvmpages_txt'] = 'Privvmpages'; @@ -40,11 +40,11 @@ $wb['numtcpsock_desc_txt'] = 'TCP soketi sayısı.'; $wb['numothersock_desc_txt'] = 'TCP olmayan soket sayısı.'; $wb['vmguarpages_desc_txt'] = 'Sayfa cinsinden garantili ayrılan bellek.'; $wb['kmemsize_desc_txt'] = 'Bu taşıyıcıdaki iÅŸlemler için takas edilemez kernel belleÄŸinin boyutu.'; -$wb['tcpsndbuf_desc_txt'] = 'TCP gönderme arabelleÄŸinin toplam boyutu.'; -$wb['tcprcvbuf_desc_txt'] = 'TCP alma arabelleÄŸinin toplam boyutu.'; -$wb['othersockbuf_desc_txt'] = 'UNIX alan adı soket arabelleÄŸinin toplam boyutu, UDP ve diÄŸer datagram iletiÅŸim kuralları gönderme ara bellekleri.'; +$wb['tcpsndbuf_desc_txt'] = 'TCP gönderme ara belleÄŸinin toplam boyutu.'; +$wb['tcprcvbuf_desc_txt'] = 'TCP alma ara belleÄŸinin toplam boyutu.'; +$wb['othersockbuf_desc_txt'] = 'UNIX etki alanı soket ara belleÄŸinin toplam boyutu, UDP ve diÄŸer datagram iletiÅŸim kuralları gönderme ara bellekleri.'; $wb['dgramrcvbuf_desc_txt'] = 'UDP ve diÄŸer datagram iletiÅŸim kuralları alma ara bellekleri.'; -$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taÅŸması durumlarında garanti edilen bellek miktarı\\" (bellek bitti boÅŸaltma garantisi).'; +$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, "bellek taÅŸması" durumlarında garanti edilen bellek miktarı (bellek bitti boÅŸaltma garantisi).'; $wb['privvmpages_desc_txt'] = 'Bellek sayfası cinsinden ayrılacak bellek sınırı.'; $wb['lockedpages_desc_txt'] = 'İşlem sayfaları takasına izin verilmez (mlock(2) ile kilitlenmiÅŸ sayfalar).'; $wb['shmpages_desc_txt'] = 'Bellek sayfası cinsinden, paylaşılan belleÄŸin toplam boyutu (IPC, paylaşılan anonim haritalama ve tmpfs nesneleri).'; @@ -90,8 +90,8 @@ $wb['numiptent_error_empty'] = 'Numiptent boÅŸ olamaz.'; $wb['swappages_error_empty'] = 'Swappages boÅŸ olamaz.'; $wb['Template'] = 'Kalıp'; $wb['Advanced'] = 'GeliÅŸmiÅŸ'; -$wb['features_txt'] = 'Features'; +$wb['features_txt'] = 'Özellikle'; $wb['iptables_txt'] = 'IP Tables'; -$wb['custom_txt'] = 'Custom settings'; -$wb['custom_error'] = 'Not allowed in Custom settings: '; +$wb['custom_txt'] = 'Özel Ayarlar'; +$wb['custom_error'] = 'Özel ayarlarda izin verilmiyor: '; ?> diff --git a/interface/web/vm/lib/lang/tr_openvz_vm.lng b/interface/web/vm/lib/lang/tr_openvz_vm.lng index fad86d9f3a29185664fa6c9bfe37ccff09f5742f..7c2977cda97c68283fd538d2914be50ca540f584 100644 --- a/interface/web/vm/lib/lang/tr_openvz_vm.lng +++ b/interface/web/vm/lib/lang/tr_openvz_vm.lng @@ -10,21 +10,21 @@ $wb['nameserver_txt'] = 'Ad Sunucuları'; $wb['nameserver_desc_txt'] = '(boÅŸluk ile ayırarak)'; $wb['capability_txt'] = 'Yeterlilik'; $wb['server_id_txt'] = 'Sunucu'; -$wb['ostemplate_id_txt'] = 'OS Kalıbı'; +$wb['ostemplate_id_txt'] = 'İşletim Sistemi Kalıbı'; $wb['template_id_txt'] = 'Kalıp'; $wb['ip_address_txt'] = 'IP Adresi'; $wb['hostname_txt'] = 'Sunucu Adı'; -$wb['vm_password_txt'] = 'VM Parolası'; -$wb['start_boot_txt'] = 'Açılışta baÅŸlat'; +$wb['vm_password_txt'] = 'Sanal Makine Parolası'; +$wb['start_boot_txt'] = 'Açılışta BaÅŸlatılsın'; $wb['active_txt'] = 'Etkin'; $wb['description_txt'] = 'Açıklama'; $wb['client_group_id_txt'] = 'Müşteri'; $wb['veid_txt'] = 'VEID'; $wb['create_dns_txt'] = 'Sunucu için DNS oluÅŸtur'; -$wb['active_until_date_txt'] = 'Åžu tarihe kadar etkin'; +$wb['active_until_date_txt'] = 'Åžu Tarihe Kadar Etkin'; $wb['ip_address_error_empty'] = 'IP adresi boÅŸ olamaz.'; $wb['hostname_error_empty'] = 'Sunucu adı boÅŸ olamaz.'; -$wb['vm_password_error_empty'] = 'VM parolası boÅŸ olamaz.'; +$wb['vm_password_error_empty'] = 'Sanal makine parolası boÅŸ olamaz.'; $wb['veid_error_empty'] = 'VEID boÅŸ olamaz.'; $wb['veid_error_unique'] = 'VEID zaten var.'; $wb['diskspace_error_empty'] = 'Disk alanı boÅŸ olamaz.'; @@ -35,11 +35,11 @@ $wb['cpu_num_error_empty'] = 'İşlemci sayısı boÅŸ olamaz.'; $wb['cpu_limit_error_empty'] = 'İşlemci sınırı boÅŸ olamaz.'; $wb['io_priority_error_empty'] = 'G/Ç önceliÄŸi boÅŸ olamaz.'; $wb['template_nameserver_error_empty'] = 'Ad sunucuları boÅŸ olamaz.'; -$wb['Virtual server'] = 'Sanal sunucu'; +$wb['Virtual server'] = 'sSunucu'; $wb['Advanced'] = 'GeliÅŸmiÅŸ'; -$wb['features_txt'] = 'Features'; +$wb['features_txt'] = 'Özellikler'; $wb['iptables_txt'] = 'IP Tables'; -$wb['custom_txt'] = 'Custom settings'; -$wb['bootorder_txt'] = 'Boot order priority'; -$wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority'; +$wb['custom_txt'] = 'Özel Ayarlar'; +$wb['bootorder_txt'] = 'BaÅŸlatma ÖnceliÄŸi'; +$wb['bootorder_error_notpositive'] = 'BaÅŸlatma önceliÄŸi deÄŸeri yalnız pozitif bir tamsayı olabilir'; ?> diff --git a/interface/web/vm/lib/lang/tr_openvz_vm_list.lng b/interface/web/vm/lib/lang/tr_openvz_vm_list.lng index 1a4ed0e7b93f99627887ec8d3e7ba746c79f01a0..e188f60464ead4e57ea647773ee87e767948d54b 100644 --- a/interface/web/vm/lib/lang/tr_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/tr_openvz_vm_list.lng @@ -1,8 +1,8 @@ <?php -$wb['list_head_txt'] = 'Sanal Sunucu'; +$wb['list_head_txt'] = 'sSunucu'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['ostemplate_id_txt'] = 'OS Kalıbı'; +$wb['ostemplate_id_txt'] = 'İşl. Sis. Kalıbı'; $wb['template_id_txt'] = 'Kalıp'; $wb['hostname_txt'] = 'Sunucu Adı'; $wb['ip_address_txt'] = 'IP Adresi'; diff --git a/interface/web/vm/templates/openvz_ip_list.htm b/interface/web/vm/templates/openvz_ip_list.htm index fd12694c37c07ece5cec1f3ce46501ba50b6fb85..ff98e2df5541848adb835e470302e443643b6680 100644 --- a/interface/web/vm/templates/openvz_ip_list.htm +++ b/interface/web/vm/templates/openvz_ip_list.htm @@ -39,7 +39,7 @@ <td><a href="#" data-load-content="vm/openvz_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ip_address"}</a></td> <td><a href="#" data-load-content="vm/openvz_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="reserved"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_ip_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_ip_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/vm/templates/openvz_ostemplate_list.htm b/interface/web/vm/templates/openvz_ostemplate_list.htm index 85f46e6732c8a5f8234e7199af8c0f567ef4aa08..d800686e1c0c9c5091fbebb52e439bf809a0fa6b 100644 --- a/interface/web/vm/templates/openvz_ostemplate_list.htm +++ b/interface/web/vm/templates/openvz_ostemplate_list.htm @@ -42,7 +42,7 @@ <td><a href="#" data-load-content="vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}">{tmpl_var name="allservers"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_ostemplate_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_ostemplate_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/vm/templates/openvz_template_list.htm b/interface/web/vm/templates/openvz_template_list.htm index 5ec0cb79139a5d0e80b3f61f92f17625e1ab5e52..2c204279013eee1abdb82954eeb1268426b37458 100644 --- a/interface/web/vm/templates/openvz_template_list.htm +++ b/interface/web/vm/templates/openvz_template_list.htm @@ -33,7 +33,7 @@ <td><a href="#" data-load-content="vm/openvz_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td> <td><a href="#" data-load-content="vm/openvz_template_edit.php?id={tmpl_var name='id'}">{tmpl_var name="template_name"}</a></td> <td class="text-right"> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_template_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/interface/web/vm/templates/openvz_vm_list.htm b/interface/web/vm/templates/openvz_vm_list.htm index 516b536bb39fb4077e22e25fb000f64b0a830749..ee4084f4d1e76706679421fec33048a5e6630d16 100644 --- a/interface/web/vm/templates/openvz_vm_list.htm +++ b/interface/web/vm/templates/openvz_vm_list.htm @@ -49,7 +49,7 @@ <td><a href="#" data-load-content="vm/openvz_vm_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ip_address"}</a></td> <td class="text-right"> <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="vm/openvz_action.php?id={tmpl_var name='id'}"><span class="icon icon-action"></span></a> - <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_vm_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('vm/openvz_vm_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a> </td> </tr> </tmpl_loop> diff --git a/remoting_client/API-docs/client_update.html b/remoting_client/API-docs/client_update.html index 80a689b5960a10d1e701a391169d16156c0365a2..9cbdcd2f332e1b606e3eb8ab5b861a9a0b25b0a3 100644 --- a/remoting_client/API-docs/client_update.html +++ b/remoting_client/API-docs/client_update.html @@ -74,6 +74,7 @@ <p class="margin"> parent_client_id (<span class="paratype">int(11)</span>)</p> <p class="margin"> username (<span class="paratype">varchar(64)</span>)</p> <p class="margin"> password (<span class="paratype">varchar(64)</span>)</p> +<p class="margin"> _ispconfig_pw_crypted (<span class="paratype">int(11)</span>) Set to 1 to indicate that the password is already crypted.</p> <p class="margin"> language (<span class="paratype">char(2)</span>)</p> <p class="margin"> usertheme (<span class="paratype">varchar(32)</span>)</p> <p class="margin"> template_master (<span class="paratype">int(11)</span>)</p> diff --git a/remoting_client/API-docs/dns_naptr_add.html b/remoting_client/API-docs/dns_naptr_add.html new file mode 100644 index 0000000000000000000000000000000000000000..d691d65b3a1c2569c73c198fbf8bef151b356be7 --- /dev/null +++ b/remoting_client/API-docs/dns_naptr_add.html @@ -0,0 +1,38 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>dns_naptr_add(<span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$params</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Adds a dns server location record if <em>type</em> is <em>naptr</em>.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$params</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> server_id (<span class="paratype">int(11)</span>)</p> +<p class="margin"> zone (<span class="paratype">int(11)</span>)</p> +<p class="margin"> name (<span class="paratype">varchar(64)</span>)</p> +<p class="margin"> type (<span class="paratype">enum('a','aaaa','alias','cname','hinfo','mx','naptr','ns','ptr','rp','srv','txt')</span>)</p> +<p class="margin"> data (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> aux (<span class="paratype">int(11)</span>)</p> +<p class="margin"> ttl (<span class="paratype">int(11)</span>)</p> +<p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> stamp (<span class="paratype">timestamp</span>)</p> +<p class="margin"> serial (<span class="paratype">int(10)</span>)</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns the ID of the newly added naptr resource record.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/dns_naptr_delete.html b/remoting_client/API-docs/dns_naptr_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..376bd18aa28592619b7664144c2b79d965dae80c --- /dev/null +++ b/remoting_client/API-docs/dns_naptr_delete.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>dns_naptr_delete(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Deletes target dns naptr resource record.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns the number of deleted records.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/dns_naptr_get.html b/remoting_client/API-docs/dns_naptr_get.html new file mode 100644 index 0000000000000000000000000000000000000000..eb3d6b0eda7691ab0b55c46b98ec667c3fcddc2b --- /dev/null +++ b/remoting_client/API-docs/dns_naptr_get.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>dns_naptr_get(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Retrieves information about target dns naptr resource record.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns all fields and values of the chosen dns naptr resource record.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/dns_naptr_update.html b/remoting_client/API-docs/dns_naptr_update.html new file mode 100644 index 0000000000000000000000000000000000000000..97f40f056f172d133b333e4e3e360f36cae5de49 --- /dev/null +++ b/remoting_client/API-docs/dns_naptr_update.html @@ -0,0 +1,38 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>dns_naptr_update(<span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1> +<br> +<b>Description: </b> +<p class="margin"> Updates a dns server location record if <em>type</em> is <em>naptr</em>.</p><br> +<b>Input Variables: </b> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span></p> +<b>Parameters (in <span style= "color:#A17FFF">$params</span>): </b> +<p class="margin"> server_id (<span class="paratype">int(11)</span>)</p> +<p class="margin"> zone (<span class="paratype">int(11)</span>)</p> +<p class="margin"> name (<span class="paratype">varchar(64)</span>)</p> +<p class="margin"> type (<span class="paratype">enum('a','aaaa','alias','cname','hinfo','mx','naptr','ns','ptr','rp','srv','txt')</span>)</p> +<p class="margin"> data (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> aux (<span class="paratype">int(11)</span>)</p> +<p class="margin"> ttl (<span class="paratype">int(11)</span>)</p> +<p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> stamp (<span class="paratype">timestamp</span>)</p> +<p class="margin"> serial (<span class="paratype">int(10)</span>)</p> +<b>Output: </b> +<p class="margin"> Returns the number of affected rows.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/mail_alias_add.html b/remoting_client/API-docs/mail_alias_add.html index 0e87abd8fc89473621ea55c9d38ef340bdedbb0a..101d3bfef8d05f0c9463c87cc496078d961312e7 100644 --- a/remoting_client/API-docs/mail_alias_add.html +++ b/remoting_client/API-docs/mail_alias_add.html @@ -24,6 +24,8 @@ <p class="margin"> destination (<span class="paratype">text</span>)</p> <p class="margin"> type (<span class="paratype">enum('alias','aliasdomain','forward','catchall')</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> allow_send_ase (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> greylisting (<span class="paratype">enum('n','y')</span>)</p> <p class="headgrp">Output: </p> <p class="margin"> Returns the ID of the newly added mail alias.</p> <!--<b>Output:</b> diff --git a/remoting_client/API-docs/mail_alias_update.html b/remoting_client/API-docs/mail_alias_update.html index 0a2c6890748558eb245d54ca4879915c1c57a160..f4d960a059e8e374d843ed1c0390a6cb21bcb5a4 100644 --- a/remoting_client/API-docs/mail_alias_update.html +++ b/remoting_client/API-docs/mail_alias_update.html @@ -24,6 +24,8 @@ <p class="margin"> destination (<span class="paratype">text</span>)</p> <p class="margin"> type (<span class="paratype">enum('alias','aliasdomain','forward','catchall')</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> allow_send_ase (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> greylisting (<span class="paratype">enum('n','y')</span>)</p> <b>Output: </b> <p class="margin"> Returns the number of affected rows.</p> <!--<b>Output:</b> diff --git a/remoting_client/API-docs/mail_relay_recipient_add.html b/remoting_client/API-docs/mail_relay_recipient_add.html new file mode 100644 index 0000000000000000000000000000000000000000..5e4c2cdfd5e20195933cdc5ee733d941d5734047 --- /dev/null +++ b/remoting_client/API-docs/mail_relay_recipient_add.html @@ -0,0 +1,31 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>mail_relay_recipient_add(<span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$params</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Adds a new relay recipient.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$params</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> server_id (<span class="paratype">int(11)</span>)</p> +<p class="margin"> source Recipient address (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns the ID of the newly added recordd</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/mail_relay_recipient_delete.html b/remoting_client/API-docs/mail_relay_recipient_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..ea765a9e1208dadec74b4eafa333a90cd793a132 --- /dev/null +++ b/remoting_client/API-docs/mail_relay_recipient_delete.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>mail_relay_recipient_delete(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Deletes a relay recipient.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin">None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns the number of deleted records.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/mail_relay_recipient_get.html b/remoting_client/API-docs/mail_relay_recipient_get.html new file mode 100644 index 0000000000000000000000000000000000000000..a1540e24d934c23880ae75e296e82b5c58b2da27 --- /dev/null +++ b/remoting_client/API-docs/mail_relay_recipient_get.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>mail_relay_recipient_get(<span class="var">$session_id</span>, <span class="var">$primary_id</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Retrieves information about a relay recipient.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> None</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns all fields and values of the chosen relay recipient.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/mail_relay_recipient_update.html b/remoting_client/API-docs/mail_relay_recipient_update.html new file mode 100644 index 0000000000000000000000000000000000000000..417ef40eeb253fbc7966fd7cee19e696de65c877 --- /dev/null +++ b/remoting_client/API-docs/mail_relay_recipient_update.html @@ -0,0 +1,31 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>mail_relay_recipient_update(<span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1> +<br> +<b>Description: </b> +<p class="margin"> Updates a relay recipient.</p><br> +<b>Input Variables: </b> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span></p> +<b>Parameters (in <span class="var">$params</span>): </b> +<p class="margin"> server_id (<span class="paratype">int(11)</span>)</p> +<p class="margin"> source Recipient address (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> +<b>Output: </b> +<p class="margin"> Returns the number of affected rows.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/mail_spamfilter_blacklist_add.html b/remoting_client/API-docs/mail_spamfilter_blacklist_add.html index c45c5d60f0d460067b43d6cb1b3cf9475a521220..198f7b6b237cde20d9473c10305465c026ad2e30 100644 --- a/remoting_client/API-docs/mail_spamfilter_blacklist_add.html +++ b/remoting_client/API-docs/mail_spamfilter_blacklist_add.html @@ -21,7 +21,7 @@ <p class="headgrp">Parameters (in <span class="var">$params</span>): </p> <p class="margin"> server_id (<span class="paratype">int(11)</span>)</p> <p class="margin"> wb (<span class="paratype">enum('W','B')</span>)</p> -<p class="margin"> rid (<span class="paratype">int(11)</span>)</p> +<p class="margin"> rid (<span class="paratype">int(11)</span>) An ID from the spamfilter_users table.</p> <p class="margin"> email (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> priority (<span class="paratype">tinyint(3)</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> diff --git a/remoting_client/API-docs/mail_spamfilter_user_add.html b/remoting_client/API-docs/mail_spamfilter_user_add.html index c23a9dbd42ca4a1900c0463ccad3336803449a6c..888c74ab70bc6ab084173b33b2e3ec2ca840d28a 100644 --- a/remoting_client/API-docs/mail_spamfilter_user_add.html +++ b/remoting_client/API-docs/mail_spamfilter_user_add.html @@ -24,7 +24,7 @@ <p class="margin"> policy_id (<span class="paratype">int(11)</span>)</p> <p class="margin"> email (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> fullname (<span class="paratype">varchar(64)</span>)</p> -<p class="margin"> local (<span class="paratype">varchar(1)</span>)</p> +<p class="margin"> local (<span class="paratype">varchar(1)</span>) 'Y' for a local account.</p> <p class="headgrp">Output: </p> <p class="margin"> Returns the ID of the newly added spamfilter user.</p> <!--<b>Output:</b> diff --git a/remoting_client/API-docs/mail_user_add.html b/remoting_client/API-docs/mail_user_add.html index b88ec706cce0e1e84aeaa7967e8c76fe69e9b2f3..dab28350577e0a3197dd54019d1608ddaf8590f8 100644 --- a/remoting_client/API-docs/mail_user_add.html +++ b/remoting_client/API-docs/mail_user_add.html @@ -25,6 +25,7 @@ <p class="margin"> email (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> login (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> password (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> _ispconfig_pw_crypted (<span class="paratype">int(11)</span>) Set to 1 to indicate that the password is already crypted.</p> <p class="margin"> name (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> uid (<span class="paratype">int(11)</span>)</p> <p class="margin"> gid (<span class="paratype">int(11)</span>)</p> @@ -36,7 +37,8 @@ <p class="margin"> autoresponder_start_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_end_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_text (<span class="paratype">mediumtext</span>)</p> -<p class="margin"> move_junk (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> autoresponder_subject (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> move_junk (<span class="paratype">enum('y','a','n')</span>)</p> <p class="margin"> custom_mailfilter (<span class="paratype">mediumtext</span>)</p> <p class="margin"> postfix (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> access (<span class="paratype">enum('n','y')</span>)</p> diff --git a/remoting_client/API-docs/mail_user_update.html b/remoting_client/API-docs/mail_user_update.html index 46d23dacf9ac593b43924182ed4ff629d4efe86a..d30b9323934e31125d50495a4d0b4ca6299fc7c6 100644 --- a/remoting_client/API-docs/mail_user_update.html +++ b/remoting_client/API-docs/mail_user_update.html @@ -12,7 +12,7 @@ </style></head> -<body style="color: rgb(0, 0, 0); alink="#804080" link="#804080" vlink="#603060"> +<body style="color: rgb(0, 0, 0);" alink="#804080" link="#804080" vlink="#603060"> <div style="padding:40px"> <h1>mail_user_update(<span class="var">$session_id</span>, <span class="var">$client_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1> <br> @@ -24,6 +24,7 @@ <p class="margin"> server_id (<span class="paratype">int(11)</span>)</p> <p class="margin"> email (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> password (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> _ispconfig_pw_crypted (<span class="paratype">int(11)</span>) Set to 1 to indicate that the password is already crypted.</p> <p class="margin"> name (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> uid (<span class="paratype">int(11)</span>)</p> <p class="margin"> gid (<span class="paratype">int(11)</span>)</p> @@ -35,7 +36,7 @@ <p class="margin"> autoresponder_start_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_end_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_text (<span class="paratype">mediumtext</span>)</p> -<p class="margin"> move_junk (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> move_junk (<span class="paratype">enum('y','a','n')</span>)</p> <p class="margin"> custom_mailfilter (<span class="paratype">mediumtext</span>)</p> <p class="margin"> postfix (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> access (<span class="paratype">enum('n','y')</span>)</p> diff --git a/remoting_client/API-docs/navigation.html b/remoting_client/API-docs/navigation.html index a9d32f7598f5b9169fbfb25e9ebef8a2cbf4af31..89ef7bc8e4fbe9a7617a77a56fb812440b442997 100644 --- a/remoting_client/API-docs/navigation.html +++ b/remoting_client/API-docs/navigation.html @@ -2,11 +2,11 @@ <html><head> <title>ISCPConfig 3 API Functions</title> - - + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - + <style type="text/css"> <!-- .command { @@ -75,6 +75,10 @@ <p><a href="dns_mx_delete.html" target="content">dns_mx_delete</a></p> <p><a href="dns_mx_get.html" target="content">dns_mx_get</a></p> <p><a href="dns_mx_update.html" target="content">dns_mx_update</a></p> +<p><a href="dns_naptr_add.html" target="content">dns_naptr_add</a></p> +<p><a href="dns_naptr_delete.html" target="content">dns_naptr_delete</a></p> +<p><a href="dns_naptr_get.html" target="content">dns_naptr_get</a></p> +<p><a href="dns_naptr_update.html" target="content">dns_naptr_update</a></p> <p><a href="dns_ns_add.html" target="content">dns_ns_add</a></p> <p><a href="dns_ns_delete.html" target="content">dns_ns_delete</a></p> <p><a href="dns_ns_get.html" target="content">dns_ns_get</a></p> @@ -161,6 +165,10 @@ <p><a href="mail_transport_delete.html" target="content">mail_transport_delete</a></p> <p><a href="mail_transport_get.html" target="content">mail_transport_get</a></p> <p><a href="mail_transport_update.html" target="content">mail_transport_update</a></p> +<p><a href="mail_relay_recipient_add.html" target="content">mail_relay_recipient_add</a></p> +<p><a href="mail_relay_recipient_delete.html" target="content">mail_relay_recipient_delete</a></p> +<p><a href="mail_relay_recipient_get.html" target="content">mail_relay_recipient_get</a></p> +<p><a href="mail_relay_recipient_update.html" target="content">mail_relay_recipient_update</a></p> <p><a href="mail_user_add.html" target="content">mail_user_add</a></p> <p><a href="mail_user_delete.html" target="content">mail_user_delete</a></p> <p><a href="mail_user_get.html" target="content">mail_user_get</a></p> @@ -200,6 +208,7 @@ <p><a href="server_get_php_versions.html" target="content">server_get_php_versions</a></p> <p><a href="server_get_serverid_by_ip.html" target="content">server_get_serverid_by_ip</a></p> <p><a href="sites_aps_available_packages_list.html" target="content">sites_aps_available_packages_list</a></p> +<p><a href="sites_aps_change_package_status.html" target="content">sites_aps_change_package_status</a></p> <p><a href="sites_aps_get_package_details.html" target="content">sites_aps_get_package_details</a></p> <p><a href="sites_aps_get_package_file.html" target="content">sites_aps_get_package_file</a></p> <p><a href="sites_aps_get_package_settings.html" target="content">sites_aps_get_package_settings</a></p> @@ -244,6 +253,7 @@ <p><a href="sites_web_subdomain_delete.html" target="content">sites_web_subdomain_delete</a></p> <p><a href="sites_web_subdomain_get.html" target="content">sites_web_subdomain_get</a></p> <p><a href="sites_web_subdomain_update.html" target="content">sites_web_subdomain_update</a></p> +<p><a href="system_config_get.html" target="content">system_config_get</a></p> <p><a href=""></a></p> <p></p> diff --git a/remoting_client/API-docs/sites_aps_change_package_status.html b/remoting_client/API-docs/sites_aps_change_package_status.html new file mode 100644 index 0000000000000000000000000000000000000000..bc8ad380ed9a47ff9e49c93e417fb2f6e2f4ae38 --- /dev/null +++ b/remoting_client/API-docs/sites_aps_change_package_status.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPConfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>sites_aps_change_package_status(<span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Changes the status for specified APS package. Supply the APS package ID in $primary_id.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$primary_id</span>, <span class="var">$params</span></p> +<p class="headgrp">Parameters (in <span class="var">$params</span>): </p> +<p class="margin"> package_status (<span class="paratype">int</span>) - can be 1 (= PACKAGE_LOCKED) or 2 (= PACKAGE_ENABLED)</p> +<p class="headgrp">Output: </p> +<p class="margin"> Returns true package status was changed.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/API-docs/sites_database_add.html b/remoting_client/API-docs/sites_database_add.html index acf53e7bc0102aa57c5d3e8a002c4c91f3a8bfee..143d034721092c9ce211ef62a3d1770dcee5b80f 100644 --- a/remoting_client/API-docs/sites_database_add.html +++ b/remoting_client/API-docs/sites_database_add.html @@ -31,6 +31,8 @@ <p class="margin"> remote_ips (<span class="paratype">text</span>)</p> <p class="margin"> backup_interval (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> backup_copies (<span class="paratype">int(11)</span>)</p> +<p class="margin"> backup_format_web (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> backup_format_db (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> <p class="headgrp">Output: </p> <p class="margin"> Returns the ID of the newly added database.</p> diff --git a/remoting_client/API-docs/sites_web_aliasdomain_add.html b/remoting_client/API-docs/sites_web_aliasdomain_add.html index 12e313efcc6f2e980562da0b45d635a489f8a0f6..688b6cd139f09c1417eb668b2e3935d733ca1b04 100644 --- a/remoting_client/API-docs/sites_web_aliasdomain_add.html +++ b/remoting_client/API-docs/sites_web_aliasdomain_add.html @@ -59,6 +59,8 @@ <p class="margin"> custom_php_ini (<span class="paratype">mediumtext</span>)</p> <p class="margin"> backup_interval (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> backup_copies (<span class="paratype">int(11)</span>)</p> +<p class="margin"> backup_format_web (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> backup_format_db (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> traffic_quota_lock (<span class="paratype">enum('n','y')</span>)</p> <p class="headgrp">Output: </p> diff --git a/remoting_client/API-docs/sites_web_aliasdomain_update.html b/remoting_client/API-docs/sites_web_aliasdomain_update.html index 53daaa2b2b363f4354ff428daf7ebaa383545a88..52b118f58b5b2bbb2c3ef34a0eb075a392f08617 100644 --- a/remoting_client/API-docs/sites_web_aliasdomain_update.html +++ b/remoting_client/API-docs/sites_web_aliasdomain_update.html @@ -60,6 +60,8 @@ <p class="margin"> custom_php_ini (<span class="paratype">mediumtext</span>)</p> <p class="margin"> backup_interval (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> backup_copies (<span class="paratype">int(11)</span>)</p> +<p class="margin"> backup_format_web (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> backup_format_db (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> traffic_quota_lock (<span class="paratype">enum('n','y')</span>)</p> <b>Output: </b> diff --git a/remoting_client/API-docs/sites_web_subdomain_add.html b/remoting_client/API-docs/sites_web_subdomain_add.html index 3e884f4ec7c733071db6ca589d66e03a9cf3839f..b2c5404a0456a2c2d40ab6972ecdc623694813f5 100644 --- a/remoting_client/API-docs/sites_web_subdomain_add.html +++ b/remoting_client/API-docs/sites_web_subdomain_add.html @@ -59,6 +59,8 @@ <p class="margin"> custom_php_ini (<span class="paratype">mediumtext</span>)</p> <p class="margin"> backup_interval (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> backup_copies (<span class="paratype">int(11)</span>)</p> +<p class="margin"> backup_format_web (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> backup_format_db (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> traffic_quota_lock (<span class="paratype">enum('n','y')</span>)</p> <p class="headgrp">Output: </p> diff --git a/remoting_client/API-docs/sites_web_subdomain_update.html b/remoting_client/API-docs/sites_web_subdomain_update.html index 4563912b59daa09bc0c5076f31e4703911c2b41f..a6b47245d6f8cf6008486bb30b739ac11e0e1bfe 100644 --- a/remoting_client/API-docs/sites_web_subdomain_update.html +++ b/remoting_client/API-docs/sites_web_subdomain_update.html @@ -59,6 +59,8 @@ <p class="margin"> custom_php_ini (<span class="paratype">mediumtext</span>)</p> <p class="margin"> backup_interval (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> backup_copies (<span class="paratype">int(11)</span>)</p> +<p class="margin"> backup_format_web (<span class="paratype">varchar(255)</span>)</p> +<p class="margin"> backup_format_db (<span class="paratype">varchar(255)</span>)</p> <p class="margin"> active (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> traffic_quota_lock (<span class="paratype">enum('n','y')</span>)</p> <b>Output: </b> diff --git a/remoting_client/API-docs/system_config_get.html b/remoting_client/API-docs/system_config_get.html new file mode 100644 index 0000000000000000000000000000000000000000..7d73c974a337cf61e71da3ed882e9b881846d966 --- /dev/null +++ b/remoting_client/API-docs/system_config_get.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html><head><title>ISPCOnfig 3 remote API documentation</title> + + + + + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="definitionen.css"> + <style type="text/css"> + </style></head> + +<body> +<div style="padding:40px"> +<h1>system_config_get(<span class="var">$session_id</span>, <span class="var">$section</span>, <span class="var">$key</span> ='');</h1> +<br> +<b>Description: </b> +<p class="margin"> Returns system config by section and optional key</p><br> +<b>Input Variables: </b> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$section</span>, <span class="var">$key</span> =''</p> +<b>Parameters (in <span class="var">$params</span>): </b> +<p class="margin"> None.</p> +<b>Output: </b> +<p class="margin"> Returns an array with the system config's section values, or a string with the value if a specific config key was requested.</p> +<!--<b>Output:</b> +<p style="margin-left:100px">Gives a record of </p> --> +</div> + +</body></html> diff --git a/remoting_client/examples/dns_naptr_add.php b/remoting_client/examples/dns_naptr_add.php new file mode 100644 index 0000000000000000000000000000000000000000..e6665a5c4bea4e51fe4590491c0ac97fbf78d43c --- /dev/null +++ b/remoting_client/examples/dns_naptr_add.php @@ -0,0 +1,58 @@ +<?php + +require 'soap_config.php'; + +$context = stream_context_create( array( + 'ssl' => array( + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ), +)); + + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + + $timestamp = date("Y-m-d H:i:s"); + + //* Set the function parameters. + $client_id = 1; + $params = array( + 'server_id' => 1, + 'zone' => 10, + 'name' => 'server', + 'type' => 'naptr', + 'data' => '100 "s" "thttp+L2R" "" thttp.example.com.', + 'aux' => '100', + 'ttl' => '3600', + 'active' => 'y', + 'stamp' => $timestamp, + 'serial' => '1', + ); + + $id = $client->dns_naptr_add($session_id, $client_id, $params); + + echo "ID: ".$id."<br>"; + + if($client->logout($session_id)) { + echo 'Logged out.<br />'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> diff --git a/remoting_client/examples/dns_naptr_delete.php b/remoting_client/examples/dns_naptr_delete.php new file mode 100644 index 0000000000000000000000000000000000000000..1d794ccea745e2ac419b16c96538e18a0eeee84e --- /dev/null +++ b/remoting_client/examples/dns_naptr_delete.php @@ -0,0 +1,45 @@ +<?php + +require 'soap_config.php'; + +$context = stream_context_create( array( + 'ssl' => array( + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ), +)); + + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + + //* Parameters + $id = 11; + + + $affected_rows = $client->dns_naptr_delete($session_id, $id); + + echo "Number of records that have been deleted: ".$affected_rows."<br>"; + + if($client->logout($session_id)) { + echo 'Logged out.<br />'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> diff --git a/remoting_client/examples/dns_naptr_get.php b/remoting_client/examples/dns_naptr_get.php new file mode 100644 index 0000000000000000000000000000000000000000..b9beec45f47964bfdbd1fe4d2c8cfe3e92448b90 --- /dev/null +++ b/remoting_client/examples/dns_naptr_get.php @@ -0,0 +1,45 @@ +<?php + +require 'soap_config.php'; + + +$context = stream_context_create( array( + 'ssl' => array( + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ), +)); + + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + + //* Set the function parameters. + $id = 11; + + $dns_record = $client->dns_naptr_get($session_id, $id); + + print_r($dns_record); + + if($client->logout($session_id)) { + echo 'Logged out.<br />'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> diff --git a/remoting_client/examples/dns_naptr_update.php b/remoting_client/examples/dns_naptr_update.php new file mode 100644 index 0000000000000000000000000000000000000000..1f9746468797735d949b2164ed2b38b18c10a9a4 --- /dev/null +++ b/remoting_client/examples/dns_naptr_update.php @@ -0,0 +1,53 @@ +<?php + +require 'soap_config.php'; + + +$context = stream_context_create( array( + 'ssl' => array( + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ), +)); + + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + + //* Parameters + $id = 11; + $client_id = 1; + + + //* Get the dns record + $dns_record = $client->dns_naptr_get($session_id, $id); + + //* Change active to inactive + $dns_record['active'] = 'n'; + + $affected_rows = $client->dns_naptr_update($session_id, $client_id, $id, $dns_record); + + echo "Number of records that have been changed in the database: ".$affected_rows."<br>"; + + if($client->logout($session_id)) { + echo 'Logged out.<br />'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> diff --git a/remoting_client/examples/dns_templatezone_add.php b/remoting_client/examples/dns_templatezone_add.php new file mode 100644 index 0000000000000000000000000000000000000000..aedfc61f5d9be0989bccb31177922b1fb331b446 --- /dev/null +++ b/remoting_client/examples/dns_templatezone_add.php @@ -0,0 +1,50 @@ +<?php + +require 'soap_config.php'; + +// Disable SSL verification for this test script +$context = stream_context_create([ + 'ssl' => [ + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ] +]); + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + + //* Set the function parameters. + $client_id = 1; + $template_id = 1; + $domain = 'test.tld'; + $ip = '192.168.0.100'; + $ns1 = 'ns1.testhoster.tld'; + $ns2 = 'ns2.testhoster.tld'; + $email = 'email.test.tld'; + + $id = $client->dns_templatezone_add($session_id, $client_id, $template_id, $domain, $ip, $ns1, $ns2, $email); + + echo "ID: ".$id."<br>"; + + if($client->logout($session_id)) { + echo 'Logged out.<br />'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> \ No newline at end of file diff --git a/remoting_client/examples/ispc-import-csv-email.php b/remoting_client/examples/ispc-import-csv-email.php new file mode 100644 index 0000000000000000000000000000000000000000..407ba1635c4b70275528a90e6654db4b07f83f21 --- /dev/null +++ b/remoting_client/examples/ispc-import-csv-email.php @@ -0,0 +1,305 @@ +#!/usr/bin/php +<?php +# +# ispc-import-csv-email.php: import email accounts from csv into ispconfig +# + +# ISPConfig remote api params +$remote_user = 'importer'; +$remote_pass = 'apipassword'; +$remote_url = 'https://yourserver.com:8080/remote/json.php'; + +# CSV file +$csv_file="/home/migrations/test.csv"; + + +# csv file format (first line is header names, column order does not matter): +# +# "email","password","quota","name","cc","bcc","move_junk","autoresponder","autoresponder_text","virus_lover","spam_lover" +# "api_standard@apitest.com","insecure","150","API User Insert: Standard Mailbox","","","yes","no","this is vacation text, although vacation is not enabled","N","N" +# "api_no_spambox@apitest.com","insecure","150","API User Insert: Mailbox with move_junk off","","","no","no","this is vacation text, although vacation is not enabled","N","N" +# "api_vacation@apitest.com","insecure","150","API User Insert: Mailbox with vacation","","","yes","yes","this is vacation text, with vacation enabled","N","N" +# "api_forward@apitest.com","insecure","150","API User Insert: Mail Forward","your-test-addr@test.com","","no","no","this is vacation text, although vacation is not enabled","N","N" +# "api_both1@apitest.com","insecure","150","API User Insert: Mailbox with forward via cc","your-test-addr@test.com","","yes","no","this is vacation text, although vacation is not enabled","N","N" +# "api_both2@apitest.com","insecure","150","API User Insert: Mailbox with forward via bcc","","your-test-addr@test.com","yes","no","this is vacation text, although vacation is not enabled","N","N" +# "api_virus_lover@apitest.com","insecure","150","API User Insert: Mailbox with virus_lover","","","yes","no","","Y","N" +# "api_spam_lover@apitest.com","insecure","150","API User Insert: Mailbox with spam_lover","","","yes","no","","N","Y" +# "api_both_lover@apitest.com","insecure","150","API User Insert: Mailbox with virus_lover and spam_lover","","","yes","no","","Y","Y" + + +/** + * Call REST endpoint. + */ +function restCall( $method, $data ) { + global $remote_url; + + if(!is_array($data)) return false; + $json = json_encode($data); + + $curl = curl_init(); + curl_setopt($curl, CURLOPT_POST, 1); + + if($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $json); + + // needed for self-signed cert + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + //curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + // end of needed for self-signed cert + + curl_setopt($curl, CURLOPT_URL, $remote_url . '?' . $method); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + + $result = curl_exec($curl); + curl_close($curl); + + return $result; +} + +$session_id = ''; + +/** + * Logout of active session and die with message. + */ +function session_die( $msg ) { + global $session_id; + + if ( isset( $session_id ) && $session_id ) { + $result = restCall( 'logout', [ 'session_id' => $session_id ] ); + $result || die( "$msg\nAdditionally, could not get logout result, session id $session_id may now be abandoned.\n" ); + } + + die( "$msg\n" ); +} + +/** + * Make api call, checking for errors and return 'response' from the decoded data. Opens session if required. + */ +function apiCall( ...$args ) { + global $remote_user, $remote_pass, $session_id; + + // login to remote api and obtain session id if needed + if ( ! ( isset( $session_id ) && $session_id ) ) { + $result = restCall( 'login', [ 'username' => $remote_user, 'password' => $remote_pass, 'client_login' => false, ] ); + + if ( $result ) { + $result = json_decode( $result, true ); + if ( ! $result ) { + die( "Error: unable to login to remote api (json_decode failed)\n" ); + } + + if ( isset( $result['response'] ) ) { + $session_id = $result['response']; + } else { + die( "Error: failed to obtain session id from remote api login\n" ); + } + } + } + + $rest_args = func_get_args(); + $method = array_shift( $rest_args ); + + $result = restCall( $method, array_merge( [ 'session_id' => $session_id, ], ...$rest_args ) ); + + if ( $result ) $data = json_decode( $result, true ); + else session_die( "Could not get $method result" ); + + if ( isset( $data['code'] ) && 'ok' != $data['code'] ) { + $msg = "$method returned " . $data['code'] + . ( isset( $data['message'] ) ? ": " . $data['message'] . "\n" : "\n" ); + session_die( $msg ); + } + + return ( isset( $data['response'] ) ? $data['response'] : $data ); +} + +if ( ! file_exists( "$csv_file" ) ) { + die( "CSV file ($csv_file) not found.\n" ); +} + +// get all mail policies +$mail_policies = apiCall( 'mail_policy_get', [ 'primary_id' => [] ] ); +if ( ! $mail_policies ) { + session_die( "Error: could not look up mail policies\n" ); +} + +// get all spamfilter_user settings +$mail_spamfilter_users = apiCall( 'mail_spamfilter_user_get', [ 'primary_id' => [] ] ); +if ( ! $mail_spamfilter_users ) { + session_die( "Error: could not look up mail spamfilter users\n" ); +} + +$mail_domains = []; + +// Read csv file, map rows and loop through them +$rows = array_map( 'str_getcsv', file( $csv_file ) ); +$header = array_shift( $rows ); +$email_idx = array_search( 'email', $header ); +if ( $email_idx === FALSE ) { + session_die( "Error in csv file: 'email' field not found.\n" ); +} +$csv = []; +foreach( $rows as $row ) { + $email = $row[$email_idx]; + $domain = substr( $email, strpos( $email, '@' ) + 1 ); + + if ( is_array( $row ) && count( $header ) == count( $row ) ) { + $csv[$email] = array_combine( $header, $row ); + } else { + print "Error in csv file: problem parsing email '$email'\n"; + continue; + } + + // look up mail_domain record for this domain + if ( ! isset( $mail_domains[$domain] ) ) { + $data = apiCall( 'mail_domain_get_by_domain', [ 'domain' => $domain ] ); + + if ( is_array( $data ) && isset( $data[0] ) ) { + + // unset these (large and don't need them) + unset( $data[0]['dkim'] ); + unset( $data[0]['dkim_selector'] ); + unset( $data[0]['dkim_public'] ); + unset( $data[0]['dkim_private'] ); + + $mail_domains[$domain] = $data[0]; + + foreach ( $mail_spamfilter_users as $msu ) { + if ( $msu['email'] == "@$domain" && $msu['server_id'] == $mail_domains[$domain]['server_id'] ) { + $mail_domains[$domain]['spamfilter_policy_id'] = $msu['policy_id']; + } + } + } else { + $mail_domains[$domain] = [ 'domain_id' => -1, 'domain' => $domain, ]; + print( "Error: mail_domain $domain does not exist, you must create it first.\n" ); + } + } +} + +// dump manually created account to compare values +//$data = apiCall( 'mail_user_get', [ 'primary_id' => [ 'email' => 'manual@apitest.com' ] ] ); +//var_dump( $data, true ); + +foreach ( $csv as $record ) { + $email = $record['email']; + $addr = substr( $email, 0, strpos( $email, '@' ) ); + $domain = substr( $email, strpos( $email, '@' ) + 1 ); + + // ensure we have mail_domain info + if ( ! isset( $mail_domains[$domain] ) || -1 == $mail_domains[$domain]['domain_id'] ) { + print "Config for domain $domain not available, cannot add email $email.\n"; + continue; + } + + // skip if email already exists + $data = apiCall( 'mail_user_get', [ 'primary_id' => [ 'email' => $email ] ] ); + if ( is_array( $data ) && isset( $data[0] ) && isset( $data[0]['mailuser_id'] ) ) { + print "Email $email already exists, skipping.\n"; + continue; + } + + // get client_id for this sys_userid + if ( isset( $mail_domains[$domain]['client_id'] ) ) { + $client_id = $mail_domains[$domain]['client_id']; + } else { + $client_id = apiCall( 'client_get_id', [ 'sys_userid' => $mail_domains[$domain]['sys_userid'] ] ); + if ( ! $client_id ) { + print "Error: unable to determine client_id for $domain (sys_userid is " . $mail_domains[$domain]['sys_userid'] . "),\n"; + print "cannot create mailbox for Email $email\n"; + continue; + } + $mail_domains[$domain]['client_id'] = $client_id; + } + + // mail_user_add parameters for this email + $params = [ 'params' => [ + 'server_id' => $mail_domains[$domain]['server_id'], + 'email' => $email, + 'login' => $email, + 'password' => $record['password'], + 'name' => $record['name'], + 'uid' => 5000, + 'gid' => 5000, + 'maildir' => "/var/vmail/$domain/$addr", + 'quota' => $record['quota'] * 1024 * 1024, + 'cc' => implode( ',', array_filter( [ $record['cc'], $record['bcc'] ] ) ), + 'homedir' => "/var/vmail/", + 'autoresponder' => ( preg_match( '/^y/i', $record['autoresponder'] ) ? 'y' : 'n' ), + 'autoresponder_start_date' => date( 'Y-m-d H:i:s' ), + 'autoresponder_end_date' => date( '2024-m-d H:i:s' ), + 'autoresponder_text' => $record['autoresponder_text'], + 'move_junk' => ( preg_match( '/^y/i', $record['move_junk'] ) ? 'y' : 'n' ), + 'custom_mailfilter' => "", + 'postfix' => 'y', + 'access' => 'y', + // 'disableimap' => 'n', + // 'disablepop3' => 'n', + // 'disabledeliver' => 'n', + // 'disablesmtp' => 'n', + ], + ]; + + // add mail user + $data = apiCall( 'mail_user_add', [ 'client_id' => $client_id ], $params ); + + if ( ! $data ) { + print "mail_user_add may have a problem inserting $email\n"; + continue; + } + + //$data = apiCall( 'mail_user_get', [ 'primary_id' => [ 'email' => $email ] ] ); + //var_dump( $data, true ); + + // determine mail policy + $spam_lover = ( preg_match( '/^y/i', $record['move_junk'] ) ? $record['spam_lover'] : 'N' ); + $virus_lover = $record['virus_lover']; + $spamfilter_policy_id = null; + + // check domain's policy settings for bypass_spam_checks == 'N' and matching spam_lover/virus_lover, + // if a match, we're done + if ( isset( $mail_domains[$domain]['spamfilter_policy_id'] ) ) { + foreach ( $mail_policies as $policy ) { + if ( $policy['id'] == $mail_domains[$domain]['spamfilter_policy_id'] ) { + if ( 'N' == $policy['bypass_spam_checks'] && $policy['spam_lover'] == $spam_lover && $policy['virus_lover'] == $virus_lover ) { + $spamfilter_policy_id = $policy['id']; + } + } + } + } + // if domain's policy doesn't match, loop through all policies to find a match and insert it + if ( null === $spamfilter_policy_id ) { + foreach ( $mail_policies as $policy ) { + if ( 'Y' == $policy['bypass_spam_checks'] ) { + continue; + } + if ( $policy['spam_lover'] == $spam_lover && $policy['virus_lover'] == $virus_lover ) { + $spamfilter_policy_id = $policy['id']; + + // mail_spamfilter_user entry for this user / policy_id + $params = [ 'params' => [ + 'server_id' => $mail_domains[$domain]['server_id'], + 'priority' => "10", + 'policy_id' => $policy['id'], + 'email' => $email, + 'fullname' => $email, + 'local' => "Y", + ], + ]; + + $data = apiCall( 'mail_spamfilter_user_add', [ 'client_id' => $client_id ], $params ); + + // either we inserted a spamfilter_user or it failed, + // either way, on to the next email + continue 2; + } + } + } +} + + +// logout so session id is cleaned up +if ( isset( $session_id ) && $session_id ) { + $result = restCall( 'logout', [ 'session_id' => $session_id ] ); + $result || die( "Could not get logout result, session id $session_id may now be abandoned.\n" ); +} + +exit(); diff --git a/remoting_client/examples/mail_spamfilter_blacklist_add.php b/remoting_client/examples/mail_spamfilter_blacklist_add.php index d5768e25367027a11ee492661f189b8d320d13c5..b5d8a7f80a53b8f215b445eb525693ef0e296b08 100644 --- a/remoting_client/examples/mail_spamfilter_blacklist_add.php +++ b/remoting_client/examples/mail_spamfilter_blacklist_add.php @@ -19,7 +19,7 @@ try { $params = array( 'server_id' => 1, 'wb' => 'B', - 'rid' => '', + 'rid' => '', // Fill in an ID from the spamfilter_users table. 'email' => 'hmmnoe@test.int', 'priority' => 1, 'active' => 'y' diff --git a/remoting_client/examples/mail_user_add.php b/remoting_client/examples/mail_user_add.php index 3b7d240eccea9805b43526959ed5298ed025cc86..80a7358cf9d3bb47c8b836954c6aed79eb53e90a 100644 --- a/remoting_client/examples/mail_user_add.php +++ b/remoting_client/examples/mail_user_add.php @@ -32,6 +32,7 @@ try { 'autoresponder_start_date' => '', 'autoresponder_end_date' => '', 'autoresponder_text' => 'hallo', + 'autoresponder_subject' => 'Out of office reply', 'move_junk' => 'n', 'custom_mailfilter' => 'spam', 'postfix' => 'n', diff --git a/remoting_client/examples/sites_database_add.php b/remoting_client/examples/sites_database_add.php index c63ad551eb243da03c4b0475cac66bb7fbf254a0..9de1e6674bd7ae53e4ad615ec542fbc7f43e9738 100644 --- a/remoting_client/examples/sites_database_add.php +++ b/remoting_client/examples/sites_database_add.php @@ -28,6 +28,8 @@ try { 'remote_ips' => '', 'backup_interval' => 'none', 'backup_copies' => 1, + 'backup_format_web' => 'default', + 'backup_format_db' => 'gzip', 'active' => 'y' ); diff --git a/remoting_client/examples/sites_web_aliasdomain_add.php b/remoting_client/examples/sites_web_aliasdomain_add.php index c459e47b87a8a875d63d0eef831ed89f4c093b37..602b273dd1b0ecbcabdcaed58f9af5d248c62c03 100644 --- a/remoting_client/examples/sites_web_aliasdomain_add.php +++ b/remoting_client/examples/sites_web_aliasdomain_add.php @@ -57,6 +57,8 @@ try { 'custom_php_ini' => '', 'backup_interval' => '', 'backup_copies' => 1, + 'backup_format_web' => 'default', + 'backup_format_db' => 'gzip', 'active' => 'y', 'traffic_quota_lock' => 'n' ); diff --git a/remoting_client/examples/sites_web_domain_add.php b/remoting_client/examples/sites_web_domain_add.php index 1ddd21e13669d0291f2fa7c356a0aaec3dc389e9..0ee462ab7a34d2e67944de3adbb37cad81944462 100644 --- a/remoting_client/examples/sites_web_domain_add.php +++ b/remoting_client/examples/sites_web_domain_add.php @@ -58,6 +58,8 @@ try { 'custom_php_ini' => '', 'backup_interval' => '', 'backup_copies' => 1, + 'backup_format_web' => 'default', + 'backup_format_db' => 'gzip', 'active' => 'y', 'traffic_quota_lock' => 'n', 'http_port' => '80', diff --git a/remoting_client/examples/sites_web_subdomain_add.php b/remoting_client/examples/sites_web_subdomain_add.php index ac319388f0958dad44a14d24a7b3c35ebf83d125..c5a92b4703795944347e44253d0a63b10db4f35f 100644 --- a/remoting_client/examples/sites_web_subdomain_add.php +++ b/remoting_client/examples/sites_web_subdomain_add.php @@ -57,6 +57,8 @@ try { 'custom_php_ini' => '', 'backup_interval' => '', 'backup_copies' => 1, + 'backup_format_web' => 'default', + 'backup_format_db' => 'gzip', 'active' => 'y', 'traffic_quota_lock' => 'n' ); diff --git a/remoting_client/examples/soap-database-add.php b/remoting_client/examples/soap-database-add.php deleted file mode 100644 index 5ff7e4b79df4af0c913c40a8956b930694edd1b5..0000000000000000000000000000000000000000 --- a/remoting_client/examples/soap-database-add.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - -$username = 'admin'; -$password = 'admin'; - -$soap_location = 'http://localhost:8080/remote/index.php'; -$soap_uri = 'http://localhost:8080/remote/'; - -$client = new SoapClient(null, array('location' => $soap_location, - 'uri' => $soap_uri)); -try { - if($session_id = $client->login($username, $password)) { - echo "Logged:".$session_id."<br />\n"; - } - - $database_type = 'mysql'; //Only mysql type avaliable more types coming soon. - $database_name = 'yourdbname'; - $database_username = 'yourusername'; - $database_password = 'yourpassword'; - $database_charset = ''; // blank = db default, latin1 or utf8 - $database_remoteips = ''; //remote ip´s separated by commas - - $params = array( - 'server_id' => 1, - 'type' => $database_type, - 'database_name' => $database_name, - 'database_user' => $database_username, - 'database_password' => $database_password, - 'database_charset' => $database_charset, - 'remote_access' => 'n', // n disabled - y enabled - 'active' => 'y', // n disabled - y enabled - 'remote_ips' => $database_remoteips - ); - - $client_id = 1; - $database_id = $client->sites_database_add($session_id, $client_id, $params); - - if($client->logout($session_id)) { - echo "Logout.<br />\n"; - } - - -} catch (SoapFault $e) { - die('Error: '.$e->getMessage()); -} - -?> diff --git a/remoting_client/examples/system_config_get.php b/remoting_client/examples/system_config_get.php new file mode 100644 index 0000000000000000000000000000000000000000..f5d3d47f7baff74fe42eaad58901a196a6add2d7 --- /dev/null +++ b/remoting_client/examples/system_config_get.php @@ -0,0 +1,48 @@ +<?php + +require 'soap_config.php'; + +$context = stream_context_create([ + 'ssl' => [ + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ] +]); + + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + + //* Set the function parameters. + $server_id = 1; + + $result = $client->system_config_get($session_id, 'misc'); + print_r($result); + echo "<br>"; + + $result = $client->system_config_get($session_id, 'misc', 'maintenance_mode'); + print_r($result); + echo "<br>"; + + if($client->logout($session_id)) { + echo 'Logged out.<br />'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> diff --git a/security/ids.whitelist b/security/ids.whitelist index a9b045e15f52b2bb8d4d6d6d0d09b92bd3319d73..6a953f45cf4216b4fef56ec565676b4dd2f8990a 100644 --- a/security/ids.whitelist +++ b/security/ids.whitelist @@ -7,6 +7,7 @@ admin:/admin/server_config_edit.php:POST.website_path admin:/admin/server_config_edit.php:POST.website_symlinks admin:/admin/server_config_edit.php:POST.vhost_conf_dir admin:/admin/server_config_edit.php:POST.vhost_conf_enabled_dir +admin:/admin/server_config_edit.php:POST.apache_init_script admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_dir admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_enabled_dir admin:/admin/server_config_edit.php:POST.php_open_basedir diff --git a/server/backup-now.php b/server/backup-now.php new file mode 100644 index 0000000000000000000000000000000000000000..aa73a8436931ef8b2cb846ed7c4c844a677f88aa --- /dev/null +++ b/server/backup-now.php @@ -0,0 +1,108 @@ +<?php + +/* +Copyright (c) 2007-2016, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"])); +require SCRIPT_PATH."/lib/config.inc.php"; +require SCRIPT_PATH."/lib/app.inc.php"; + +set_time_limit(0); +ini_set('error_reporting', E_ALL & ~E_NOTICE); + +/** + * Prints usage info + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ +function printUsageInfo(){ + echo <<<EOT +Usage: + php backup-now.php --id=<4> [--type=<all>] +Options: + --id id of the website to backup. + --type backup type: all, web or mysql. Default is all. + +EOT; +} + +/** + * Makes a backup + * @param int $domain_id id of the domain + * @param string $type type: mysql, web or all + * @return bool true if success + * @uses backup::run_backup() to make backups + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ +function makeBackup($domain_id, $type) +{ + global $app; + + echo "Making backup of website id=" . $domain_id . ", type=" . $type . ", please wait...\n"; + + // Load required class + $app->load('backup'); + + switch ($type) { + case "all": + $success = backup::run_backup($domain_id, "web", "manual"); + $success = $success && backup::run_backup($domain_id, "mysql", "manual"); + break; + case "mysql": + $success = backup::run_backup($domain_id, "mysql", "manual"); + break; + case "web": + $success = backup::run_backup($domain_id, "web", "manual"); + break; + default: + echo "Unknown format=" . $type . "\n"; + printUsageInfo(); + $success = false; + } + return $success; +} + +//** Get commandline options +$cmd_opt = getopt('', array('id::', 'type::')); +$id = filter_var($cmd_opt['id'], FILTER_VALIDATE_INT);; +if (!isset($cmd_opt['id']) || !is_int($id)) { + printUsageInfo(); + exit(1); +} + +if (isset($cmd_opt['type']) && !empty($cmd_opt['type'])) { + $type = $cmd_opt['type']; +} else + $type = "all"; + +$success = makeBackup($id, $type); + +echo "All operations finished, status " . ($success ? "success" : "failed") . ".\n"; + +exit($success ? 0 : 2); + +?> diff --git a/server/conf/apache_apps.vhost.master b/server/conf/apache_apps.vhost.master index d533f7b3c0a6f3dcbde989b93f39a0a8e37854c0..fe73487fa05c569612ddbe5f3530b3c47d9636b1 100644 --- a/server/conf/apache_apps.vhost.master +++ b/server/conf/apache_apps.vhost.master @@ -14,17 +14,11 @@ <FilesMatch "\.ph(p3?|tml)$"> SetHandler None </FilesMatch> - + <IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule> - {tmpl_if name="enable_spdy" op="==" value="y"} - <IfModule spdy_module> - SpdyEnabled on - </IfModule> - {/tmpl_if} - <IfModule mod_php5.c> DocumentRoot {tmpl_var name='apps_vhost_dir'} AddType application/x-httpd-php .php @@ -39,7 +33,7 @@ </tmpl_if> </Directory> </IfModule> - + <IfModule mod_php7.c> DocumentRoot {tmpl_var name='apps_vhost_dir'} AddType application/x-httpd-php .php @@ -54,7 +48,7 @@ </tmpl_if> </Directory> </IfModule> - + <IfModule mod_fcgid.c> DocumentRoot {tmpl_var name='apps_vhost_dir'} SuexecUserGroup ispapps ispapps @@ -74,6 +68,14 @@ </Directory> </IfModule> -</VirtualHost> - +{tmpl_if name="use_rspamd"} + <Location /rspamd> + Order allow,deny + Allow from all + </Location> + RewriteEngine On + RewriteRule ^/rspamd$ /rspamd/ [R,L] + RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P] +{/tmpl_if} +</VirtualHost> diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master index 6acb16f7c8bac0a99cbf17084e786c9e8bacacce..040de236257467644fa4c644eb422bb4f2eee7ac 100644 --- a/server/conf/apache_ispconfig.conf.master +++ b/server/conf/apache_ispconfig.conf.master @@ -35,6 +35,10 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m </tmpl_if> </Directory> +<Directory /var/www> + Options -Indexes +</Directory> + <Directory /var/www/conf> AllowOverride None <tmpl_if name='apache_version' op='>' value='2.2' format='version'> @@ -132,7 +136,7 @@ Alias /.well-known/acme-challenge /usr/local/ispconfig/interface/acme/.well-know Allow from all </tmpl_if> <IfModule mpm_itk_module> - AssignUserId www-data www-data + AssignUserId <tmpl_var name='system_user'> <tmpl_var name='system_group'> </IfModule> </Directory> diff --git a/server/conf/autoresponder.master b/server/conf/autoresponder.master index 0126c998d49f8177d28e147c1642a6e9fe4532c4..114db23d640125eccc0fb4ba4f9454d704ad92c0 100644 --- a/server/conf/autoresponder.master +++ b/server/conf/autoresponder.master @@ -4,7 +4,7 @@ if ($RETURNCODE==1) { if (!/^List-Unsubscribe:.*/:h ) { - if (!/^X-Spam-Flag: YES/:h ) + if (!/^(X-Spam-Flag: YES|X-Spam: Yes|Subject: \*\*\*\s*SPAM\s*\*\*\*.*)/:h ) { NOW=time if ({start_date} lt $NOW && {end_date} gt $NOW) diff --git a/server/conf/awstats_index.php.master b/server/conf/awstats_index.php.master index f7222c968721c87da286dc0ec937e25346bd58cc..b3e694ebbf3441038b45508f8e1e1624c3a0f481 100644 --- a/server/conf/awstats_index.php.master +++ b/server/conf/awstats_index.php.master @@ -45,10 +45,21 @@ arsort($awprev); $options = ""; foreach ($awprev as $key => $value) { + + if(file_exists($value.'/awsindex.html') && file_exists($value.'/goaindex.html')) { + $awstatsindex = 'awsindex.html'; + } elseif(file_exists($value.'/awsindex.html') && !file_exists($value.'/goaindex.html')) { + $awstatsindex = 'awsindex.html'; + } else { + $awstatsindex = 'goaindex.html'; + } + if($key == $current) $options .= "<option selected=\"selected\" value=\"{$awstatsindex}\">{$value}</option>\n"; else $options .= "<option value=\"{$value}/{$awstatsindex}\">{$value}</option>\n"; } +$awstatsindex = 'awsindex.html'; + $html = "<!DOCTYPE html>\n<html>\n<head>\n<title>Stats</title>\n"; $html .= "<style>\nhtml,body {margin:0px;padding:0px;width:100%;height:100%;background-color: #ccc;}\n"; $html .= "#header\n{\nwidth:100%;margin:0px auto;\nheight:20px;\nposition:fixed;\npadding:4px;\ntext-align:center;\n}\n"; @@ -60,4 +71,4 @@ $html .= $options; $html .= "</select>\n</div>\n<iframe src=\"{$awstatsindex}\" id=\"content\"></iframe>\n"; $html .= "</body></html>"; echo $html; -?> \ No newline at end of file +?> diff --git a/server/conf/bind_pri.domain.master b/server/conf/bind_pri.domain.master index fb867901dc2848506db0790c5ce076e92d2326ab..e5af0ca3118401e1cd20853ecd58956685111267 100644 --- a/server/conf/bind_pri.domain.master +++ b/server/conf/bind_pri.domain.master @@ -9,46 +9,52 @@ $TTL {tmpl_var name='ttl'} <tmpl_loop name='zones'> <tmpl_if name="type" op='==' value='NS'> -{tmpl_var name='name'} {tmpl_var name='ttl'} NS {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} NS {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='A'> -{tmpl_var name='name'} {tmpl_var name='ttl'} A {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} A {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='AAAA'> -{tmpl_var name='name'} {tmpl_var name='ttl'} AAAA {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} AAAA {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='ALIAS'> -{tmpl_var name='name'} {tmpl_var name='ttl'} CNAME {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} CNAME {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='CAA'> -{tmpl_var name='name'} {tmpl_var name='ttl'} CAA {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} CAA {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='CNAME'> -{tmpl_var name='name'} {tmpl_var name='ttl'} CNAME {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} CNAME {tmpl_var name='data'} +</tmpl_if> +<tmpl_if name="type" op='==' value='DNAME'> +{tmpl_var name='name'} {tmpl_var name='ttl'} DNAME {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='DS'> -{tmpl_var name='name'} {tmpl_var name='ttl'} DS {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} DS {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='HINFO'> -{tmpl_var name='name'} {tmpl_var name='ttl'} HINFO {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} HINFO {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='LOC'> {tmpl_var name='name'} {tmpl_var name='ttl'} LOC {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='MX'> -{tmpl_var name='name'} {tmpl_var name='ttl'} MX {tmpl_var name='aux'} {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} MX {tmpl_var name='aux'} {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='NAPTR'> -{tmpl_var name='name'} {tmpl_var name='ttl'} NAPTR {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} NAPTR {tmpl_var name='aux'} {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='PTR'> {tmpl_var name='name'} {tmpl_var name='ttl'} PTR {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='RP'> -{tmpl_var name='name'} {tmpl_var name='ttl'} RP {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} RP {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='SRV'> -{tmpl_var name='name'} {tmpl_var name='ttl'} SRV {tmpl_var name='aux'} {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} SRV {tmpl_var name='aux'} {tmpl_var name='data'} +</tmpl_if> +<tmpl_if name="type" op='==' value='SSHFP'> +{tmpl_var name='name'} {tmpl_var name='ttl'} SSHFP {tmpl_var name='data'} {tmpl_var name='data'} </tmpl_if> <tmpl_if name="type" op='==' value='TLSA'> {tmpl_var name='name'} {tmpl_var name='ttl'} TLSA {tmpl_var name='data'} @@ -57,8 +63,6 @@ $TTL {tmpl_var name='ttl'} {tmpl_var name='name'} {tmpl_var name='ttl'} TXT "{tmpl_var name='data'}" </tmpl_if> <tmpl_if name="type" op='==' value='TYPE257'> -{tmpl_var name='name'} {tmpl_var name='ttl'} TYPE257 {tmpl_var name='data'} +{tmpl_var name='name'} {tmpl_var name='ttl'} TYPE257 {tmpl_var name='data'} </tmpl_if> </tmpl_loop> - - diff --git a/server/conf/goaccess_index.php.master b/server/conf/goaccess_index.php.master new file mode 100644 index 0000000000000000000000000000000000000000..d0a8bf3c84a39a3e1cab901fef8f64f674a37315 --- /dev/null +++ b/server/conf/goaccess_index.php.master @@ -0,0 +1,73 @@ +<?php +$yearmonth_text = "Jump to previous stats: "; +$script = "<script>function load_content(url){var iframe = document.getElementById(\"content\");iframe.src = url;}</script>\n"; + +if ($handle = opendir('.')) +{ + while(false !== ($file = readdir($handle))) + { + if (substr($file,0,1) != "." && is_dir($file)) + { + $orderkey = substr($file,0,4).substr($file,5,2); + if (substr($file,5,2) < 10 ) + { + $orderkey = substr($file,0,4)."0".substr($file,5,2); + } + $goaprev[$orderkey] = $file; + } + } + + $month = date("n"); + $year = date("Y"); + + if (date("d") == 1) + { + $month = date("m")-1; + if (date("m") == 1) + { + $year = date("Y")-1; + $month = "12"; + } + } + + $current = $year.$month; + if ( $month < 10 ) { + $current = $year."0".$month; + } + $goaprev[$current] = $year."-".$month; + + closedir($handle); +} + +arsort($goaprev); + +$options = ""; +foreach ($goaprev as $key => $value) +{ + + if(file_exists($value.'/awsindex.html') && file_exists($value.'/goaindex.html')) { + $goaccessindex = 'goaindex.html'; + } elseif(file_exists($value.'/awsindex.html') && !file_exists($value.'/goaindex.html')) { + $goaccessindex = 'awsindex.html'; + } else { + $goaccessindex = 'goaindex.html'; + } + + if($key == $current) $options .= "<option selected=\"selected\" value=\"{$goaccessindex}\">{$value}</option>\n"; + else $options .= "<option value=\"{$value}/{$goaccessindex}\">{$value}</option>\n"; + +} +$goaccessindex = 'goaindex.html'; + +$html = "<!DOCTYPE html>\n<html>\n<head>\n<title>Stats</title>\n"; +$html .= "<style>\nhtml,body {margin:0px;padding:0px;width:100%;height:100%;background-color: #ccc;}\n"; +$html .= "#header\n{\nwidth:100%;margin:0px auto;\nheight:20px;\nposition:fixed;\npadding:4px;\ntext-align:center;\n}\n"; +$html .= "iframe {width:100%;height:95%;margin:0px;margin-top:40px;border:0px;padding:0px;}\n</style>\n</head>\n<body>\n"; +$html .= $script; +$html .= "<div id=\"header\">{$yearmonth_text}\n"; +$html .= "<select name=\"goadate\" onchange=\"load_content(this.value)\">\n"; +$html .= $options; +$html .= "</select>\n</div>\n<iframe src=\"{$goaccessindex}\" id=\"content\"></iframe>\n"; +$html .= "</body></html>"; +echo $html; +?> diff --git a/server/conf/mail/welcome_email_nl.txt b/server/conf/mail/welcome_email_nl.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd4baf4815aa92e57772cf12b586b9664e01eacc --- /dev/null +++ b/server/conf/mail/welcome_email_nl.txt @@ -0,0 +1,4 @@ +From: ISPConfig <postmaster@localhost.localdomain> +Subject: Welkom in uw nieuwe account. + +Welkom in uw nieuwe email account. Uw webmaster. diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master index ed5e3a49ae5160842cfbc25bbd25e7e22f6c4822..0c82c4631e0a41d0888a811b9f3097db63fd326a 100644 --- a/server/conf/nginx_apps.vhost.master +++ b/server/conf/nginx_apps.vhost.master @@ -191,7 +191,7 @@ server { fastcgi_pass unix:{cgi_socket}; } - location /images/mailman { + location ^~ /images/mailman { alias /usr/share/images/mailman; } @@ -199,4 +199,29 @@ server { alias /var/lib/mailman/archives/public; autoindex on; } + + {use_rspamd}location /rspamd/ { + {use_rspamd}proxy_pass http://127.0.0.1:11334/; + {use_rspamd}rewrite ^//(.*) /$1; + {use_rspamd}proxy_set_header X-Forwarded-Proto $scheme; + {use_rspamd}proxy_set_header Host $host; + {use_rspamd}proxy_set_header X-Real-IP $remote_addr; + {use_rspamd}proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + {use_rspamd}proxy_pass_header Authorization; + {use_rspamd}client_max_body_size 0; + {use_rspamd}client_body_buffer_size 1m; + {use_rspamd}proxy_intercept_errors on; + {use_rspamd}proxy_buffering on; + {use_rspamd}proxy_buffer_size 128k; + {use_rspamd}proxy_buffers 256 16k; + {use_rspamd}proxy_busy_buffers_size 256k; + {use_rspamd}proxy_temp_file_write_size 256k; + {use_rspamd}proxy_max_temp_file_size 0; + {use_rspamd}proxy_read_timeout 300; + {use_rspamd} + {use_rspamd}location ~* ^/rspamd/(.+\.(jpg|jpeg|gif|css|png|js|ico|html?|xml|txt))$ { + {use_rspamd}alias /usr/share/rspamd/www/$1; + {use_rspamd}} + {use_rspamd}} + } diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index 63c926035415703e6e86adcd0f45c00d1efe2a62..3fc50cc10805845b7e6656234d683ddd88698505 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -1,25 +1,47 @@ server { listen <tmpl_var name='ip_address'>:<tmpl_var name='http_port'>; +<tmpl_if name='use_proxy_protocol' op='==' value='y'> +<tmpl_if name='proxy_protocol_http' op='>' value='0'> + listen <tmpl_var name='ip_address'>:<tmpl_var name='proxy_protocol_http'> proxy_protocol; +</tmpl_if> +</tmpl_if> <tmpl_if name='ipv6_enabled'> listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='http_port'>; </tmpl_if> - +<tmpl_if name='ipv6_wildcard'> + listen [::]:<tmpl_var name='http_port'>; +</tmpl_if> <tmpl_if name='ssl_enabled'> - listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if}; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl http2; +<tmpl_if name='use_proxy_protocol' op='==' value='y'> +<tmpl_if name='proxy_protocol_https' op='>' value='0'> + listen <tmpl_var name='ip_address'>:<tmpl_var name='proxy_protocol_https'> ssl proxy_protocol; +</tmpl_if> +</tmpl_if> + ssl_protocols TLSv1.2; # ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; # ssl_prefer_server_ciphers on; <tmpl_if name='ipv6_enabled'> - listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if}; + listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='https_port'> ssl http2; +</tmpl_if> +<tmpl_if name='ipv6_wildcard'> + listen [::]:<tmpl_var name='https_port'> ssl http2; </tmpl_if> ssl_certificate <tmpl_var name='ssl_crt_file'>; ssl_certificate_key <tmpl_var name='ssl_key_file'>; </tmpl_if> - + server_name <tmpl_var name='domain'> <tmpl_var name='alias'>; root <tmpl_var name='web_document_root_www'>; - + +<tmpl_if name='ssl_enabled'> +<tmpl_if name='rewrite_to_https' op='==' value='y'> + if ($scheme != "https") { + rewrite ^ https://$http_host$request_uri? permanent; + } +</tmpl_if> +</tmpl_if> <tmpl_if name='seo_redirect_enabled'> if ($http_host <tmpl_var name='seo_redirect_operator'> "<tmpl_var name='seo_redirect_origin_domain'>") { rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri? permanent; @@ -35,13 +57,6 @@ server { rewrite ^<tmpl_var name='local_redirect_exclude'>(.*)$ <tmpl_var name='local_redirect_target'>$2 <tmpl_var name='local_redirect_type'>; } </tmpl_loop> -<tmpl_if name='ssl_enabled'> -<tmpl_if name='rewrite_to_https' op='==' value='y'> - if ($scheme != "https") { - rewrite ^ https://$http_host$request_uri? permanent; - } -</tmpl_if> -</tmpl_if> <tmpl_loop name="own_redirects"> <tmpl_if name='use_rewrite'> @@ -57,16 +72,16 @@ server { } </tmpl_if> </tmpl_loop> -<tmpl_if name='use_proxy' op='!=' value='y'> +<tmpl_if name='use_proxy' op='!=' value='y'> index index.html index.htm index.php index.cgi index.pl index.xhtml; - -<tmpl_if name='ssi' op='==' value='y'> + +<tmpl_if name='ssi' op='==' value='y'> location ~ \.shtml$ { ssi on; } </tmpl_if> -<tmpl_if name='errordocs'> +<tmpl_if name='errordocs'> error_page 400 /error/400.html; error_page 401 /error/401.html; error_page 403 /error/403.html; @@ -109,7 +124,7 @@ server { internal; } </tmpl_if> - + <tmpl_if name='logging' op='==' value='yes'> error_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/error.log; access_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/access.log combined; @@ -128,12 +143,13 @@ server { location ^~ /.well-known/acme-challenge/ { access_log off; log_not_found off; + auth_basic off; root /usr/local/ispconfig/interface/acme/; autoindex off; index index.html; try_files $uri $uri/ =404; } - + location = /favicon.ico { log_not_found off; access_log off; @@ -146,12 +162,13 @@ server { log_not_found off; access_log off; } - + location /stats/ { <tmpl_var name='web_document_root_www_proxy'> index index.html index.php; auth_basic "Members Only"; auth_basic_user_file <tmpl_var name='stats_auth_passwd_file'>; + add_header Content-Security-Policy "default-src * 'self' 'unsafe-inline';"; } location ^~ /awstats-icon { @@ -309,13 +326,13 @@ server { location <tmpl_var name='htpasswd_location'> { ##merge## auth_basic "Members Only"; auth_basic_user_file <tmpl_var name='htpasswd_path'>.htpasswd; - + location ~ \.php$ { try_files <tmpl_var name='rnd_php_dummy_file'> @php; } } </tmpl_loop> -</tmpl_if> +</tmpl_if> } <tmpl_loop name="redirects"> @@ -324,7 +341,7 @@ server { <tmpl_if name='ipv6_enabled'> listen [<tmpl_var name='ipv6_address'>]:80; </tmpl_if> - + <tmpl_if name='ssl_enabled'> listen <tmpl_var name='ip_address'>:443 ssl; <tmpl_if name='ipv6_enabled'> @@ -333,7 +350,7 @@ server { ssl_certificate <tmpl_var name='ssl_crt_file'>; ssl_certificate_key <tmpl_var name='ssl_key_file'>; </tmpl_if> - + server_name <tmpl_var name='rewrite_domain'>; <tmpl_if name='alias_seo_redirects2'> diff --git a/server/conf/php_fpm_pool.conf.master b/server/conf/php_fpm_pool.conf.master index fb5c4b44d9b975ccef05ab936dc7d7d75c7e934a..88b9e2b639838e2e3ca61ad07a1ab2dad946a72c 100644 --- a/server/conf/php_fpm_pool.conf.master +++ b/server/conf/php_fpm_pool.conf.master @@ -30,7 +30,6 @@ chdir = / <tmpl_if name='php_fpm_chroot'> chroot = <tmpl_var name='php_fpm_chroot_dir'> php_admin_value[doc_root] = <tmpl_var name='php_fpm_chroot_web_folder'> -php_admin_value[cgi.fix_pathinfo] = 0 </tmpl_if> env[HOSTNAME] = $HOSTNAME diff --git a/server/conf/rspamd_users.conf.master b/server/conf/rspamd_users.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..73d437d6cbdd3a7292af84855364cdfee7de977a --- /dev/null +++ b/server/conf/rspamd_users.conf.master @@ -0,0 +1,43 @@ +settings { + authenticated { + priority = 10; + authenticated = yes; + #apply "default" { groups_disabled = ["rbl", "spf"]; } + apply "default" { + #symbols_enabled = []; + symbols_disabled = []; + #groups_enabled = []; + groups_disabled = ["rbl"]; + } + } + whitelist { + priority = 10; + rcpt = "postmaster"; + rcpt = "hostmaster"; + rcpt = "abuse"; + want_spam = yes; + } + whitelist-ip { + priority = 10; +<tmpl_loop name="whitelist_ips"> + ip = "<tmpl_var name='ip'>"; +</tmpl_loop> + + want_spam = yes; + } +# whitelist-timmehosting { +# priority = 20; +# from = "@xxx"; +# from = "@xxx"; +# want_spam = yes; +# } + whitelist-ca { + priority = 20; + from = "@comodo.com"; + from = "@geotrust.com"; + from = "@geotrusteurope.com"; + want_spam = yes; + } + .include(try=true; glob=true) "$LOCAL_CONFDIR/local.d/users/*.conf" + .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/users.local.conf" +} diff --git a/server/conf/rspamd_users.inc.conf.master b/server/conf/rspamd_users.inc.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..96ba9f08384f0c42fa398517f4e34ff301c83648 --- /dev/null +++ b/server/conf/rspamd_users.inc.conf.master @@ -0,0 +1,57 @@ +<tmpl_var name='record_identifier'> { + priority = <tmpl_var name='priority'>; +<tmpl_if name='from_email'> + from = "<tmpl_var name='from_email'>"; +</tmpl_if> +<tmpl_if name='to_email'> + rcpt = "<tmpl_var name='to_email'>"; +</tmpl_if> + +<tmpl_if name='spam_lover'> +<tmpl_if name='virus_lover'> + want_spam = yes; +<tmpl_else> + apply { + CLAM_VIRUS = 1999.0; + JUST_EICAR = 1999.0; + actions { + reject = null; + <tmpl_if name='greylisting'> + <tmpl_if name='greylisting' op='==' value='y'> + greylist = <tmpl_var name='greylisting_level'>; + <tmpl_else> + greylist = null; + </tmpl_if> + </tmpl_if> + } + } + </tmpl_if> +<tmpl_else> + apply { + <tmpl_if name='virus_lover'> + CLAM_VIRUS = -999.0; + JUST_EICAR = -999.0; + <tmpl_else> + CLAM_VIRUS = <tmpl_var name='rspamd_virus_kill_level'>; + JUST_EICAR = <tmpl_var name='rspamd_virus_kill_level'>; + </tmpl_if> + actions { + <tmpl_if name='rspamd_spam_tag_method' op='==' value='rewrite_subject'> + "rewrite subject" = <tmpl_var name='rspamd_spam_tag_level'>; + </tmpl_if> + <tmpl_if name='rspamd_spam_tag_method' op='==' value='add_header'> + "add header" = <tmpl_var name='rspamd_spam_tag_level'>; + </tmpl_if> + reject = <tmpl_var name='rspamd_spam_kill_level'>; + <tmpl_if name='greylisting'> + <tmpl_if name='greylisting' op='==' value='y'> + greylist = <tmpl_var name='greylisting_level'>; + <tmpl_else> + greylist = null; + </tmpl_if> + </tmpl_if> + } + } +</tmpl_if> + +} \ No newline at end of file diff --git a/server/conf/rspamd_wblist.inc.conf.master b/server/conf/rspamd_wblist.inc.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..b614244515b4ea55089fcc9f347796a40766b3c4 --- /dev/null +++ b/server/conf/rspamd_wblist.inc.conf.master @@ -0,0 +1,36 @@ +<tmpl_var name='list_scope'>_wblist-<tmpl_var name='record_id'> { + priority = <tmpl_var name='priority'>; +<tmpl_if name="from"> + from = "<tmpl_var name='from'>"; +</tmpl_if> +<tmpl_if name="recipient"> + rcpt = "<tmpl_var name='recipient'>"; +</tmpl_if> +<tmpl_if name="ip"> + ip = "<tmpl_var name='ip'>"; +</tmpl_if> +<tmpl_if name="hostname"> + hostname = "<tmpl_var name='hostname'>"; +</tmpl_if> +<tmpl_if name='wblist' op='==' value='W'> + want_spam = yes; + apply { + actions { + reject = null; + "add header" = null; + greylist = null; + "rewrite subject" = null; + } + } +</tmpl_else> + apply { + R_DUMMY = 999.0; + actions { + reject = 0.2; + "add header" = 0.1; + greylist = 0.1; + "rewrite subject" = 0.1; + } + } +</tmpl_if> +} \ No newline at end of file diff --git a/server/conf/rspamd_worker-controller.inc.master b/server/conf/rspamd_worker-controller.inc.master new file mode 100644 index 0000000000000000000000000000000000000000..75b744c88380c3ce63394caaadf79653e0fa8815 --- /dev/null +++ b/server/conf/rspamd_worker-controller.inc.master @@ -0,0 +1,8 @@ +# Included from top-level .conf file + +type = "controller"; +count = 1; +password = "<tmpl_var name='rspamd_password'>"; +secure_ip = "127.0.0.1"; +secure_ip = "::1"; +static_dir = "${WWWDIR}"; \ No newline at end of file diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter.master index 8e78c6c83aa87fdeb53f03a42d771aacd0c0b5e5..c5b33e4ba314f0c52af852273318096bf24fb1ff 100644 --- a/server/conf/sieve_filter.master +++ b/server/conf/sieve_filter.master @@ -1,4 +1,18 @@ -require ["fileinto", "regex", "vacation"]; +<tmpl_if name="sieve_script" op="==" value="before"> +# This sieve script is generated by ISPConfig, any changes made will be overwritten. +# You can create and activate a per-user sieve script (manually or via managesieve), +# which will execute after this. + +require ["fileinto", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"]; + +<tmpl_if name="move_junk" op="==" value="y"> +# Move spam to spam folder +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { + fileinto "Junk"; + # Stop here so that we do not reply on spams + stop; +} +</tmpl_if> <tmpl_if name="cc"> # Send a copy of email to @@ -7,33 +21,52 @@ redirect "<tmpl_var name='address'>"; </tmpl_loop> </tmpl_if> -<tmpl_if name="move_junk" op="==" value="y"> +<tmpl_var name='custom_mailfilter'> + +</tmpl_if> +<tmpl_if name="sieve_script" op="==" value="after"> +# This sieve script is generated by ISPConfig, any changes made will be overwritten. +# You can create and activate a per-user sieve script (manually or via managesieve), +# which will execute before this. + +<tmpl_if name="move_junk" op="==" value="a"> # Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { fileinto "Junk"; # Stop here so that we do not reply on spams stop; } </tmpl_if> -<tmpl_var name='custom_mailfilter'> - -keep; - <tmpl_if name="autoresponder" op="==" value="y"> ################################################################# # Autoreply ################################################################# # Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { - fileinto "Junk"; +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { # Stop here so that we do not reply on spams stop; } + +<tmpl_if name="start_date"> +if currentdate :value "ge" "iso8601" "<tmpl_var name='start_date'>" { +</tmpl_if> +<tmpl_if name="end_date"> +if currentdate :value "le" "iso8601" "<tmpl_var name='end_date'>" { +</tmpl_if> + vacation :days 1 :subject "<tmpl_var name='autoresponder_subject'>" - # :addresses ["test@test.int", "till@test.int"] <tmpl_var name='addresses'> "<tmpl_var name='autoresponder_text'>"; -</tmpl_if> \ No newline at end of file + +<tmpl_if name="end_date"> +} +</tmpl_if> +<tmpl_if name="start_date"> +} +</tmpl_if> +</tmpl_if> + +</tmpl_if> diff --git a/server/conf/sieve_filter_1.2.master b/server/conf/sieve_filter_1.2.master deleted file mode 100644 index b1f7fcb87d1802bac7205cde7b15385f1e15dd0e..0000000000000000000000000000000000000000 --- a/server/conf/sieve_filter_1.2.master +++ /dev/null @@ -1,47 +0,0 @@ -require ["fileinto", "regex", "date", "relational", "vacation"]; - -<tmpl_if name="move_junk" op="==" value="y"> -# Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { - fileinto "Junk"; - # Stop here so that we do not reply on spams - stop; -} -</tmpl_if> - -<tmpl_if name="cc"> -# Send a copy of email to -<tmpl_loop name="ccloop"> -redirect "<tmpl_var name='address'>"; -</tmpl_loop> -</tmpl_if> - -<tmpl_var name='custom_mailfilter'> - -keep; - -<tmpl_if name="autoresponder" op="==" value="y"> -################################################################# -# Autoreply -################################################################# - -# Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { - # Stop here so that we do not reply on spams - stop; -} - -<tmpl_if name="autoresponder_date_limit"> -if allof(currentdate :value "ge" "iso8601" "<tmpl_var name='start_date'>", currentdate :value "le" "iso8601" "<tmpl_var name='end_date'>") { -</tmpl_if> - -vacation :days 1 - :subject "<tmpl_var name='autoresponder_subject'>" - <tmpl_var name='addresses'> - "<tmpl_var name='autoresponder_text'>"; - -<tmpl_if name="autoresponder_date_limit"> -} -</tmpl_if> -</tmpl_if> - diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index a259c29906fcce09a52e11daa22b5ad2ebb12740..8cc87515b1db714d763578b457b8ca7581145a6e 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -12,6 +12,18 @@ <tmpl_loop name='vhosts'> <VirtualHost {tmpl_var name='ip_address'}:{tmpl_var name='port'}> +<tmpl_if name='use_proxy_protocol' op='==' value='y'> +<tmpl_if name='apache_version' op='>=' value='2.4.30' format='version'> + <IfModule mod_remoteip.c> + RemoteIPProxyProtocol On + </IfModule> + </tmpl_else> + <IfModule mod_proxy_protocol.c> + ProxyProtocol On + </IfModule> +</tmpl_if> +</tmpl_if> + <tmpl_hook name='apache2_vhost:vhost_header'> <tmpl_if name='php' op='==' value='suphp'> DocumentRoot <tmpl_var name='web_document_root'> @@ -38,12 +50,12 @@ ServerAdmin webmaster@<tmpl_var name='domain'> <tmpl_if name='ssl_enabled'> -<tmpl_if name='enable_http2' op='==' value='y'> - Protocols h2 http/1.1 - SSLProtocol All -SSLv2 -SSLv3 + <IfModule mod_http2.c> + Protocols h2 http/1.1 + </IfModule> + SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS' </tmpl_if> -</tmpl_if> <tmpl_if name='logging' op='==' value='anon'> ErrorLog "|/usr/local/ispconfig/server/scripts/vlogger -e -n -P -t \"error.log\" /var/log/ispconfig/httpd/<tmpl_var name='domain'>" @@ -67,7 +79,7 @@ <IfModule mod_ssl.c> <tmpl_if name='ssl_enabled'> SSLEngine on - SSLProtocol All -SSLv2 -SSLv3 + SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 # SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder on # <IfModule mod_headers.c> @@ -75,15 +87,15 @@ # </IfModule> SSLCertificateFile <tmpl_var name='ssl_crt_file'> SSLCertificateKeyFile <tmpl_var name='ssl_key_file'> -<tmpl_if name='has_bundle_cert'> - <tmpl_if name='apache_version' op='<' value='2.4.8' format='version'> - SSLCertificateChainFile <tmpl_var name='ssl_bundle_file'> - </tmpl_if> <tmpl_if name='apache_version' op='>=' value='2.4' format='version'> SSLUseStapling on SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors off </tmpl_if> +<tmpl_if name='has_bundle_cert'> + <tmpl_if name='apache_version' op='<' value='2.4.8' format='version'> + SSLCertificateChainFile <tmpl_var name='ssl_bundle_file'> + </tmpl_if> </tmpl_if> </tmpl_if> </IfModule> @@ -93,7 +105,7 @@ <FilesMatch ".+\.ph(p[345]?|t|tml)$"> SetHandler None </FilesMatch> - Options +FollowSymLinks + Options +SymlinksIfOwnerMatch AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all granted @@ -125,7 +137,7 @@ <FilesMatch ".+\.ph(p[345]?|t|tml)$"> SetHandler None </FilesMatch> - Options +FollowSymLinks + Options +SymlinksIfOwnerMatch AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all granted @@ -215,6 +227,7 @@ <tmpl_if name='cgi' op='==' value='y'> # cgi enabled <Directory {tmpl_var name='document_root'}/cgi-bin> + AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all granted <tmpl_else> @@ -359,18 +372,22 @@ </Directory> <Directory {tmpl_var name='web_document_root_www'}> <FilesMatch "\.php[345]?$"> - SetHandler php-fcgi + <If "-f '%{REQUEST_FILENAME}'"> + SetHandler php-fcgi + </If> </FilesMatch> </Directory> <Directory {tmpl_var name='web_document_root'}> <FilesMatch "\.php[345]?$"> - SetHandler php-fcgi + <If "-f '%{REQUEST_FILENAME}'"> + SetHandler php-fcgi + </If> </FilesMatch> </Directory> Action php-fcgi /php-fcgi virtual Alias /php-fcgi {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} <tmpl_if name='use_tcp'> - FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization -pass-header Content-Type + FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization -pass-header Content-Type </tmpl_if> <tmpl_if name='use_socket'> FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -socket <tmpl_var name='fpm_socket'> -pass-header Authorization -pass-header Content-Type @@ -378,16 +395,20 @@ </IfModule> <IfModule mod_proxy_fcgi.c> <tmpl_if name='php_fpm_chroot' op='==' value='y'> - ProxyFCGISetEnvIf "true" DOCUMENT_ROOT "<tmpl_var name='php_fpm_chroot_web_folder'>" - ProxyFCGISetEnvIf "true" CONTEXT_DOCUMENT_ROOT "%{reqenv:DOCUMENT_ROOT}" - ProxyFCGISetEnvIf "true" HOME "%{reqenv:DOCUMENT_ROOT}" - ProxyFCGISetEnvIf "true" SCRIPT_FILENAME "%{reqenv:DOCUMENT_ROOT}%{reqenv:SCRIPT_NAME}" + <IfVersion >= 2.4.26> + ProxyFCGISetEnvIf "true" DOCUMENT_ROOT "<tmpl_var name='php_fpm_chroot_web_folder'>" + ProxyFCGISetEnvIf "true" CONTEXT_DOCUMENT_ROOT "%{reqenv:DOCUMENT_ROOT}" + ProxyFCGISetEnvIf "true" HOME "%{reqenv:DOCUMENT_ROOT}" + ProxyFCGISetEnvIf "true" SCRIPT_FILENAME "%{reqenv:DOCUMENT_ROOT}%{reqenv:SCRIPT_NAME}" + </IfVersion> </tmpl_if> <tmpl_if name='use_tcp'> #ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1 <Directory {tmpl_var name='web_document_root'}> <FilesMatch "\.php[345]?$"> + <If "-f '%{REQUEST_FILENAME}'"> SetHandler "proxy:fcgi://127.0.0.1:<tmpl_var name='fpm_port'>" + </If> </FilesMatch> </Directory> </tmpl_if> @@ -395,7 +416,9 @@ #ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix://<tmpl_var name='fpm_socket'>|fcgi://localhost/<tmpl_var name='web_document_root'>/$1 <Directory {tmpl_var name='web_document_root'}> <FilesMatch "\.php[345]?$"> + <If "-f '%{REQUEST_FILENAME}'"> SetHandler "proxy:unix:<tmpl_var name='fpm_socket'>|fcgi://localhost" + </If> </FilesMatch> </Directory> </tmpl_if> @@ -490,9 +513,9 @@ RewriteCond %{REQUEST_URI} !^/php-fcgi/ RewriteCond %{REQUEST_URI} !^<tmpl_var name='rewrite_target'> </tmpl_if> - + RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'><tmpl_if name="rewrite_add_path" op="==" value="y">$1</tmpl_if> <tmpl_var name='rewrite_type'> - + </tmpl_loop> <tmpl_if name='ssl_enabled'> <tmpl_else> @@ -528,7 +551,16 @@ # WEBDAV END </IfModule> -<tmpl_var name='apache_directives'> +<tmpl_if name='ssl_enabled'> + <tmpl_var name='apache_directives'> +<tmpl_else> + <tmpl_if name='rewrite_to_https' op='==' value='y'> + # skipping apache_directives, as that will be handled by the ssl vhost + <tmpl_else> + <tmpl_var name='apache_directives'> + </tmpl_if> +</tmpl_if> + <tmpl_hook name='apache2_vhost:vhost_footer'> </VirtualHost> diff --git a/server/cron.php b/server/cron.php index 6f74bd35707e283616a2a11800c28c422ea5c011..0fe1dfc6cfbaf380b49a8780708080fe884bc4dc 100644 --- a/server/cron.php +++ b/server/cron.php @@ -33,24 +33,33 @@ require SCRIPT_PATH."/lib/config.inc.php"; // Check whether another instance of this script is already running $lockFile = $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock'; -if (is_file($lockFile)) { +if(is_file($lockFile)) { clearstatcache(); - - // Maybe we hit a deadlock and the lock file is no longer relevant - if(filemtime($lockFile) > time() - 86400) { // 86400 seconds = 1 day - if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - The cron lock file is older than one day.' . "\n"; - exit; - } - - // Check if the process id we have in the lock file is still present + +// Check if the process id we have in the lock file is still present $pid = trim(file_get_contents($lockFile)); if(preg_match('/^[0-9]+$/', $pid)) { - if(file_exists('/proc/' . $pid)) { - if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of server.php running with pid ' . $pid . '.' . "\n"; - exit; + if(is_dir('/proc/' . $pid)) { + if(file_exists('/proc/' . $pid . '/cmdline')) { + if(strpos(file_get_contents('/proc/' . $pid . '/cmdline'), 'cron.php') !== false) { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of cron.php running with pid ' . $pid . '.' . "\n"; + exit; + } else { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is a process running with pid ' . $pid . ' but it seems not to be cron.php, continuing.' . "\n"; + } + } else { + if(filemtime($lockFile) < time() - 86400) { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of cron.php running with pid ' . $pid . ' but process is older than 1 day. Continuing.' . "\n"; + } else { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of cron.php running with pid ' . $pid . '.' . "\n"; + exit; + } + } + } else { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n"; + } } - if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n"; } // Set Lockfile @@ -69,10 +78,9 @@ $conf['server_id'] = intval($conf['server_id']); // Load required base-classes -$app->uses('ini_parser,file,services,getconf,system,cron,functions'); +$app->uses('modules,ini_parser,file,services,getconf,system,cron,functions,plugins'); $app->load('libdatetime,cronjob'); - // read all cron jobs $path = SCRIPT_PATH . '/lib/classes/cron.d'; if(!is_dir($path)) die('Cron path missing!'); @@ -114,10 +122,12 @@ foreach($files as $f) { } unset($files); +$app->services->processDelayedActions(); + // Remove lock @unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock'); $app->log('Remove Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock', LOGLEVEL_DEBUG); -if($conf['log_priority'] <= LOGLEVEL_DEBUG) die("finished.\n"); +if($conf['log_priority'] <= LOGLEVEL_DEBUG) die("finished cron run.\n"); ?> diff --git a/server/cron_debug.php b/server/cron_debug.php index 615a56d7434b64912d6b114874d20164db0a7117..de561577c8befa20b7ae35632b90f03e211ce36a 100644 --- a/server/cron_debug.php +++ b/server/cron_debug.php @@ -39,7 +39,7 @@ ini_set('error_reporting', E_ALL & ~E_NOTICE); $conf['server_id'] = intval($conf['server_id']); // Load required base-classes -$app->uses('ini_parser,file,services,getconf,system,cron,functions'); +$app->uses('modules,plugins,ini_parser,file,services,getconf,system,cron,functions'); $app->load('libdatetime,cronjob'); // Path settings @@ -61,12 +61,8 @@ if(preg_match('/^\d+\-(.*)$/', $name, $match)) $name = $match[1]; // strip numer include $path . '/' . $cronjob_file; $class_name = 'cronjob_' . $name; $cronjob = new $class_name(); +$cronjob->run(true); -$cronjob->onPrepare(); -$cronjob->onBeforeRun(); -$cronjob->onRunJob(); -$cronjob->onAfterRun(); - -die("finished.\n"); +die("finished cron debug.\n"); ?> diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index 86df2a86f6b43181d8ba137a326d8cbf3fd643de..ec8b1668d19041b9ebd1627ce951f5cd103d7bab 100644 --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -36,6 +36,10 @@ class app { var $loaded_modules = array(); var $loaded_plugins = array(); var $_calling_script = ''; + /** + * @var db + */ + public $db; function __construct() { @@ -69,6 +73,22 @@ class app { } + public function __get($name) { + $valid_names = array('functions', 'getconf', 'letsencrypt', 'modules', 'plugins', 'services', 'system'); + if(!in_array($name, $valid_names)) { + trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); + } + if(property_exists($this, $name)) { + return $this->{$name}; + } + $this->uses($name); + if(property_exists($this, $name)) { + return $this->{$name}; + } else { + trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); + } + } + function setCaller($caller) { $this->_calling_script = $caller; } diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php index 9b601d90b341d5f7722da5468a55e74d1961da24..922f32e61288664e8b8dd464e4f3d3f2e8cb9d99 100644 --- a/server/lib/classes/aps_installer.inc.php +++ b/server/lib/classes/aps_installer.inc.php @@ -395,7 +395,7 @@ class ApsInstaller extends ApsBase mkdir($this->document_root, 0777, true); } } else { - exec("rm -Rf ".escapeshellarg($this->local_installpath).'*'); + $app->system->exec_safe("rm -Rf ?*", $this->local_installpath); } } else { mkdir($this->local_installpath, 0777, true); @@ -412,7 +412,7 @@ class ApsInstaller extends ApsBase || ($this->extractZip($this->packages_dir.'/'.$task['path'], 'scripts', $this->local_installpath.'install_scripts/') === false) ) { // Clean already extracted data - exec("rm -Rf ".escapeshellarg($this->local_installpath).'*'); + $app->system->exec_safe("rm -Rf ?*", $this->local_installpath); throw new Exception('Unable to extract the package '.$task['path']); } @@ -423,11 +423,11 @@ class ApsInstaller extends ApsBase $owner_res = $app->db->queryOneRecord("SELECT system_user, system_group FROM web_domain WHERE domain = ?", $main_domain['value']); $this->file_owner_user = $owner_res['system_user']; $this->file_owner_group = $owner_res['system_group']; - exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + $app->system->exec_safe('chown -R ?:? ?', $this->file_owner_user, $this->file_owner_group, $this->local_installpath); //* Chown stats directory back if(is_dir($this->local_installpath.'stats')) { - exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats')); + $app->system->exec_safe('chown -R root:root ?', $this->local_installpath.'stats'); } } } @@ -544,7 +544,6 @@ class ApsInstaller extends ApsBase chmod($this->local_installpath.'install_scripts/'.$cfgscript, 0755); // Change to the install folder (import for the exec() below!) - //exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); chdir($this->local_installpath.'install_scripts/'); // Set the enviroment variables @@ -554,7 +553,9 @@ class ApsInstaller extends ApsBase $shell_retcode = true; $shell_ret = array(); - exec('php '.escapeshellarg($this->local_installpath.'install_scripts/'.$cfgscript).' install 2>&1', $shell_ret, $shell_retcode); + $app->system->exec_safe('php ? install 2>&1', $this->local_installpath.'install_scripts/'.$cfgscript); + $shell_ret = $app->system->last_exec_out(); + $shell_retcode = $app->system->last_exec_retcode(); $shell_ret = array_filter($shell_ret); $shell_ret_str = implode("\n", $shell_ret); @@ -566,11 +567,11 @@ class ApsInstaller extends ApsBase else { // The install succeeded, chown newly created files too - exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + $app->system->exec_safe('chown -R ?:? ?', $this->file_owner_user, $this->file_owner_group, $this->local_installpath); //* Chown stats directory back if(is_dir($this->local_installpath.'stats')) { - exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats')); + $app->system->exec_safe('chown -R root:root ?', $this->local_installpath.'stats'); } $app->dbmaster->query('UPDATE aps_instances SET instance_status = ? WHERE id = ?', INSTANCE_SUCCESS, $task['instance_id']); @@ -597,8 +598,9 @@ class ApsInstaller extends ApsBase */ private function cleanup($task, $sxe) { + global $app; chdir($this->local_installpath); - exec("rm -Rf ".escapeshellarg($this->local_installpath).'install_scripts'); + $app->system->exec_safe("rm -Rf ?", $this->local_installpath.'install_scripts'); } diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..485bd996d3b2059401e61dc1a1360d71a69f0b81 --- /dev/null +++ b/server/lib/classes/backup.inc.php @@ -0,0 +1,1452 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * Class backup + * All code that makes actual backup and restore of web files and database is here. + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @see backup::run_backup() to run a single backup + * @see backup::run_all_backups() to run all backups + * @see backup::restoreBackupDatabase() to restore a database + * @see backup::restoreBackupWebFiles() to restore web files + */ +class backup +{ + /** + * Returns file extension for specified backup format + * @param string $format backup format + * @return string|null + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function getBackupDbExtension($format) + { + $prefix = '.sql'; + switch ($format) { + case 'gzip': + return $prefix . '.gz'; + case 'bzip2': + return $prefix . '.bz2'; + case 'xz': + return $prefix . '.xz'; + case 'zip': + case 'zip_bzip2': + return '.zip'; + case 'rar': + return '.rar'; + } + if (strpos($format, "7z_") === 0) { + return $prefix . '.7z'; + } + return null; + } + + /** + * Returns file extension for specified backup format + * @param string $format backup format + * @return string|null + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function getBackupWebExtension($format) + { + switch ($format) { + case 'tar_gzip': + return '.tar.gz'; + case 'tar_bzip2': + return '.tar.bz2'; + case 'tar_xz': + return '.tar.xz'; + case 'zip': + case 'zip_bzip2': + return '.zip'; + case 'rar': + return '.rar'; + } + if (strpos($format, "tar_7z_") === 0) { + return '.tar.7z'; + } + return null; + } + + /** + * Sets file ownership to $web_user for all files and folders except log, ssl and web/stats + * @param string $web_document_root + * @param string $web_user + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function restoreFileOwnership($web_document_root, $web_user) + { + global $app; + + $app->log('Restoring permissions for ' . $web_document_root, LOGLEVEL_DEBUG); + $app->system->exec_safe('cd ? && find . -not -path "./web/stats/*" -and -not -path "./log" -and -not -path "./log/*" -and -not -path "./ssl" -and -not -path "./ssl/*" -and -not -path "." -exec chown ?:? {} \;', $web_document_root, $web_user, $web_user); + } + + /** + * Returns default backup format used in previous versions of ISPConfig + * @param string $backup_mode can be 'userzip' or 'rootgz' + * @param string $backup_type can be 'web' or 'mysql' + * @return string + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function getDefaultBackupFormat($backup_mode, $backup_type) + { + //We have a backup from old version of ISPConfig + switch ($backup_type) { + case 'mysql': + return 'gzip'; + case 'web': + return ($backup_mode == 'userzip') ? 'zip' : 'tar_gzip'; + } + return ""; + } + + /** + * Restores a database backup. + * The backup directory must be mounted before calling this method. + * @param string $backup_format + * @param string $password password for encrypted backup or empty string if archive is not encrypted + * @param string $backup_dir + * @param string $filename + * @param string $backup_mode + * @param string $backup_type + * @return bool true if succeeded + * @see backup_plugin::mount_backup_dir() + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + public static function restoreBackupDatabase($backup_format, $password, $backup_dir, $filename, $backup_mode, $backup_type) + { + global $app; + + //* Load sql dump into db + include 'lib/mysql_clientdb.conf'; + + if (empty($backup_format)) { + $backup_format = self::getDefaultBackupFormat($backup_mode, $backup_type); + } + $extension = self::getBackupDbExtension($backup_format); + if (!empty($extension)) { + //Replace dots for preg_match search + $extension = str_replace('.', '\.', $extension); + } + $success = false; + $full_filename = $backup_dir . '/' . $filename; + + $app->log('Restoring MySQL backup ' . $full_filename . ', backup format "' . $backup_format . '", backup mode "' . $backup_mode . '"', LOGLEVEL_DEBUG); + + if (file_exists($full_filename) && !empty($extension)) { + preg_match('@^(manual-)?db_(?P<db>.+)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}' . $extension . '$@', $filename, $matches); + if (!isset($matches['db']) || empty($matches['db'])) { + $app->log('Failed to detect database name during restore of ' . $full_filename, LOGLEVEL_ERROR); + return false; + } + $db_name = $matches['db']; + switch ($backup_format) { + case "gzip": + $command = "gunzip --stdout ? | mysql -h ? -u ? -p? ?"; + break; + case "zip": + case "zip_bzip2": + $command = "unzip -qq -p -P " . escapeshellarg($password) . " ? | mysql -h ? -u ? -p? ?"; + break; + case "bzip2": + $command = "bunzip2 -q -c ? | mysql -h ? -u ? -p? ?"; + break; + case "xz": + $command = "unxz -q -q -c ? | mysql -h ? -u ? -p? ?"; + break; + case "rar": + //First, test that the archive is correct and we have a correct password + $options = self::getUnrarOptions($password); + $app->system->exec_safe("rar t " . $options . " ?", $full_filename); + if ($app->system->last_exec_retcode() == 0) { + $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG); + $command = "rar x " . $options. " ? | mysql -h ? -u ? -p? ?"; + } + break; + } + if (strpos($backup_format, "7z_") === 0) { + $options = self::get7zDecompressOptions($password); + //First, test that the archive is correct and we have a correct password + $app->system->exec_safe("7z t " . $options . " ?", $full_filename); + if ($app->system->last_exec_retcode() == 0) { + $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG); + $command = "7z x " . $options . " -so ? | mysql -h ? -u ? -p? ?"; + } else + $command = null; + } + if (!empty($command)) { + /** @var string $clientdb_host */ + /** @var string $clientdb_user */ + /** @var string $clientdb_password */ + $app->system->exec_safe($command, $full_filename, $clientdb_host, $clientdb_user, $clientdb_password, $db_name); + $retval = $app->system->last_exec_retcode(); + if ($retval == 0) { + $app->log('Restored MySQL backup ' . $full_filename, LOGLEVEL_DEBUG); + $success = true; + } else { + $app->log('Failed to restore web backup ' . $full_filename . ', exit code ' . $retval, LOGLEVEL_ERROR); + } + } else { + $app->log('Archive test failed for ' . $full_filename, LOGLEVEL_DEBUG); + } + } else { + $app->log('Failed to process MySQL backup ' . $full_filename, LOGLEVEL_ERROR); + } + unset($clientdb_host); + unset($clientdb_user); + unset($clientdb_password); + + return $success; + } + + /** + * Restores web files backup. + * The backup directory must be mounted before calling this method. + * @param string $backup_format + * @param string $password password for encrypted backup or empty string if archive is not encrypted + * @param string $backup_dir + * @param string $filename + * @param string $backup_mode + * @param string $backup_type + * @param string $web_root + * @param string $web_user + * @param string $web_group + * @return bool true if succeed + * @see backup_plugin::mount_backup_dir() + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + public static function restoreBackupWebFiles($backup_format, $password, $backup_dir, $filename, $backup_mode, $backup_type, $web_root, $web_user, $web_group) + { + global $app; + + if (empty($backup_format)) { + $backup_format = self::getDefaultBackupFormat($backup_mode, $backup_type); + } + $full_filename = $backup_dir . '/' . $filename; + $result = false; + + $app->log('Restoring web backup ' . $full_filename . ', backup format "' . $backup_format . '", backup mode "' . $backup_mode . '"', LOGLEVEL_DEBUG); + + if (!empty($backup_format)) { + $app->system->web_folder_protection($web_root, false); + if ($backup_mode == 'userzip' || $backup_mode == 'rootgz') { + $user_mode = $backup_mode == 'userzip'; + $filename = $user_mode ? ($web_root . '/backup/' . $filename) : $full_filename; + + if (file_exists($full_filename) && $web_root != '' && $web_root != '/' && !stristr($full_filename, '..') && !stristr($full_filename, 'etc')) { + if ($user_mode) { + if (file_exists($filename)) rename($filename, $filename . '.bak'); + copy($full_filename, $filename); + chgrp($filename, $web_group); + } + $user_prefix_cmd = $user_mode ? 'sudo -u ' . escapeshellarg($web_user) : ''; + $success = false; + $retval = 0; + switch ($backup_format) { + case "tar_gzip": + case "tar_bzip2": + case "tar_xz": + $command = $user_prefix_cmd . ' tar xf ? --directory ?'; + $app->system->exec_safe($command, $filename, $web_root); + $retval = $app->system->last_exec_retcode(); + $success = ($retval == 0 || $retval == 2); + break; + case "zip": + case "zip_bzip2": + $command = $user_prefix_cmd . ' unzip -qq -P ' . escapeshellarg($password) . ' -o ? -d ? 2> /dev/null'; + $app->system->exec_safe($command, $filename, $web_root); + $retval = $app->system->last_exec_retcode(); + /* + * Exit code 50 can happen when zip fails to overwrite files that do not + * belong to selected user, so we can consider this situation as success + * with warnings. + */ + $success = ($retval == 0 || $retval == 50); + if ($success) { + self::restoreFileOwnership($web_root, $web_user); + } + break; + case 'rar': + $options = self::getUnRarOptions($password); + //First, test that the archive is correct and we have a correct password + $command = $user_prefix_cmd . " rar t " . $options . " ? ?"; + //Rar requires trailing slash + $app->system->exec_safe($command, $filename, $web_root . '/'); + $success = ($app->system->last_exec_retcode() == 0); + if ($success) { + //All good, now we can extract + $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG); + $command = $user_prefix_cmd . " rar x " . $options . " ? ?"; + //Rar requires trailing slash + $app->system->exec_safe($command, $filename, $web_root . '/'); + $retval = $app->system->last_exec_retcode(); + //Exit code 9 can happen when we have file permission errors, in this case some + //files will be skipped during extraction. + $success = ($retval == 0 || $retval == 1 || $retval == 9); + } else { + $app->log('Archive test failed for ' . $full_filename, LOGLEVEL_DEBUG); + } + break; + } + if (strpos($backup_format, "tar_7z_") === 0) { + $options = self::get7zDecompressOptions($password); + //First, test that the archive is correct and we have a correct password + $command = $user_prefix_cmd . " 7z t " . $options . " ?"; + $app->system->exec_safe($command, $filename); + $success = ($app->system->last_exec_retcode() == 0); + if ($success) { + //All good, now we can extract + $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG); + $command = $user_prefix_cmd . " 7z x " . $options . " -so ? | tar xf - --directory ?"; + $app->system->exec_safe($command, $filename, $web_root); + $retval = $app->system->last_exec_retcode(); + $success = ($retval == 0 || $retval == 2); + } else { + $app->log('Archive test failed for ' . $full_filename, LOGLEVEL_DEBUG); + } + } + if ($user_mode) { + unlink($filename); + if (file_exists($filename . '.bak')) rename($filename . '.bak', $filename); + } + if ($success) { + $app->log('Restored web backup ' . $full_filename, LOGLEVEL_DEBUG); + $result = true; + } else { + $app->log('Failed to restore web backup ' . $full_filename . ', exit code ' . $retval, LOGLEVEL_ERROR); + } + } + } else { + $app->log('Failed to restore web backup ' . $full_filename . ', backup mode "' . $backup_mode . '" not recognized.', LOGLEVEL_DEBUG); + } + $app->system->web_folder_protection($web_root, true); + } else { + $app->log('Failed to restore web backup ' . $full_filename . ', backup format not recognized.', LOGLEVEL_DEBUG); + } + return $result; + } + + /** + * Returns a compression method, for example returns bzip2 for tar_7z_bzip2 + * @param string $format + * @return false|string + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function getCompressionMethod($format) + { + $pos = strrpos($format, "_"); + return substr($format, $pos + 1); + } + + /** + * Returns default options for compressing rar + * @param string $backup_tmp temporary directory that rar can use + * @param string|null $password backup password if any + * @return string options for rar + */ + protected static function getRarOptions($backup_tmp, $password) + { + /** + * All rar options are listed here: + * https://documentation.help/WinRAR/HELPCommands.htm + * https://documentation.help/WinRAR/HELPSwitches.htm + * Some compression profiles and different versions of rar may use different default values, so it's better + * to specify everything explicitly. + * The difference between compression methods is not big in terms of file size, but is huge in terms of + * CPU and RAM consumption. Therefore it makes sense only to use fastest the compression method. + */ + $options = array( + /** + * Start with fastest compression method (least compressive) + */ + '-m1', + + /** + * Disable solid archiving. + * Never use solid archive: it's very slow and requires to read and sort all files first + */ + '-S-', + + /** + * Ignore default profile and environment variables + * https://documentation.help/WinRAR/HELPSwCFGm.htm + */ + '-CFG-', + + /** + * Disable error messages output + * https://documentation.help/WinRAR/HELPSwINUL.htm + */ + '-inul', + + /** + * Lock archive: this switch prevents any further archive modifications by rar + * https://documentation.help/WinRAR/HELPSwK.htm + */ + '-k', + + /** + * Create archive in RAR 5.0 format + * https://documentation.help/WinRAR/HELPSwMA.htm + */ + '-ma', + + /** + * Set dictionary size to 16Mb. + * When archiving, rar needs about 6x memory of specified dictionary size. + * https://documentation.help/WinRAR/HELPSwMD.htm + */ + '-md16m', + + /** + * Use only one CPU thread + * https://documentation.help/WinRAR/HELPSwMT.htm + */ + '-mt1', + + /** + * Use this switch when archiving to save file security information and when extracting to restore it. + * It stores file owner, group, file permissions and audit information. + * https://documentation.help/WinRAR/HELPSwOW.htm + */ + '-ow', + + /** + * Overwrite all + * https://documentation.help/WinRAR/HELPSwO.htm + */ + '-o+', + + /** + * Exclude base folder from names. + * Required for correct directory structure inside archive + * https://documentation.help/WinRAR/HELPSwEP1.htm + */ + '-ep1', + + /** + * Never add quick open information. + * This information is useful only if you want to read the contents of archive (list of files). + * Besides it can increase the archive size. As we need the archive only for future complete extraction, + * there's no need to use this information at all. + * https://documentation.help/WinRAR/HELPSwQO.htm + */ + '-qo-', + + /** + * Set lowest task priority (1) and 10ms sleep time between read/write operations. + * https://documentation.help/WinRAR/HELPSwRI.htm + */ + '-ri1:10', + + /** + * Temporary folder + * https://documentation.help/WinRAR/HELPSwW.htm + */ + '-w' . escapeshellarg($backup_tmp), + + /** + * Assume Yes on all queries + * https://documentation.help/WinRAR/HELPSwY.htm + */ + '-y', + ); + + $options = implode(" ", $options); + + if (!empty($password)) { + /** + * Encrypt both file data and headers + * https://documentation.help/WinRAR/HELPSwHP.htm + */ + $options .= ' -HP' . escapeshellarg($password); + } + return $options; + } + + /** + * Returns default options for decompressing rar + * @param string|null $password backup password if any + * @return string options for rar + */ + protected static function getUnRarOptions($password) + { + /** + * All rar options are listed here: + * https://documentation.help/WinRAR/HELPCommands.htm + * https://documentation.help/WinRAR/HELPSwitches.htm + * Some compression profiles and different versions of rar may use different default values, so it's better + * to specify everything explicitly. + * The difference between compression methods is not big in terms of file size, but is huge in terms of + * CPU and RAM consumption. Therefore it makes sense only to use fastest the compression method. + */ + $options = array( + /** + * Ignore default profile and environment variables + * https://documentation.help/WinRAR/HELPSwCFGm.htm + */ + '-CFG-', + + /** + * Disable error messages output + * https://documentation.help/WinRAR/HELPSwINUL.htm + */ + '-inul', + + /** + * Use only one CPU thread + * https://documentation.help/WinRAR/HELPSwMT.htm + */ + '-mt1', + + /** + * Use this switch when archiving to save file security information and when extracting to restore it. + * It stores file owner, group, file permissions and audit information. + * https://documentation.help/WinRAR/HELPSwOW.htm + */ + '-ow', + + /** + * Overwrite all + * https://documentation.help/WinRAR/HELPSwO.htm + */ + '-o+', + + /** + * Set lowest task priority (1) and 10ms sleep time between read/write operations. + * https://documentation.help/WinRAR/HELPSwRI.htm + */ + '-ri1:10', + + /** + * Assume Yes on all queries + * https://documentation.help/WinRAR/HELPSwY.htm + */ + '-y', + ); + + $options = implode(" ", $options); + + if (!empty($password)) { + $options .= ' -P' . escapeshellarg($password); + } + return $options; + } + + /** + * Returns compression options for 7z + * @param string $format compression format used in 7z + * @param string $password password if any + * @return string + */ + protected static function get7zCompressOptions($format, $password) + { + $method = self::getCompressionMethod($format); + /** + * List of 7z options is here: + * https://linux.die.net/man/1/7z + * https://sevenzip.osdn.jp/chm/cmdline/syntax.htm + * https://sevenzip.osdn.jp/chm/cmdline/switches/ + */ + $options = array( + /** + * Use 7z format (container) + */ + '-t7z', + + /** + * Compression method (LZMA, LZMA2, etc.) + * https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm + */ + '-m0=' . $method, + + /** + * Fastest compression method + */ + '-mx=1', + + /** + * Disable solid mode + */ + '-ms=off', + + /** + * Disable multithread mode, use less CPU + */ + '-mmt=off', + + /** + * Disable multithread mode for filters, use less CPU + */ + '-mmtf=off', + + /** + * Disable progress indicator + */ + '-bd', + + /** + * Assume yes on all queries + * https://sevenzip.osdn.jp/chm/cmdline/switches/yes.htm + */ + '-y', + ); + $options = implode(" ", $options); + switch (strtoupper($method)) { + case 'LZMA': + case 'LZMA2': + /** + * Dictionary size is 5Mb. + * 7z can use 12 times more RAM + */ + $options .= ' -md=5m'; + break; + case 'PPMD': + /** + * Dictionary size is 64Mb. + * It's the maximum RAM that 7z is allowed to use. + */ + $options .= ' -mmem=64m'; + break; + } + if (!empty($password)) { + $options .= ' -mhe=on -p' . escapeshellarg($password); + } + return $options; + } + + /** + * Returns decompression options for 7z + * @param string $password password if any + * @return string + */ + protected static function get7zDecompressOptions($password) + { + /** + * List of 7z options is here: + * https://linux.die.net/man/1/7z + * https://sevenzip.osdn.jp/chm/cmdline/syntax.htm + * https://sevenzip.osdn.jp/chm/cmdline/switches/ + */ + $options = array( + /** + * Disable multithread mode, use less CPU + */ + '-mmt=off', + + /** + * Disable progress indicator + */ + '-bd', + + /** + * Assume yes on all queries + * https://sevenzip.osdn.jp/chm/cmdline/switches/yes.htm + */ + '-y', + ); + $options = implode(" ", $options); + if (!empty($password)) { + $options .= ' -p' . escapeshellarg($password); + } + return $options; + } + + /** + * Clears expired backups. + * The backup directory must be mounted before calling this method. + * @param integer $server_id + * @param integer $web_id id of the website + * @param integer $max_backup_copies number of backup copies to keep, all files beyond the limit will be erased + * @param string $backup_dir directory to scan + * @return bool + * @see backup_plugin::backups_garbage_collection() call this method first + * @see backup_plugin::mount_backup_dir() + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function clearBackups($server_id, $web_id, $max_backup_copies, $backup_dir) + { + global $app; + + $files = self::get_files($backup_dir); + usort($files, function ($a, $b) use ($backup_dir) { + $time_a = filemtime($backup_dir . '/' . $a); + $time_b = filemtime($backup_dir . '/' . $b); + return ($time_a > $time_b) ? -1 : 1; + }); + + $db_list = array($app->db); + if ($app->db->dbHost != $app->dbmaster->dbHost) + array_push($db_list, $app->dbmaster); + + //Delete old files that are beyond the limit + for ($n = $max_backup_copies; $n < sizeof($files); $n++) { + $filename = $files[$n]; + $full_filename = $backup_dir . '/' . $filename; + $app->log('Backup file ' . $full_filename . ' is beyond the limit of ' . $max_backup_copies . " copies and will be deleted from disk and database", LOGLEVEL_DEBUG); + $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; + foreach ($db_list as $db) { + $db->query($sql, $server_id, $web_id, $filename); + } + @unlink($full_filename); + } + return true; + } + + /** + * Garbage collection: deletes records from database about files that do not exist and deletes untracked files. + * The backup directory must be mounted before calling this method. + * @param int $server_id + * @param string|null $backup_type if defined then process only backups of this type + * @param string|null $domain_id if defined then process only backups that belong to this domain + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @see backup_plugin::mount_backup_dir() + */ + protected static function backups_garbage_collection($server_id, $backup_type = null, $domain_id = null) + { + global $app; + + //First check that all records in database have related files and delete records without files on disk + $args = array(); + $args_domains = array(); + $server_config = $app->getconf->get_server_config($server_id, 'server'); + $backup_dir = trim($server_config['backup_dir']); + $sql = "SELECT * FROM web_backup WHERE server_id = ?"; + $sql_domains = "SELECT domain_id,system_user,system_group,backup_interval FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias')"; + array_push($args, $server_id); + array_push($args_domains, $server_id); + if (!empty($backup_type)) { + $sql .= " AND backup_type = ?"; + array_push($args, $backup_type); + } + if (!empty($domain_id)) { + $sql .= " AND parent_domain_id = ?"; + $sql_domains .= " AND domain_id = ?"; + array_push($args, $domain_id); + array_push($args_domains, $domain_id); + } + array_unshift($args, $sql); + array_unshift($args_domains, $sql_domains); + + $db_list = array($app->db); + if ($app->db->dbHost != $app->dbmaster->dbHost) + array_push($db_list, $app->dbmaster); + + foreach ($db_list as $db) { + $backups = call_user_func_array(array($db, "queryAllRecords"), $args); + foreach ($backups as $backup) { + $backup_file = $backup_dir . '/web' . $backup['parent_domain_id'] . '/' . $backup['filename']; + if (!is_file($backup_file)) { + $app->log('Backup file ' . $backup_file . ' does not exist on disk, deleting this entry from database', LOGLEVEL_DEBUG); + $sql = "DELETE FROM web_backup WHERE backup_id = ?"; + $db->query($sql, $backup['backup_id']); + } + } + } + + foreach ($db_list as $db) { + $domains = call_user_func_array(array($db, "queryAllRecords"), $args_domains); + foreach ($domains as $rec) { + $domain_id = $rec['domain_id']; + $domain_backup_dir = $backup_dir . '/web' . $domain_id; + $files = self::get_files($domain_backup_dir); + + //Delete files that are in backup directory, but do not exist in database + if (!empty($files)) { + $sql = "SELECT backup_id,filename FROM web_backup WHERE server_id = ? AND parent_domain_id = ?"; + $backups = $db->queryAllRecords($sql, $server_id, $domain_id); + foreach ($backups as $backup) { + if (!in_array($backup['filename'],$files)) { + $backup_file = $backup_dir . '/web' . $domain_id . '/' . $backup['filename']; + $app->log('Backup file ' . $backup_file . ' is not contained in database, deleting this file from disk', LOGLEVEL_DEBUG); + @unlink($backup_file); + } + } + } + + //Remove backupdir symlink and create as directory instead + $web_path = $rec['document_root']; + $app->system->web_folder_protection($web_path, false); + + $backup_download_dir = $web_path . '/backup'; + if (is_link($backup_download_dir)) { + unlink($backup_download_dir); + } + if (!is_dir($backup_download_dir)) { + mkdir($backup_download_dir); + chown($backup_download_dir, $rec['system_user']); + chgrp($backup_download_dir, $rec['system_group']); + } + + $app->system->web_folder_protection($web_path, true); + + // delete old files from backup download dir (/var/www/example.com/backup) + if (is_dir($backup_download_dir)) { + $dir_handle = dir($backup_download_dir); + $now = time(); + while (false !== ($entry = $dir_handle->read())) { + $full_filename = $backup_download_dir . '/' . $entry; + if ($entry != '.' && $entry != '..' && is_file($full_filename)) { + // delete files older than 3 days + if ($now - filemtime($full_filename) >= 60 * 60 * 24 * 3) { + $app->log('Backup file ' . $full_filename . ' is too old, deleting this file from disk', LOGLEVEL_DEBUG); + @unlink($full_filename); + } + } + } + $dir_handle->close(); + } + } + } + } + + /** + * Gets list of files in directory + * @param string $directory + * @param string[]|null $prefix_list filter files that have one of the prefixes. Use null for default filtering. + * @param string[]|null $endings_list filter files that have one of the endings. Use null for default filtering. + * @return string[] + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function get_files($directory, $prefix_list = null, $endings_list = null) + { + $default_prefix_list = array( + 'web', + 'manual-web', + 'db_', + 'manual-db_', + ); + $default_endings_list = array( + '.gz', + '.7z', + '.rar', + '.zip', + '.xz', + '.bz2', + ); + if (is_null($prefix_list)) + $prefix_list = $default_prefix_list; + if (is_null($endings_list)) + $endings_list = $default_endings_list; + + if (!is_dir($directory)) { + return array(); + } + + $dir_handle = dir($directory); + $files = array(); + while (false !== ($entry = $dir_handle->read())) { + $full_filename = $directory . '/' . $entry; + if ($entry != '.' && $entry != '..' && is_file($full_filename)) { + if (!empty($prefix_list)) { + $add = false; + foreach ($prefix_list as $prefix) { + if (substr($entry, 0, strlen($prefix)) == $prefix) { + $add = true; + break; + } + } + } else + $add = true; + if ($add && !empty($endings_list)) { + $add = false; + foreach ($endings_list as $ending) { + if (substr($entry, -strlen($ending)) == $ending) { + $add = true; + break; + } + } + } + if ($add) + array_push($files, $entry); + } + } + $dir_handle->close(); + + return $files; + } + + /** + * Generates excludes list for compressors + * @param string[] $backup_excludes + * @param string $arg + * @return string + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function generateExcludeList($backup_excludes, $arg) + { + $excludes = implode(" " . $arg, $backup_excludes); + if (!empty($excludes)) { + $excludes = $arg . $excludes; + } + return $excludes; + } + + /** + * Runs a web compression routine + * @param string $format + * @param string[] $backup_excludes + * @param string $backup_mode + * @param string $web_path + * @param string $web_backup_dir + * @param string $web_backup_file + * @param string $web_user + * @param string $web_group + * @param string $http_server_user + * @param string $backup_tmp + * @param string|null $password + * @return bool true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function runWebCompression($format, $backup_excludes, $backup_mode, $web_path, $web_backup_dir, $web_backup_file, $web_user, $web_group, $http_server_user, $backup_tmp, $password) + { + global $app; + + $find_user_files = 'cd ? && sudo -u ? find . -group ? -or -user ? -print 2> /dev/null'; + $excludes = self::generateExcludeList($backup_excludes, '--exclude='); + $tar_dir = 'tar pcf - ' . $excludes . ' --directory ? .'; + $tar_input = 'tar pcf --null -T -'; + + $app->log('Performing web files backup of ' . $web_path . ' in format ' . $format . ', mode ' . $backup_mode, LOGLEVEL_DEBUG); + switch ($format) { + case 'tar_gzip': + if ($app->system->is_installed('pigz')) { + //use pigz + if ($backup_mode == 'user_zip') { + $app->system->exec_safe($find_user_files . ' | ' . $tar_input . ' | pigz > ?', $web_path, $web_user, $web_group, $http_server_user, $web_path, $web_backup_dir . '/' . $web_backup_file); + } else { + //Standard casual behaviour of ISPConfig + $app->system->exec_safe($tar_dir . ' | pigz > ?', $web_path, $web_backup_dir . '/' . $web_backup_file); + } + $exit_code = $app->system->last_exec_retcode(); + return $exit_code == 0; + } else { + //use gzip + if ($backup_mode == 'user_zip') { + $app->system->exec_safe($find_user_files . ' | tar pczf ? --null -T -', $web_path, $web_user, $web_group, $http_server_user, $web_backup_dir . '/' . $web_backup_file); + } else { + //Standard casual behaviour of ISPConfig + $app->system->exec_safe('tar pczf ? ' . $excludes . ' --directory ? .', $web_backup_dir . '/' . $web_backup_file, $web_path); + } + $exit_code = $app->system->last_exec_retcode(); + // tar can return 1 and still create valid backups + return ($exit_code == 0 || $exit_code == 1); + } + case 'zip': + case 'zip_bzip2': + $zip_options = ($format === 'zip_bzip2') ? ' -Z bzip2 ' : ''; + if (!empty($password)) { + $zip_options .= ' --password ' . escapeshellarg($password); + } + if ($backup_mode == 'user_zip') { + //Standard casual behaviour of ISPConfig + $app->system->exec_safe($find_user_files . ' | zip ' . $zip_options . ' -b ? ' . $excludes . ' --symlinks ? -@', $web_path, $web_user, $web_group, $http_server_user, $backup_tmp, $web_backup_dir . '/' . $web_backup_file); + } else { + //Use cd to have a correct directory structure inside the archive, extra options to zip hidden (dot) files + $app->system->exec_safe('cd ? && zip ' . $zip_options . ' -b ? ' . $excludes . ' --symlinks -r ? * .* -x "../*"', $web_path, $backup_tmp, $web_backup_dir . '/' . $web_backup_file); + } + $exit_code = $app->system->last_exec_retcode(); + // zip can return 12(due to harmless warnings) and still create valid backups + return ($exit_code == 0 || $exit_code == 12); + case 'tar_bzip2': + if ($backup_mode == 'user_zip') { + $app->system->exec_safe($find_user_files . ' | tar pcjf ? --null -T -', $web_path, $web_user, $web_group, $http_server_user, $web_backup_dir . '/' . $web_backup_file); + } else { + $app->system->exec_safe('tar pcjf ? ' . $excludes . ' --directory ? .', $web_backup_dir . '/' . $web_backup_file, $web_path); + } + $exit_code = $app->system->last_exec_retcode(); + // tar can return 1 and still create valid backups + return ($exit_code == 0 || $exit_code == 1); + case 'tar_xz': + if ($backup_mode == 'user_zip') { + $app->system->exec_safe($find_user_files . ' | tar pcJf ? --null -T -', $web_path, $web_user, $web_group, $http_server_user, $web_backup_dir . '/' . $web_backup_file); + } else { + $app->system->exec_safe('tar pcJf ? ' . $excludes . ' --directory ? .', $web_backup_dir . '/' . $web_backup_file, $web_path); + } + $exit_code = $app->system->last_exec_retcode(); + // tar can return 1 and still create valid backups + return ($exit_code == 0 || $exit_code == 1); + case 'rar': + $options = self::getRarOptions($backup_tmp,$password); + if ($backup_mode != 'user_zip') { + //Recurse subfolders, otherwise we will pass a list of files to compress + $options .= ' -r'; + } + $excludes = self::generateExcludeList($backup_excludes, '-x'); + $zip_command = 'rar a ' . $options . ' '.$excludes.' ?'; + if ($backup_mode == 'user_zip') { + $app->system->exec_safe($find_user_files . ' | ' . $zip_command . ' ? @', $web_path, $web_user, $web_group, $http_server_user, $web_path, $web_backup_dir . '/' . $web_backup_file); + } else { + $app->system->exec_safe('cd ? && ' . $zip_command . ' .', $web_path, $web_backup_dir . '/' . $web_backup_file); + } + $exit_code = $app->system->last_exec_retcode(); + return ($exit_code == 0 || $exit_code == 1); + } + if (strpos($format, "tar_7z_") === 0) { + $options = self::get7zCompressOptions($format, $password); + $zip_command = '7z a ' . $options . ' -si ?'; + if ($backup_mode == 'user_zip') { + $app->system->exec_safe($find_user_files . ' | ' . $tar_input . ' | '. $zip_command, $web_path, $web_user, $web_group, $http_server_user, $web_path, $web_backup_dir . '/' . $web_backup_file); + } else { + $app->system->exec_safe($tar_dir . ' | ' . $zip_command, $web_path, $web_backup_dir . '/' . $web_backup_file); + } + $exit_code = $app->system->last_exec_retcode(); + return $exit_code == 0; + } + return false; + } + + /** + * Runs a database compression routine + * @param string $format + * @param string $db_backup_dir + * @param string $db_backup_file + * @param string $compressed_backup_file + * @param string $backup_tmp + * @param string|null $password + * @return bool true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function runDatabaseCompression($format, $db_backup_dir, $db_backup_file, $compressed_backup_file, $backup_tmp, $password) + { + global $app; + + $app->log('Performing database backup to file ' . $compressed_backup_file . ' in format ' . $format, LOGLEVEL_DEBUG); + switch ($format) { + case 'gzip': + if ($app->system->is_installed('pigz')) { + //use pigz + $zip_cmd = 'pigz'; + } else { + //use gzip + $zip_cmd = 'gzip'; + } + $app->system->exec_safe($zip_cmd . " -c ? > ?", $db_backup_dir . '/' . $db_backup_file, $db_backup_dir . '/' . $compressed_backup_file); + $exit_code = $app->system->last_exec_retcode(); + return $exit_code == 0; + case 'zip': + case 'zip_bzip2': + $zip_options = ($format === 'zip_bzip2') ? ' -Z bzip2 ' : ''; + if (!empty($password)) { + $zip_options .= ' --password ' . escapeshellarg($password); + } + $app->system->exec_safe('zip ' . $zip_options . ' -j -b ? ? ?', $backup_tmp, $db_backup_dir . '/' . $compressed_backup_file, $db_backup_dir . '/' . $db_backup_file); + $exit_code = $app->system->last_exec_retcode(); + // zip can return 12(due to harmless warnings) and still create valid backups + return ($exit_code == 0 || $exit_code == 12); + case 'bzip2': + $app->system->exec_safe("bzip2 -q -c ? > ?", $db_backup_dir . '/' . $db_backup_file, $db_backup_dir . '/' . $compressed_backup_file); + $exit_code = $app->system->last_exec_retcode(); + return $exit_code == 0; + case 'xz': + $app->system->exec_safe("xz -q -q -c ? > ?", $db_backup_dir . '/' . $db_backup_file, $db_backup_dir . '/' . $compressed_backup_file); + $exit_code = $app->system->last_exec_retcode(); + return $exit_code == 0; + case 'rar': + $options = self::getRarOptions($backup_tmp, $password); + $zip_command = 'rar a ' . $options . ' ? ?'; + $app->system->exec_safe($zip_command, $db_backup_dir . '/' . $compressed_backup_file, $db_backup_dir . '/' . $db_backup_file); + $exit_code = $app->system->last_exec_retcode(); + return ($exit_code == 0 || $exit_code == 1); + } + if (strpos($format, "7z_") === 0) { + $options = self::get7zCompressOptions($format, $password); + $zip_command = '7z a ' . $options . ' ? ?'; + $app->system->exec_safe($zip_command, $db_backup_dir . '/' . $compressed_backup_file, $db_backup_dir . '/' . $db_backup_file); + $exit_code = $app->system->last_exec_retcode(); + return $exit_code == 0; + } + return false; + } + + /** + * Mounts the backup directory if required + * @param int $server_id + * @return bool true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @see backup_plugin::unmount_backup_dir() + */ + public static function mount_backup_dir($server_id) + { + global $app; + + $server_config = $app->getconf->get_server_config($server_id, 'server'); + if ($server_config['backup_dir_is_mount'] == 'y') + return $app->system->mount_backup_dir($server_config['backup_dir']); + return true; + } + + /** + * Unmounts the backup directory if required + * @param int $server_id + * @return bool true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @see backup_plugin::mount_backup_dir() + */ + public static function unmount_backup_dir($server_id) + { + global $app; + + $server_config = $app->getconf->get_server_config($server_id, 'server'); + if ($server_config['backup_dir_is_mount'] == 'y') + return $app->system->umount_backup_dir($server_config['backup_dir']); + return true; + } + + /** + * Makes backup of database. + * The backup directory must be mounted before calling this method. + * This method is for private use only, don't call this method unless you know what you're doing. + * @param array $web_domain + * @param string $backup_job type of backup job: manual or auto + * @return bool true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @see backup_plugin::run_backup() recommeneded to use if you need to make backups + */ + protected static function make_database_backup($web_domain, $backup_job) + { + global $app; + + $server_id = intval($web_domain['server_id']); + $domain_id = intval($web_domain['domain_id']); + $server_config = $app->getconf->get_server_config($server_id, 'server'); + $backup_dir = trim($server_config['backup_dir']); + $backup_tmp = trim($server_config['backup_tmp']); + $db_backup_dir = $backup_dir . '/web' . $domain_id; + $success = false; + + if (empty($backup_job)) + $backup_job = "auto"; + + $records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); + if (empty($records)){ + $app->log('Skipping database backup for domain ' . $web_domain['domain_id'] . ', because no related databases found.', LOGLEVEL_DEBUG); + return true; + } + + self::prepare_backup_dir($server_id, $web_domain); + + include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf'; + + //* Check mysqldump capabilities + exec('mysqldump --help', $tmp); + $mysqldump_routines = (strpos(implode($tmp), '--routines') !== false) ? '--routines' : ''; + unset($tmp); + + foreach ($records as $rec) { + $password = ($web_domain['backup_encrypt'] == 'y') ? trim($web_domain['backup_password']) : ''; + $backup_format_db = $web_domain['backup_format_db']; + if (empty($backup_format_db)) { + $backup_format_db = 'gzip'; + } + $backup_extension_db = self::getBackupDbExtension($backup_format_db); + + if (!empty($backup_extension_db)) { + //* Do the mysql database backup with mysqldump + $db_name = $rec['database_name']; + $db_file_prefix = 'db_' . $db_name . '_' . date('Y-m-d_H-i'); + $db_backup_file = $db_file_prefix . '.sql'; + $db_compressed_file = ($backup_job == 'manual' ? 'manual-' : '') . $db_file_prefix . $backup_extension_db; + $command = "mysqldump -h ? -u ? -p? -c --add-drop-table --create-options --quick --max_allowed_packet=512M " . $mysqldump_routines . " --result-file=? ?"; + /** @var string $clientdb_host */ + /** @var string $clientdb_user */ + /** @var string $clientdb_password */ + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $db_backup_dir . '/' . $db_backup_file, $db_name); + $exit_code = $app->system->last_exec_retcode(); + + //* Compress the backup + if ($exit_code == 0) { + $exit_code = self::runDatabaseCompression($backup_format_db, $db_backup_dir, $db_backup_file, $db_compressed_file, $backup_tmp, $password) ? 0 : 1; + if ($exit_code !== 0) + $app->log('Failed to make backup of database ' . $rec['database_name'], LOGLEVEL_ERROR); + } else { + $app->log('Failed to make backup of database ' . $rec['database_name'] . ', because mysqldump failed', LOGLEVEL_ERROR); + } + + if ($exit_code == 0) { + if (is_file($db_backup_dir . '/' . $db_compressed_file)) { + chmod($db_backup_dir . '/' . $db_compressed_file, 0750); + chown($db_backup_dir . '/' . $db_compressed_file, fileowner($db_backup_dir)); + chgrp($db_backup_dir . '/' . $db_compressed_file, filegroup($db_backup_dir)); + + //* Insert web backup record in database + $file_size = filesize($db_backup_dir . '/' . $db_compressed_file); + $sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, backup_format, tstamp, filename, filesize, backup_password) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; + //Making compatible with previous versions of ISPConfig: + $sql_mode = ($backup_format_db == 'gzip') ? 'sqlgz' : ('sql' . $backup_format_db); + $app->db->query($sql, $server_id, $domain_id, 'mysql', $sql_mode, $backup_format_db, time(), $db_compressed_file, $file_size, $password); + if ($app->db->dbHost != $app->dbmaster->dbHost) + $app->dbmaster->query($sql, $server_id, $domain_id, 'mysql', $sql_mode, $backup_format_db, time(), $db_compressed_file, $file_size, $password); + $success = true; + } + } else { + if (is_file($db_backup_dir . '/' . $db_compressed_file)) unlink($db_backup_dir . '/' . $db_compressed_file); + } + //* Remove the uncompressed file + if (is_file($db_backup_dir . '/' . $db_backup_file)) unlink($db_backup_dir . '/' . $db_backup_file); + + //* Remove old backups + self::backups_garbage_collection($server_id, 'mysql', $domain_id); + self::clearBackups($server_id, $domain_id, intval($rec['backup_copies']), $db_backup_dir); + } else { + $app->log('Failed to process mysql backup format ' . $backup_format_db . ' for database ' . $rec['database_name'], LOGLEVEL_ERROR); + } + } + + unset($clientdb_host); + unset($clientdb_user); + unset($clientdb_password); + + return $success; + } + + /** + * Makes backup of web files. + * The backup directory must be mounted before calling this method. + * This method is for private use only, don't call this method unless you know what you're doing + * @param array $web_domain info about domain to backup, SQL record of table 'web_domain' + * @param string $backup_job type of backup job: manual or auto + * @return bool true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @see backup_plugin::mount_backup_dir() + * @see backup_plugin::run_backup() recommeneded to use if you need to make backups + */ + protected static function make_web_backup($web_domain, $backup_job) + { + global $app; + + $server_id = intval($web_domain['server_id']); + $domain_id = intval($web_domain['domain_id']); + $server_config = $app->getconf->get_server_config($server_id, 'server'); + $global_config = $app->getconf->get_global_config('sites'); + $backup_dir = trim($server_config['backup_dir']); + $backup_mode = $server_config['backup_mode']; + $backup_tmp = trim($server_config['backup_tmp']); + if (empty($backup_mode)) + $backup_mode = 'userzip'; + + $web_config = $app->getconf->get_server_config($server_id, 'web'); + $http_server_user = $web_config['user']; + + if (empty($backup_dir)) { + $app->log('Failed to make backup of web files for domain id ' . $domain_id . ' on server id ' . $server_id . ', because backup directory is not defined', LOGLEVEL_ERROR); + return false; + } + if (empty($backup_job)) + $backup_job = "auto"; + + $backup_format_web = $web_domain['backup_format_web']; + //Check if we're working with data saved in old version of ISPConfig + if (empty($backup_format_web)) { + $backup_format_web = 'default'; + } + if ($backup_format_web == 'default') { + $backup_format_web = self::getDefaultBackupFormat($backup_mode, 'web'); + } + $password = ($web_domain['backup_encrypt'] == 'y') ? trim($web_domain['backup_password']) : ''; + $backup_extension_web = self::getBackupWebExtension($backup_format_web); + if (empty($backup_extension_web)) { + $app->log('Failed to make backup of web files, because of unknown backup format ' . $backup_format_web . ' for website ' . $web_domain['domain'], LOGLEVEL_ERROR); + return false; + } + + $web_path = $web_domain['document_root']; + $web_user = $web_domain['system_user']; + $web_group = $web_domain['system_group']; + $web_id = $web_domain['domain_id']; + + self::prepare_backup_dir($server_id, $web_domain); + $web_backup_dir = $backup_dir . '/web' . $web_id; + + $backup_excludes = array(escapeshellarg('./backup\*')); + $b_excludes = explode(',', trim($web_domain['backup_excludes'])); + if (is_array($b_excludes) && !empty($b_excludes)) { + foreach ($b_excludes as $b_exclude) { + $b_exclude = trim($b_exclude); + if ($b_exclude != '') { + array_push($backup_excludes, escapeshellarg($b_exclude)); + } + } + } + + $web_backup_file = ($backup_job == 'manual' ? 'manual-' : '') . 'web' . $web_id . '_' . date('Y-m-d_H-i') . $backup_extension_web; + $full_filename = $web_backup_dir . '/' . $web_backup_file; + if (self::runWebCompression($backup_format_web, $backup_excludes, $backup_mode, $web_path, $web_backup_dir, $web_backup_file, $web_user, $web_group, $http_server_user, $backup_tmp, $password)) { + if (is_file($full_filename)) { + $backup_username = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_user : 'root'; + $backup_group = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_group : 'root'; + chown($full_filename, $backup_username); + chgrp($full_filename, $backup_group); + chmod($full_filename, 0750); + + //Insert web backup record in database + $file_size = filesize($full_filename); + $sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, backup_format, tstamp, filename, filesize, backup_password) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; + $app->db->query($sql, $server_id, $web_id, 'web', $backup_mode, $backup_format_web, time(), $web_backup_file, $file_size, $password); + if ($app->db->dbHost != $app->dbmaster->dbHost) + $app->dbmaster->query($sql, $server_id, $web_id, 'web', $backup_mode, $backup_format_web, time(), $web_backup_file, $file_size, $password); + unset($file_size); + $app->log('Backup of web files for domain ' . $web_domain['domain'] . ' completed successfully to file ' . $full_filename, LOGLEVEL_DEBUG); + } else { + $app->log('Backup of web files for domain ' . $web_domain['domain'] . ' reported success, but the resulting file ' . $full_filename . ' not found.', LOGLEVEL_ERROR); + } + + } else { + if (is_file($full_filename)) + unlink($full_filename); + $app->log('Backup of web files for domain ' . $web_domain['domain'] . ' failed using path ' . $web_path . ' failed.', LOGLEVEL_ERROR); + } + + self::clearBackups($server_id, $web_id, intval($web_domain['backup_copies']), $web_backup_dir); + return true; + } + + /** + * Creates and prepares a backup dir + * @param int $server_id + * @param array $domain_data + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + protected static function prepare_backup_dir($server_id, $domain_data) + { + global $app; + + $server_config = $app->getconf->get_server_config($server_id, 'server'); + $global_config = $app->getconf->get_global_config('sites'); + + if (isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') { + $backup_dir_permissions = 0755; + } else { + $backup_dir_permissions = 0750; + } + + $backup_dir = $server_config['backup_dir']; + + if (!is_dir($backup_dir)) { + mkdir($backup_dir, $backup_dir_permissions, true); + } else { + chmod($backup_dir, $backup_dir_permissions); + } + + $web_backup_dir = $backup_dir . '/web' . $domain_data['domain_id']; + if (!is_dir($web_backup_dir)) + mkdir($web_backup_dir, 0750); + chmod($web_backup_dir, 0750); + + $backup_username = 'root'; + $backup_group = 'root'; + + if ($global_config['backups_include_into_web_quota'] == 'y') { + $backup_username = $domain_data['system_user']; + $backup_group = $domain_data['system_group']; + } + chown($web_backup_dir, $backup_username); + chgrp($web_backup_dir, $backup_group); + } + + /** + * Makes a backup of website files or database. + * @param string|int $domain_id + * @param string $type backup type: web or mysql + * @param string $backup_job how the backup is initiated: manual or auto + * @param bool $mount if true, then the backup dir will be mounted and unmounted automatically + * @return bool returns true if success + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + public static function run_backup($domain_id, $type, $backup_job, $mount = true) + { + global $app; + + $domain_id = intval($domain_id); + + $sql = "SELECT * FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain_id = ?"; + $rec = $app->db->queryOneRecord($sql, $domain_id); + if (empty($rec)) { + $app->log('Failed to make backup of type ' . $type . ', because no information present about requested domain id ' . $domain_id, LOGLEVEL_ERROR); + return false; + } + $server_id = intval($rec['server_id']); + + if ($mount && !self::mount_backup_dir($server_id)) { + $app->log('Failed to make backup of type ' . $type . ' for domain id ' . $domain_id . ', because failed to mount backup directory', LOGLEVEL_ERROR); + return false; + } + $ok = false; + + switch ($type) { + case 'web': + $ok = self::make_web_backup($rec, $backup_job); + break; + case 'mysql': + $ok = self::make_database_backup($rec, $backup_job); + break; + default: + $app->log('Failed to make backup, because backup type is unknown: ' . $type, LOGLEVEL_ERROR); + break; + } + if ($mount) + self::unmount_backup_dir($server_id); + return $ok; + } + + /** + * Runs backups of all websites that have backups enabled with respect to their backup interval settings + * @param int $server_id + * @param string $backup_job backup tupe: auto or manual + * @author Ramil Valitov <ramilvalitov@gmail.com> + */ + public static function run_all_backups($server_id, $backup_job = "auto") + { + global $app; + + $server_id = intval($server_id); + + $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y' AND backup_interval != 'none' AND backup_interval != ''"; + $domains = $app->db->queryAllRecords($sql, $server_id); + + if (!self::mount_backup_dir($server_id)) { + $app->log('Failed to run regular backups routine because failed to mount backup directory', LOGLEVEL_ERROR); + return; + } + self::backups_garbage_collection($server_id); + + $date_of_week = date('w'); + $date_of_month = date('d'); + foreach ($domains as $domain) { + if (($domain['backup_interval'] == 'daily' or ($domain['backup_interval'] == 'weekly' && $date_of_week == 0) or ($domain['backup_interval'] == 'monthly' && $date_of_month == '01'))) { + self::run_backup($domain['domain_id'], 'web', $backup_job, false); + self::run_backup($domain['domain_id'], 'mysql', $backup_job, false); + } + } + self::unmount_backup_dir($server_id); + } +} + +?> diff --git a/server/lib/classes/cron.d/100-mailbox_stats.inc.php b/server/lib/classes/cron.d/100-mailbox_stats.inc.php index e5a0065a5ba2a71cde019985c9ae230c5ea86a88..51c3a454891bbc1af774190e2fdd466e49472066 100644 --- a/server/lib/classes/cron.d/100-mailbox_stats.inc.php +++ b/server/lib/classes/cron.d/100-mailbox_stats.inc.php @@ -173,6 +173,10 @@ class cronjob_mailbox_stats extends cronjob { continue; } } + + $this->mail_boxes = $mail_boxes; + $this->mail_rewrites = $mail_rewrites; + $this->add_mailbox_traffic($cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites); //echo "1\n"; //print_r($this->mailbox_traffic); @@ -221,6 +225,7 @@ class cronjob_mailbox_stats extends cronjob { $tstamp = date('Y-m'); $sql = "SELECT mailuser_id,email FROM mail_user WHERE server_id = ?"; $records = $app->db->queryAllRecords($sql, $conf['server_id']); + $mailbox_traffic = $this->mailbox_traffic; foreach($records as $rec) { if(array_key_exists($rec['email'], $mailbox_traffic)) { $sql = "SELECT * FROM mail_traffic WHERE month = ? AND mailuser_id = ?"; diff --git a/server/lib/classes/cron.d/100-monitor_email_quota.inc.php b/server/lib/classes/cron.d/100-monitor_email_quota.inc.php index 75014c347def49072f048b235c5afadaa976feb5..40736a7bac8f976f922befecbcfab68073d22f84 100644 --- a/server/lib/classes/cron.d/100-monitor_email_quota.inc.php +++ b/server/lib/classes/cron.d/100-monitor_email_quota.inc.php @@ -79,29 +79,40 @@ class cronjob_monitor_email_quota extends cronjob { if(is_array($mailboxes)) { //* with dovecot we can use doveadm instead of 'du -s' - $dovecot = false; - if (isset($mail_config['pop3_imap_daemon']) && $mail_config ['pop3_imap_daemon'] = 'dovecot' && is_executable('doveadm')) { - exec('doveadm quota 2>&1', $tmp_output, $tmp_retval); // with dovecot 2.2.x 'doveadm quota' is unuseable - if ($retval = 64) $dovecot = true; + $dovecotQuotaUsage = array(); + if (isset($mail_config['pop3_imap_daemon']) && $mail_config ['pop3_imap_daemon'] = 'dovecot') { + exec("doveadm quota get -A 2>&1", $res, $retval); + if ($retval = 64) { + foreach ($res as $v) { + $s = preg_split('/\s+/', $v); + if ($s[2] == 'STORAGE') { + $dovecotQuotaUsage[$s[0]] = $s[3] * 1024; // doveadm output is in kB + } elseif ($s[3] == 'STORAGE') { + $dovecotQuotaUsage[$s[0]] = $s[4] * 1024; // doveadm output is in kB + } + } + } } foreach($mailboxes as $mb) { $email = $mb['email']; $email_parts = explode('@', $mb['email']); $filename = $mb['maildir'].'/.quotausage'; - if(!file_exists($filename) && $dovecot) { - exec('doveadm quota recalc -u '.$email); - } - if(file_exists($filename) && !is_link($filename)) { + if(count($dovecotQuotaUsage) > 0 && isset($dovecotQuotaUsage[$email])) { + $data[$email]['used'] = $dovecotQuotaUsage[$email]; + $app->log("Mail storage $email: " . $data[$email]['used'], LOGLEVEL_DEBUG); + } elseif(file_exists($filename) && !is_link($filename)) { $quotafile = file($filename); preg_match('/storage.*?([0-9]+)/s', implode('',$quotafile), $storage_value); $data[$email]['used'] = $storage_value[1]; - $app->log("Mail storage $email: " . $storage_value[1], LOGLEVEL_DEBUG); + $app->log("Mail storage $email: " . $data[$email]['used'], LOGLEVEL_DEBUG); unset($quotafile); } else { - exec('du -s '.escapeshellcmd($mb['maildir']), $out); + $app->system->exec_safe('du -s ?', $mb['maildir']); + $out = $app->system->last_exec_out(); $parts = explode(' ', $out[0]); $data[$email]['used'] = intval($parts[0])*1024; + $app->log("Mail storage $email: " . $data[$email]['used'], LOGLEVEL_DEBUG); unset($out); unset($parts); } @@ -109,6 +120,7 @@ class cronjob_monitor_email_quota extends cronjob { } unset($mailboxes); + unset($dovecotQuotaUsage); //* Dovecot quota check Courier in progress lathama@gmail.com /* @@ -131,8 +143,8 @@ class cronjob_monitor_email_quota extends cronjob { $res['state'] = $state; /* - * Insert the data into the database - */ + * Insert the data into the database + */ $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); diff --git a/server/lib/classes/cron.d/100-monitor_fail2ban.inc.php b/server/lib/classes/cron.d/100-monitor_fail2ban.inc.php index 5c4ba80561b222b6be12a1dc5f8f02951a91ab64..a25d5c710666ce802e1993ca8a6adb708dd1a3d8 100644 --- a/server/lib/classes/cron.d/100-monitor_fail2ban.inc.php +++ b/server/lib/classes/cron.d/100-monitor_fail2ban.inc.php @@ -67,10 +67,8 @@ class cronjob_monitor_fail2ban extends cronjob { $type = 'log_fail2ban'; /* This monitoring is only available if fail2ban is installed */ - system('which fail2ban-client', $retval); // Debian, Ubuntu, Fedora - if ($retval !== 0) - system('which fail2ban', $retval); // CentOS - if ($retval === 0) { + if ($app->system->is_installed('fail2ban-client') // Debian, Ubuntu, Fedora + || $app->system->is_installed('fail2ban')) { // CentOS /* Get the data of the log */ $data = $this->_tools->_getLogData($type); diff --git a/server/lib/classes/cron.d/100-monitor_iptables.inc.php b/server/lib/classes/cron.d/100-monitor_iptables.inc.php index 1ad11d9ecccdcbf690c3337524221aee62b431f8..cff0a73ac3747e1b0e1b867af5ca4a85e9a58179 100644 --- a/server/lib/classes/cron.d/100-monitor_iptables.inc.php +++ b/server/lib/classes/cron.d/100-monitor_iptables.inc.php @@ -67,8 +67,7 @@ class cronjob_monitor_iptables extends cronjob { $type = 'iptables_rules'; /* This monitoring is only available if fail2ban is installed */ - system('which iptables', $retval); // Debian, Ubuntu, Fedora - if ($retval === 0) { + if ($app->system->is_installed('iptables')) { /* Get the data of the log */ $data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S 2>/dev/null'); @@ -83,8 +82,7 @@ class cronjob_monitor_iptables extends cronjob { /* This monitoring is only available if fail2ban is installed */ - system('which ip6tables', $retval); // Debian, Ubuntu, Fedora - if ($retval === 0) { + if ($app->system->is_installed('ip6tables')) { /* Get the data of the log */ $data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S 2>/dev/null'); diff --git a/server/lib/classes/cron.d/100-monitor_openvz.inc.php b/server/lib/classes/cron.d/100-monitor_openvz.inc.php index 30b51b4b5fb50242648f9b66be66c08d9a01ea6e..adc092ec95eb72d96b563202c5607f47c5f0ef64 100644 --- a/server/lib/classes/cron.d/100-monitor_openvz.inc.php +++ b/server/lib/classes/cron.d/100-monitor_openvz.inc.php @@ -69,7 +69,7 @@ class cronjob_monitor_openvz extends cronjob { /* Fetch the data into a array */ - $app->load(openvz_tools); + $app->load('openvz_tools'); $openVzTools = new openvz_tools(); $data = $openVzTools->getOpenVzVeInfo(); @@ -98,7 +98,7 @@ class cronjob_monitor_openvz extends cronjob { /* Fetch the data into a array */ - $app->load(openvz_tools); + $app->load('openvz_tools'); $openVzTools = new openvz_tools(); $data = $openVzTools->getOpenVzVeBeanCounter(); diff --git a/server/lib/classes/cron.d/100-monitor_raid.inc.php b/server/lib/classes/cron.d/100-monitor_raid.inc.php index d1a9a53455c6a70e2efab0a561c1d7e21b1e6404..80ab29b6c36cb23c59c01ddc96f8ba2f9398e83a 100644 --- a/server/lib/classes/cron.d/100-monitor_raid.inc.php +++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php @@ -126,8 +126,7 @@ class cronjob_monitor_raid extends cronjob { * Check, if we have mpt-status installed (LSIsoftware-raid) */ if (file_exists('/proc/mpt/summary')) { - system('which mpt-status', $retval); - if ($retval === 0) { + if ($app->system->is_installed('mpt-status')) { /* * Fetch the output */ @@ -174,8 +173,7 @@ class cronjob_monitor_raid extends cronjob { /* * 3ware Controller */ - system('which tw_cli', $retval); - if($retval === 0) { + if($app->system->is_installed('tw_cli')) { // TYPOWORX FIX | Determine Controler-ID $availableControlers = shell_exec('tw_cli info | grep -Eo "c[0-9]+"'); @@ -232,8 +230,7 @@ class cronjob_monitor_raid extends cronjob { /* * HP Proliant */ - system('which hpacucli', $retval); - if($retval === 0) { + if($app->system->is_installed('hpacucli')) { $state = 'ok'; $data['output'] = shell_exec('/usr/sbin/hpacucli ctrl all show config'); $tmp = explode("\n", $data['output']); @@ -278,10 +275,14 @@ class cronjob_monitor_raid extends cronjob { /* * LSI MegaRaid */ - system('which megacli', $retval); - system('which megacli64', $retval64); - if($retval === 0 || $retval64 === 0) { - $binary=@($retval === 0)?'megacli':'megacli64'; + $binary = FALSE; + if ($app->system->is_installed('megacli')) { + $binary = 'megacli'; + } + if ($app->system->is_installed('megacli64')) { + $binary = 'megacli64'; + } + if($binary) { $state = 'ok'; $data['output'] = shell_exec($binary.' -LDInfo -Lall -aAll -NoLog'); if (strpos($data['output'], 'Optimal') !== false) { @@ -298,8 +299,7 @@ class cronjob_monitor_raid extends cronjob { /* * Adaptec-RAID */ - system('which arcconf', $retval); - if($retval === 0) { + if($app->system->is_installed('arcconf')) { $state = 'ok'; $data['output'] = shell_exec('arcconf GETCONFIG 1 LD'); if(is_array($data['output'])) { diff --git a/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php b/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php index 43071b83872b26048266ba9250dff926c6997d95..5efb9420ec7065ba4a55bb2a4d4ba898d731b621 100644 --- a/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php +++ b/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php @@ -67,8 +67,7 @@ class cronjob_monitor_rkhunter extends cronjob { $type = 'rkhunter'; /* This monitoring is only available if rkhunter is installed */ - system('which rkhunter', $retval); - if ($retval === 0) { + if ($app->system->is_installed('rkhunter')) { /* * Fetch the output */ diff --git a/server/lib/classes/cron.d/100-monitor_system_update.inc.php b/server/lib/classes/cron.d/100-monitor_system_update.inc.php index bc4f521073ff3d3813ad286af70c16945121fe09..cab5f68edb0f7230d955da4c228f442a983db489 100644 --- a/server/lib/classes/cron.d/100-monitor_system_update.inc.php +++ b/server/lib/classes/cron.d/100-monitor_system_update.inc.php @@ -159,7 +159,42 @@ class cronjob_monitor_system_update extends cronjob { * Fetch the output */ $data['output'] = shell_exec('zypper lu'); - } else { + + } elseif(file_exists('/etc/redhat-release')) { + /* + * update and find the upgrade. + * if there is any output, then there is a needed update + */ + + /* try to figure out the default package manager first */ + if(file_exists('/usr/bin/dnf') && (is_link('/usr/bin/yum'))) { + $rhPkgMgr = 'dnf'; + } elseif(file_exists('/usr/bin/dnf') && (!file_exists('/usr/bin/yum'))) { + $rhPkgMgr = 'dnf'; + } else { + $rhPkgMgr = 'yum'; + } + + $aptData = shell_exec($rhPkgMgr. ' -q list updates'); + + if ($aptData == '') { + /* There is nothing to update! */ + $state = 'ok'; + } else { + /* + * There is something to update! this is in most cases not critical, so we can + * do a system-update once a month or so... + */ + $state = 'info'; + } + + /* + * Fetch the output + */ + + $data['output'] = shell_exec($rhPkgMgr. ' -q list updates'); + + } else { /* * It is not Debian/Ubuntu, so there is no data and no state * diff --git a/server/lib/classes/cron.d/150-awstats.inc.php b/server/lib/classes/cron.d/150-awstats.inc.php index 2d281c7d39acdaee7c736522fc81792e2754de65..891919cb02d5e4d3b2add6deaf6ee0b9c48f631f 100644 --- a/server/lib/classes/cron.d/150-awstats.inc.php +++ b/server/lib/classes/cron.d/150-awstats.inc.php @@ -60,7 +60,6 @@ class cronjob_awstats extends cronjob { $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); foreach($records as $rec) { - //$yesterday = date('Ymd',time() - 86400); $yesterday = date('Ymd', strtotime("-1 day", time())); $log_folder = 'log'; @@ -71,16 +70,16 @@ class cronjob_awstats extends cronjob { $log_folder .= '/' . $subdomain_host; unset($tmp); } - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'; if(!@is_file($logfile)) { - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'; if(!@is_file($logfile)) { continue; } } $web_folder = (($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web'); - $domain = escapeshellcmd($rec['domain']); - $statsdir = escapeshellcmd($rec['document_root'].'/'.$web_folder.'/stats'); + $domain = $rec['domain']; + $statsdir = $rec['document_root'].'/'.$web_folder.'/stats'; $awstats_pl = $web_config['awstats_pl']; $awstats_buildstaticpages_pl = $web_config['awstats_buildstaticpages_pl']; @@ -117,8 +116,8 @@ class cronjob_awstats extends cronjob { } if(!@is_dir($statsdir)) mkdir($statsdir); - $username = escapeshellcmd($rec['system_user']); - $groupname = escapeshellcmd($rec['system_group']); + $username = $rec['system_user']; + $groupname = $rec['system_group']; chown($statsdir, $username); chgrp($statsdir, $groupname); if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); @@ -135,10 +134,7 @@ class cronjob_awstats extends cronjob { } } - // awstats_buildstaticpages.pl -update -config=mydomain.com -lang=en -dir=/var/www/domain.com/'.$web_folder.'/stats -awstatsprog=/path/to/awstats.pl - // $command = "$awstats_buildstaticpages_pl -update -config='$domain' -lang=".$conf['language']." -dir='$statsdir' -awstatsprog='$awstats_pl'"; - - $command = "$awstats_buildstaticpages_pl -month='$awmonth' -year='$awyear' -update -config='$domain' -lang=".$conf['language']." -dir='$statsdir' -awstatsprog='$awstats_pl'"; + $command = escapeshellcmd($awstats_buildstaticpages_pl) . ' -month=' . escapeshellarg($awmonth) . ' -year=' . escapeshellarg($awyear) . ' -update -config=' . escapeshellarg($domain) . ' -lang=' . escapeshellarg($conf['language']) . ' -dir=' . escapeshellarg($statsdir) . ' -awstatsprog=' . escapeshellarg($awstats_pl); if (date("d") == 2) { $awmonth = date("m")-1; @@ -148,7 +144,9 @@ class cronjob_awstats extends cronjob { } $statsdirold = $statsdir."/".$awyear."-".$awmonth."/"; - mkdir($statsdirold); + if(!is_dir($statsdirold)) { + mkdir($statsdirold); + } $files = scandir($statsdir); foreach ($files as $file) { if (substr($file, 0, 1) != "." && !is_dir("$statsdir"."/"."$file") && substr($file, 0, 1) != "w" && substr($file, 0, 1) != "i") copy("$statsdir"."/"."$file", "$statsdirold"."$file"); @@ -178,7 +176,7 @@ class cronjob_awstats extends cronjob { chgrp($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_group']); } - exec('chown -R '.$username.':'.$groupname.' '.$statsdir); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); } diff --git a/server/lib/classes/cron.d/150-goaccess.inc.php b/server/lib/classes/cron.d/150-goaccess.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..8c9d7644420490272e36578cc933f8f883073fa2 --- /dev/null +++ b/server/lib/classes/cron.d/150-goaccess.inc.php @@ -0,0 +1,254 @@ +<?php + +/* +Copyright (c) 2013, Marius Cramer, pixcept KG +Copyright (c) 2020, Michael Seevogel +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class cronjob_goaccess extends cronjob { + + // job schedule + protected $_schedule = '0 0 * * *'; + + /* this function is optional if it contains no custom code */ + public function onPrepare() { + global $app; + + parent::onPrepare(); + } + + /* this function is optional if it contains no custom code */ + public function onBeforeRun() { + global $app; + + return parent::onBeforeRun(); + } + + public function onRunJob() { + global $app, $conf; + + + //###################################################################################################### + // Create goaccess statistics + //###################################################################################################### + + $sql = "SELECT domain_id, domain, document_root, web_folder, type, system_user, system_group, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain' or type = 'vhostalias') and stats_type = 'goaccess' AND server_id = ?"; + $records = $app->db->queryAllRecords($sql, $conf['server_id']); + + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + $goaccess_conf_locs = array('/etc/goaccess.conf', '/etc/goaccess/goaccess.conf'); + $count = 0; + + foreach($goaccess_conf_locs as $goa_loc) { + if(is_file($goa_loc) && (filesize($goa_loc) > 0)) { + $goaccess_conf_main = $goa_loc; + break; + } else { + $count++; + if($count == 2) { + $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_ERROR); + } + } + } + + + /* Check if goaccess binary is in path */ + system("type goaccess 2>&1>/dev/null", $retval); + if ($retval === 0) { + + foreach($records as $rec) { + $yesterday = date('Ymd', strtotime("-1 day", time())); + + $log_folder = 'log'; + + if($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') { + $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $rec['parent_domain_id']); + $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $rec['domain']); + if($subdomain_host == '') $subdomain_host = 'web'.$rec['domain_id']; + $log_folder .= '/' . $subdomain_host; + unset($tmp); + } + + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'; + + if(!@is_file($logfile)) { + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'; + if(!@is_file($logfile)) { + continue; + } + } + + $web_folder = (($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web'); + $domain = $rec['domain']; + $statsdir = $rec['document_root'].'/'.$web_folder.'/stats'; + $goaccess_conf = $rec['document_root'].'/log/goaccess.conf'; + + /* + In case that you use a different log format, you should use a custom goaccess.conf which you'll have to put into /usr/local/ispconfig/server/conf-custom/. + By default the originally, with GoAccess shipped goaccess.conf from /etc/ or /etc/goaccess will be used along with the log-format value COMBINED. + */ + + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master") && (!file_exists($goaccess_conf))) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master", $goaccess_conf); + } elseif(!file_exists($goaccess_conf)) { + /* + By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf as the base conf. + */ + + $app->system->copy($goaccess_conf_main, $goaccess_conf); + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?log-format COMBINED/m', "log-format COMBINED", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + } + + /* Update the primary domain name in the title, it could occasionally change */ + if(is_file($goaccess_conf) && (filesize($goaccess_conf) > 0)) { + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?html-report-title(.*)/m', "html-report-title $domain", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + } + + $username = $rec['system_user']; + $groupname = $rec['system_group']; + $docroot = $rec['document_root']; + + if(!@is_dir($statsdir)) $app->system->mkdirpath($statsdir, 0755, $username, $groupname); + + $goa_db_dir = $docroot.'/'.$web_folder.'/stats/.db/'; + $output_html = $docroot.'/'.$web_folder.'/stats/goaindex.html'; + if(!@is_dir($goa_db_dir)) $app->system->mkdirpath($goa_db_dir); + + if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) $app->system->unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); + symlink($logfile, '/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); + + + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); + + $goamonth = date("n"); + $goayear = date("Y"); + + if (date("d") == 1) { + $goamonth = date("m")-1; + if (date("m") == 1) { + $goayear = date("Y")-1; + $goamonth = "12"; + } + } + + if (date("d") == 2) { + $goamonth = date("m")-1; + if (date("m") == 1) { + $goayear = date("Y")-1; + $goamonth = "12"; + } + + $statsdirold = $statsdir."/".$goayear."-".$goamonth."/"; + + if(!is_dir($statsdirold)) { + $app->system->mkdirpath($statsdirold, 0755, $username, $groupname); + } + + // don't rotate db files per month + //rename($goa_db_dir, $statsdirold.'db'); + //mkdir($goa_db_dir); + + $files = scandir($statsdir); + + foreach ($files as $file) { + if (substr($file, 0, 1) != "." && !is_dir("$statsdir"."/"."$file") && substr($file, 0, 1) != "w" && substr($file, 0, 1) != "i") $app->system->copy("$statsdir"."/"."$file", "$statsdirold"."$file"); + } + } + + // Get the GoAccess version + $match = array(); + + $goaccess_version = $app->system->system_safe('goaccess --version 2>&1'); + + if(preg_match('/[0-9]\.[0-9]{1,2}/', $goaccess_version, $match)) { + $goaccess_version = $match[0]; + } + + + /* + * GoAccess removed with 1.4 btree support and supports from this version on only "In-Memory with On-Disk Persitance Storage". + * For versions prior 1.4 you need GoAccess with btree support compiled! + */ + + $cust_lang = $conf['language']."_".strtoupper($conf['language']); + + if(version_compare($goaccess_version,1.4) >= 0) { + $app->system->exec_safe("LANG=? goaccess -f ? --config-file ? --restore --persist --db-path=? --output=?", $cust_lang, $logfile, $goaccess_conf, $goa_db_dir, $output_html); + } else { + $output = $app->system->system_safe('goaccess --help 2>&1'); + preg_match('/keep-db-files/', $output, $match); + if($match[0] == "keep-db-files") { + $app->system->exec_safe("LANG=? goaccess -f ? --config-file ? --load-from-disk --keep-db-files --db-path=? --output=?", $cust_lang, $logfile, $goaccess_conf, $goa_db_dir, $output_html); + } else { + $app->log("Stats not generated. The GoAccess binary was not compiled with btree support. Please recompile/reinstall GoAccess with btree support, or install GoAccess version >= 1.4!", LOGLEVEL_ERROR); + } + unset($output); + } + unset($cust_lang); + + if(!is_file($rec['document_root']."/".$web_folder."/stats/index.php")) { + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $rec['document_root']."/".$web_folder."/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $rec['document_root']."/".$web_folder."/stats/index.php"); + } + } + + $app->log('Created GoAccess statistics for ' . $domain, LOGLEVEL_DEBUG); + if(is_file($rec['document_root']."/".$web_folder."/stats/index.php")) { + chown($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_user']); + chgrp($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_group']); + } + + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); + } + + } else { + $app->log("Stats not generated. The GoAccess binary couldn't be found. Make sure that GoAccess is installed and that it is in \$PATH", LOGLEVEL_ERROR); + } + + parent::onRunJob(); + } + + /* this function is optional if it contains no custom code */ + public function onAfterRun() { + global $app; + + parent::onAfterRun(); + } + +} + +?> diff --git a/server/lib/classes/cron.d/150-webalizer.inc.php b/server/lib/classes/cron.d/150-webalizer.inc.php index 0ae05dd6823e3d6762360957f9e7859244a92070..6c68cef183a6bcad8532bc5cbb13edcf01201800 100644 --- a/server/lib/classes/cron.d/150-webalizer.inc.php +++ b/server/lib/classes/cron.d/150-webalizer.inc.php @@ -94,19 +94,19 @@ class cronjob_webalizer extends cronjob { $log_folder .= '/' . $subdomain_host; unset($tmp); } - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'; if(!@is_file($logfile)) { - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'; if(!@is_file($logfile)) { continue; } } - $domain = escapeshellcmd($rec['domain']); - $statsdir = escapeshellcmd($rec['document_root'].'/'.(($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web').'/stats'); + $domain = $rec['domain']; + $statsdir = $rec['document_root'].'/'.(($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web').'/stats'; $webalizer = '/usr/bin/webalizer'; $webalizer_conf_main = '/etc/webalizer/webalizer.conf'; - $webalizer_conf = escapeshellcmd($rec['document_root'].'/log/webalizer.conf'); + $webalizer_conf = $rec['document_root'].'/log/webalizer.conf'; if(is_file($statsdir.'/index.php')) unlink($statsdir.'/index.php'); @@ -122,13 +122,13 @@ class cronjob_webalizer extends cronjob { if(!@is_dir($statsdir)) mkdir($statsdir); - $username = escapeshellcmd($rec['system_user']); - $groupname = escapeshellcmd($rec['system_group']); + $username = $rec['system_user']; + $groupname = $rec['system_group']; chown($statsdir, $username); chgrp($statsdir, $groupname); - exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile"); - - exec('chown -R '.$username.':'.$groupname.' '.$statsdir); + $app->system->exec_safe("$webalizer -c ? -n ? -s ? -r ? -q -T -p -o ? ?", $webalizer_conf, $domain, $domain, $domain, $statsdir, $logfile); + + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); } diff --git a/server/lib/classes/cron.d/200-logfiles.inc.php b/server/lib/classes/cron.d/200-logfiles.inc.php index 6f38f0b403d66dee84f581dad70ed70e5bf21a5d..b0470b2ec76c539c89dc811716e2359a71145183 100644 --- a/server/lib/classes/cron.d/200-logfiles.inc.php +++ b/server/lib/classes/cron.d/200-logfiles.inc.php @@ -49,12 +49,12 @@ class cronjob_logfiles extends cronjob { public function onRunJob() { global $app, $conf; - + $app->uses('getconf'); $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - + if($server_config['log_retention'] > 0) { - $max_syslog = $server_config['log_retention']; + $max_syslog = $app->functions->intval($server_config['log_retention']); } else { $max_syslog = 10; } @@ -113,30 +113,30 @@ class cronjob_logfiles extends cronjob { } $yesterday2 = date('Ymd', time() - 86400*2); - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday2.'-access.log'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday2.'-access.log'; //* Compress logfile if(@is_file($logfile)) { // Compress yesterdays logfile - exec("gzip -c $logfile > $logfile.gz"); + $app->system->exec_safe("gzip -c ? > ?", $logfile, $logfile . '.gz'); unlink($logfile); } - + $cron_logfiles = array('cron.log', 'cron_error.log', 'cron_wget.log'); foreach($cron_logfiles as $cron_logfile) { - $cron_logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/' . $cron_logfile); - + $cron_logfile = $rec['document_root'].'/' . $log_folder . '/' . $cron_logfile; + // rename older files (move up by one) $num = $log_retention; while($num >= 1) { if(is_file($cron_logfile . '.' . $num . '.gz')) rename($cron_logfile . '.' . $num . '.gz', $cron_logfile . '.' . ($num + 1) . '.gz'); $num--; } - + // compress current logfile if(is_file($cron_logfile)) { - exec("gzip -c $cron_logfile > $cron_logfile.1.gz"); - exec("cat /dev/null > $cron_logfile"); + $app->system->exec_safe("gzip -c ? > ?", $cron_logfile, $cron_logfile . '.1.gz'); + $app->system->exec_safe("cat /dev/null > ?", $cron_logfile); } // remove older logs $num = $log_retention; @@ -146,8 +146,8 @@ class cronjob_logfiles extends cronjob { } } - // rotate and compress the error.log - $error_logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/error.log'); + // rotate and compress the error.log + $error_logfile = $rec['document_root'].'/' . $log_folder . '/error.log'; // rename older files (move up by one) $num = $log_retention; while($num >= 1) { @@ -156,8 +156,8 @@ class cronjob_logfiles extends cronjob { } // compress current logfile if(is_file($error_logfile)) { - exec("gzip -c $error_logfile > $error_logfile.1.gz"); - exec("cat /dev/null > $error_logfile"); + $app->system->exec_safe("gzip -c ? > ?", $error_logfile, $error_logfile . '.1.gz'); + $app->system->exec_safe("cat /dev/null > ?", $error_logfile); } // delete logfiles after x days (default 10) @@ -175,7 +175,7 @@ class cronjob_logfiles extends cronjob { //* Delete old logfiles in /var/log/ispconfig/httpd/ that were created by vlogger for the hostname of the server exec('hostname -f', $tmp_hostname); if($tmp_hostname[0] != '' && is_dir('/var/log/ispconfig/httpd/'.$tmp_hostname[0])) { - exec('cd /var/log/ispconfig/httpd/'.$tmp_hostname[0]."; find . -mtime +$max_syslog -name '*.log' | xargs rm > /dev/null 2> /dev/null"); + $app->system->exec_safe("cd ?; find . -mtime +$max_syslog -name '*.log' | xargs rm > /dev/null 2> /dev/null", '/var/log/ispconfig/httpd/'.$tmp_hostname[0]); } unset($tmp_hostname); @@ -184,10 +184,10 @@ class cronjob_logfiles extends cronjob { //###################################################################################################### - $ispconfig_logfiles = array('ispconfig.log', 'cron.log', 'auth.log'); + $ispconfig_logfiles = array('ispconfig.log', 'cron.log', 'auth.log', 'acme.log'); foreach($ispconfig_logfiles as $ispconfig_logfile) { $num = $max_syslog; - $ispconfig_logfile = escapeshellcmd($conf['ispconfig_log_dir'].'/'.$ispconfig_logfile); + $ispconfig_logfile = $conf['ispconfig_log_dir'].'/'.$ispconfig_logfile; // rename older files (move up by one) while($num >= 1) { if(is_file($ispconfig_logfile . '.' . $num . '.gz')) rename($ispconfig_logfile . '.' . $num . '.gz', $ispconfig_logfile . '.' . ($num + 1) . '.gz'); @@ -195,8 +195,8 @@ class cronjob_logfiles extends cronjob { } // compress current logfile if(is_file($ispconfig_logfile)) { - exec("gzip -c $ispconfig_logfile > $ispconfig_logfile.1.gz"); - exec("cat /dev/null > $ispconfig_logfile"); + $app->system->exec_safe("gzip -c ? > ?", $ispconfig_logfile, $ispconfig_logfile . '.1.gz'); + $app->system->exec_safe("cat /dev/null > ?", $ispconfig_logfile); } // remove older logs $num = $max_syslog; @@ -215,9 +215,9 @@ class cronjob_logfiles extends cronjob { $app->uses('system'); if(is_array($records)) { foreach($records as $rec){ - $tmp_path = realpath(escapeshellcmd($rec['document_root'].'/tmp')); + $tmp_path = realpath($rec['document_root'].'/tmp'); if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path) && $app->system->is_user($rec['system_user'])){ - exec('cd '.$tmp_path."; find . -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm > /dev/null 2> /dev/null"); + $app->system->exec_safe("cd ?; find . -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm > /dev/null 2> /dev/null", $tmp_path); } } } @@ -241,6 +241,18 @@ class cronjob_logfiles extends cronjob { $sql = "DELETE FROM sys_log WHERE tstamp < ? AND server_id != 0"; $app->dbmaster->query($sql, $tstamp); + /* + * now delete those entries without a linked datalog entry (datalog_id = 0) + */ + $sql = "DELETE FROM sys_log WHERE tstamp < ? AND server_id = 0 AND datalog_id = 0"; + $app->dbmaster->query($sql, $tstamp); + + /* + * now delete those entries with a linked datalog entry (datalog_id != 0) only if older than 30 days + */ + $sql = "DELETE FROM sys_log WHERE tstamp < ? AND server_id = 0 AND datalog_id != 0"; + $app->dbmaster->query($sql, $tstamp - (3600 * 24 * 23)); + /* * Delete all remote-actions "done" and older than 7 days * ATTENTION: We have the same problem as described in cleaning the datalog. We must not diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php index fa574311164630cc933539b914e6ca71b5b6c6fa..cf4272991e340515b76399bcb27f884dae171b9c 100644 --- a/server/lib/classes/cron.d/500-backup.inc.php +++ b/server/lib/classes/cron.d/500-backup.inc.php @@ -50,353 +50,8 @@ class cronjob_backup extends cronjob { public function onRunJob() { global $app, $conf; - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - $global_config = $app->getconf->get_global_config('sites'); - $backup_dir = trim($server_config['backup_dir']); - $backup_mode = $server_config['backup_mode']; - $backup_tmp = trim($server_config['backup_tmp']); - if($backup_mode == '') $backup_mode = 'userzip'; - - $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - $http_server_user = $web_config['user']; - - if($backup_dir != '') { - - if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') { - $backup_dir_permissions = 0755; - } else { - $backup_dir_permissions = 0750; - } - - if(!is_dir($backup_dir)) { - mkdir(escapeshellcmd($backup_dir), $backup_dir_permissions, true); - } else { - chmod(escapeshellcmd($backup_dir), $backup_dir_permissions); - } - $run_backups = true; - //* mount backup directory, if necessary - if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($backup_dir) ) $run_backups = false; - if($run_backups){ - $web_array = array(); - - system('which pigz > /dev/null', $ret); - if($ret === 0) { - $use_pigz = true; - $zip_cmd = 'pigz'; // db-backups - } else { - $use_pigz = false; - $zip_cmd = 'gzip'; // db-backups - } - - //* backup only active domains - $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y'"; - $records = $app->db->queryAllRecords($sql, $conf['server_id']); - if(is_array($records)) { - foreach($records as $rec) { - - //* Do the website backup - if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) { - - $web_path = $rec['document_root']; - $web_user = $rec['system_user']; - $web_group = $rec['system_group']; - $web_id = $rec['domain_id']; - if(!in_array($web_id, $web_array)) $web_array[] = $web_id; - $web_backup_dir = $backup_dir.'/web'.$web_id; - if(!is_dir($web_backup_dir)) mkdir($web_backup_dir, 0750); - chmod($web_backup_dir, 0750); - //if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') { - chown($web_backup_dir, $rec['system_user']); - chgrp($web_backup_dir, $rec['system_group']); - /*} else { - chown($web_backup_dir, 'root'); - chgrp($web_backup_dir, 'root'); - }*/ - - $backup_excludes = ''; - $b_excludes = explode(',', trim($rec['backup_excludes'])); - if(is_array($b_excludes) && !empty($b_excludes)){ - foreach($b_excludes as $b_exclude){ - $b_exclude = trim($b_exclude); - if($b_exclude != ''){ - $backup_excludes .= ' --exclude='.escapeshellarg($b_exclude); - } - } - } - - if($backup_mode == 'userzip') { - //* Create a .zip backup as web user and include also files owned by apache / nginx user - $web_backup_file = 'web'.$web_id.'_'.date('Y-m-d_H-i').'.zip'; - exec('cd '.escapeshellarg($web_path).' && sudo -u '.escapeshellarg($web_user).' find . -group '.escapeshellarg($web_group).' -print 2> /dev/null | zip -b '.escapeshellarg($backup_tmp).' --exclude=./backup\*'.$backup_excludes.' --symlinks '.escapeshellarg($web_backup_dir.'/'.$web_backup_file).' -@', $tmp_output, $retval); - if($retval == 0 || $retval == 12) exec('cd '.escapeshellarg($web_path).' && sudo -u '.escapeshellarg($web_user).' find . -user '.escapeshellarg($http_server_user).' -print 2> /dev/null | zip -b '.escapeshellarg($backup_tmp).' --exclude=./backup\*'.$backup_excludes.' --update --symlinks '.escapeshellarg($web_backup_dir.'/'.$web_backup_file).' -@', $tmp_output, $retval); - } else { - //* Create a tar.gz backup as root user - $web_backup_file = 'web'.$web_id.'_'.date('Y-m-d_H-i').'.tar.gz'; - if ($use_pigz) { - exec('tar pcf - --directory '.escapeshellarg($web_path).' . --exclude=./backup\*'.$backup_excludes.' | pigz > '.escapeshellarg($web_backup_dir.'/'.$web_backup_file), $tmp_output, $retval); - } else { - exec('tar pczf '.escapeshellarg($web_backup_dir.'/'.$web_backup_file).' --exclude=./backup\*'.$backup_excludes.' --directory '.escapeshellarg($web_path).' .', $tmp_output, $retval); -} - } - if($retval == 0 || ($backup_mode != 'userzip' && $retval == 1) || ($backup_mode == 'userzip' && $retval == 12)) { // tar can return 1, zip can return 12(due to harmless warings) and still create valid backups - if(is_file($web_backup_dir.'/'.$web_backup_file)){ - $backupusername = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_user : 'root'; - $backupgroup = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_group : 'root'; - chown($web_backup_dir.'/'.$web_backup_file, $backupusername); - chgrp($web_backup_dir.'/'.$web_backup_file, $backupgroup); - chmod($web_backup_dir.'/'.$web_backup_file, 0750); - - //* Insert web backup record in database - $filesize = filesize($web_backup_dir.'/'.$web_backup_file); - $sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, tstamp, filename, filesize) VALUES (?, ?, ?, ?, ?, ?, ?)"; - $app->db->query($sql, $conf['server_id'], $web_id, 'web', $backup_mode, time(), $web_backup_file, $filesize); - if($app->db->dbHost != $app->dbmaster->dbHost) - $app->dbmaster->query($sql, $conf['server_id'], $web_id, 'web', $backup_mode, time(), $web_backup_file, $filesize); - unset($filesize); - } - } else { - if(is_file($web_backup_dir.'/'.$web_backup_file)) unlink($web_backup_dir.'/'.$web_backup_file); - $app->log('Backup of '.$web_path.' failed.', LOGLEVEL_WARN); - } - - //* Remove old backups - $backup_copies = intval($rec['backup_copies']); - - $dir_handle = dir($web_backup_dir); - $files = array(); - while (false !== ($entry = $dir_handle->read())) { - if($entry != '.' && $entry != '..' && substr($entry, 0, 3) == 'web' && is_file($web_backup_dir.'/'.$entry)) { - $files[] = $entry; - } - } - $dir_handle->close(); - - rsort($files); - - for ($n = $backup_copies; $n <= 10; $n++) { - if(isset($files[$n]) && is_file($web_backup_dir.'/'.$files[$n])) { - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; - $app->db->query($sql, $conf['server_id'], $web_id, $files[$n]); - if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $web_id, $files[$n]); - @unlink($web_backup_dir.'/'.$files[$n]); - } - } - - unset($files); - unset($dir_handle); - - //* Remove backupdir symlink and create as directory instead - $app->system->web_folder_protection($web_path, false); - - if(is_link($web_path.'/backup')) { - unlink($web_path.'/backup'); - } - if(!is_dir($web_path.'/backup')) { - mkdir($web_path.'/backup'); - chown($web_path.'/backup', $rec['system_user']); - chgrp($web_path.'/backup', $rec['system_group']); - } - - $app->system->web_folder_protection($web_path, true); - } - - /* If backup_interval is set to none and we have a - backup directory for the website, then remove the backups */ - if($rec['backup_interval'] == 'none' || $rec['backup_interval'] == '') { - $web_id = $rec['domain_id']; - $web_user = $rec['system_user']; - $web_backup_dir = realpath($backup_dir.'/web'.$web_id); - if(is_dir($web_backup_dir)) { - $dir_handle = opendir($web_backup_dir.'/'); - while ($file = readdir($dir_handle)) { - if(!is_dir($file)) { - unlink ("$web_backup_dir/"."$file"); - } - } - } - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ?"; - $app->db->query($sql, $conf['server_id'], $web_id); - if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $web_id); - } - } - } - - $records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND backup_interval != 'none' AND backup_interval != ''", $conf['server_id']); - if(is_array($records)) { - - include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf'; - - foreach($records as $rec) { - - //* Do the database backup - if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) { - - $web_id = $rec['parent_domain_id']; - if(!in_array($web_id, $web_array)) $web_array[] = $web_id; - $db_backup_dir = $backup_dir.'/web'.$web_id; - if(!is_dir($db_backup_dir)) mkdir($db_backup_dir, 0750); - chmod($db_backup_dir, 0750); - $backupusername = 'root'; - $backupgroup = 'root'; - if ($global_config['backups_include_into_web_quota'] == 'y') { - $sql = "SELECT * FROM web_domain WHERE domain_id = ".$rec['parent_domain_id']; - $webdomain = $app->db->queryOneRecord($sql); - $backupusername = $webdomain['system_user']; - $backupgroup = $webdomain['system_group']; - } - chown($db_backup_dir, $backupusername); - chgrp($db_backup_dir, $backupgroup); - - //* Do the mysql database backup with mysqldump - $db_id = $rec['database_id']; - $db_name = $rec['database_name']; - $db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql'; - //$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; - exec($command, $tmp_output, $retval); - - //* Compress the backup with gzip / pigz - if($retval == 0) exec("$zip_cmd -c '".escapeshellcmd($db_backup_dir.'/'.$db_backup_file)."' > '".escapeshellcmd($db_backup_dir.'/'.$db_backup_file).".gz'", $tmp_output, $retval); - - if($retval == 0){ - if(is_file($db_backup_dir.'/'.$db_backup_file.'.gz')){ - chmod($db_backup_dir.'/'.$db_backup_file.'.gz', 0750); - chown($db_backup_dir.'/'.$db_backup_file.'.gz', fileowner($db_backup_dir)); - chgrp($db_backup_dir.'/'.$db_backup_file.'.gz', filegroup($db_backup_dir)); - - //* Insert web backup record in database - $filesize = filesize($db_backup_dir.'/'.$db_backup_file.'.gz'); - $sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, tstamp, filename, filesize) VALUES (?, ?, ?, ?, ?, ?, ?)"; - $app->db->query($sql, $conf['server_id'], $web_id, 'mysql', 'sqlgz', time(), $db_backup_file.'.gz', $filesize); - if($app->db->dbHost != $app->dbmaster->dbHost) - $app->dbmaster->query($sql, $conf['server_id'], $web_id, 'mysql', 'sqlgz', time(), $db_backup_file.'.gz', $filesize); - unset($filesize); - } - } else { - if(is_file($db_backup_dir.'/'.$db_backup_file.'.gz')) unlink($db_backup_dir.'/'.$db_backup_file.'.gz'); - } - //* Remove the uncompressed file - if(is_file($db_backup_dir.'/'.$db_backup_file)) unlink($db_backup_dir.'/'.$db_backup_file); - - //* Remove old backups - $backup_copies = intval($rec['backup_copies']); - - $dir_handle = dir($db_backup_dir); - $files = array(); - while (false !== ($entry = $dir_handle->read())) { - if($entry != '.' && $entry != '..' && preg_match('/^db_('.$db_name.')_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql.gz$/', $entry, $matches) && is_file($db_backup_dir.'/'.$entry)) { - if(array_key_exists($matches[1], $files) == false) $files[$matches[1]] = array(); - $files[$matches[1]][] = $entry; - } - } - $dir_handle->close(); - - reset($files); - foreach($files as $db_name => $filelist) { - rsort($filelist); - for ($n = $backup_copies; $n <= 10; $n++) { - if(isset($filelist[$n]) && is_file($db_backup_dir.'/'.$filelist[$n])) { - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; - $app->db->query($sql, $conf['server_id'], $web_id, $filelist[$n]); - if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $web_id, $filelist[$n]); - @unlink($db_backup_dir.'/'.$filelist[$n]); - } - } - } - - unset($files); - unset($dir_handle); - } - } - - unset($clientdb_host); - unset($clientdb_user); - unset($clientdb_password); - - } - - // remove non-existing backups from database - $backups = $app->db->queryAllRecords("SELECT * FROM web_backup WHERE server_id = ?", $conf['server_id']); - if(is_array($backups) && !empty($backups)){ - foreach($backups as $backup){ - $backup_file = $backup_dir.'/web'.$backup['parent_domain_id'].'/'.$backup['filename']; - if(!is_file($backup_file)){ - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; - $app->db->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']); - } - } - } - if($app->db->dbHost != $app->dbmaster->dbHost){ - $backups = $app->dbmaster->queryAllRecords("SELECT * FROM web_backup WHERE server_id = ?", $conf['server_id']); - if(is_array($backups) && !empty($backups)){ - foreach($backups as $backup){ - $backup_file = $backup_dir.'/web'.$backup['parent_domain_id'].'/'.$backup['filename']; - if(!is_file($backup_file)){ - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; - $app->dbmaster->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']); - } - } - } - } - - // garbage collection (non-existing databases) - if(is_array($web_array) && !empty($web_array)){ - foreach($web_array as $tmp_web_id){ - $tmp_backup_dir = $backup_dir.'/web'.$tmp_web_id; - if(is_dir($tmp_backup_dir)){ - $dir_handle = dir($tmp_backup_dir); - $files = array(); - while (false !== ($entry = $dir_handle->read())) { - if($entry != '.' && $entry != '..' && preg_match('/^db_(.*?)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql.gz$/', $entry, $matches) && is_file($tmp_backup_dir.'/'.$entry)) { - - $tmp_db_name = $matches[1]; - $tmp_database = $app->db->queryOneRecord("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ? AND database_name = ?", $conf['server_id'], $tmp_web_id, $tmp_db_name); - - if(is_array($tmp_database) && !empty($tmp_database)){ - if($tmp_database['backup_interval'] == 'none' || intval($tmp_database['backup_copies']) == 0){ - @unlink($tmp_backup_dir.'/'.$entry); - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; - $app->db->query($sql, $conf['server_id'], $tmp_web_id, $entry); - if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $tmp_web_id, $entry); - } - } else { - @unlink($tmp_backup_dir.'/'.$entry); - $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; - $app->db->query($sql, $conf['server_id'], $tmp_web_id, $entry); - if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $tmp_web_id, $entry); - } - } - } - $dir_handle->close(); - } - } - } - //* end run_backups - if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir); - } - } - - // delete files from backup download dir (/var/www/example.com/backup) - unset($records, $entry, $files); - $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y'"; - $records = $app->db->queryAllRecords($sql, $conf['server_id']); - if(is_array($records)) { - foreach($records as $rec) { - $backup_download_dir = $rec['document_root'].'/backup'; - if(is_dir($backup_download_dir)){ - $dir_handle = dir($backup_download_dir); - $files = array(); - while (false !== ($entry = $dir_handle->read())) { - if($entry != '.' && $entry != '..' && is_file($backup_download_dir.'/'.$entry)) { - // delete files older than 3 days - if(time() - filemtime($backup_download_dir.'/'.$entry) >= 60*60*24*3) @unlink($backup_download_dir.'/'.$entry); - } - } - $dir_handle->close(); - } - } - } - + $app->load("backup"); + backup::run_all_backups($conf['server_id'], "auto"); parent::onRunJob(); } diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php index b05caf70d70af4fc6c86c9c1c3243bf834b2242c..f631f0043cbba060e644ae8a0054dc1d785fe3f0 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -33,6 +33,11 @@ class cronjob_backup_mail extends cronjob { protected $_schedule = '0 0 * * *'; private $tmp_backup_dir = ''; + /** + * The maximum number of backups that ISPConfig can store. + */ + const max_backups = 30; + /* this function is optional if it contains no custom code */ public function onPrepare() { global $app; @@ -69,12 +74,11 @@ class cronjob_backup_mail extends cronjob { $records = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND maildir != ''", intval($conf['server_id'])); if(is_array($records) && $run_backups) { if(!is_dir($backup_dir)) { - mkdir(escapeshellcmd($backup_dir), $backup_dir_permissions, true); + mkdir($backup_dir, $backup_dir_permissions, true); } else { - chmod(escapeshellcmd($backup_dir), $backup_dir_permissions); + chmod($backup_dir, $backup_dir_permissions); } - system('which pigz > /dev/null', $ret); - if($ret === 0) { + if($app->system->is_installed('pigz')) { $use_pigz = true; } else { $use_pigz = false; @@ -122,24 +126,28 @@ class cronjob_backup_mail extends cronjob { if ($rec['maildir_format'] == 'mdbox') { if (empty($this->tmp_backup_dir)) $this->tmp_backup_dir = $rec['maildir']; // Create temporary backup-mailbox - exec("su -c 'dsync backup -u \"".$rec["email"]."\" mdbox:".$this->tmp_backup_dir."/backup'", $tmp_output, $retval); + $app->system->exec_safe("su -c ?", 'dsync backup -u "'.$rec["email"].'" mdbox:' . $this->tmp_backup_dir . '/backup'); if($backup_mode == 'userzip') { $mail_backup_file.='.zip'; - exec('cd '.$this->tmp_backup_dir.' && zip '.$mail_backup_dir.'/'.$mail_backup_file.' -b '.escapeshellarg($backup_tmp).' -r backup > /dev/null && rm -rf backup', $tmp_output, $retval); - } - else { + $app->system->exec_safe('cd ? && zip ? -b ? -r backup > /dev/null && rm -rf backup', $this->tmp_backup_dir, $mail_backup_dir.'/'.$mail_backup_file, $backup_tmp); + $retval = $app->system->last_exec_retcode(); + } else { $mail_backup_file.='.tar.gz'; if ($use_pigz) { - exec('tar pcf - --directory '.escapeshellarg($this->tmp_backup_dir).' backup | pigz > '.$mail_backup_dir.'/'.$mail_backup_file.' && rm -rf '.$this->tmp_backup_dir.'/backup', $tmp_output, $retval); + $app->system->exec_safe('tar pcf - --directory ? backup | pigz > ? && rm -rf ?', $this->tmp_backup_dir, $mail_backup_dir.'/'.$mail_backup_file, $this->tmp_backup_dir.'/backup'); + $retval = $app->system->last_exec_retcode(); } else { - exec(escapeshellcmd('tar pczf '.$mail_backup_dir.'/'.$mail_backup_file.' --directory '.$this->tmp_backup_dir.' backup && rm -rf '.$this->tmp_backup_dir.'/backup'), $tmp_output, $retval); + $app->system->exec_safe('tar pczf ? --directory ? backup && rm -rf ?', $mail_backup_dir.'/'.$mail_backup_file, $this->tmp_backup_dir, $this->tmp_backup_dir.'/backup'); + $retval = $app->system->last_exec_retcode(); } } if ($retval != 0) { // Cleanup - if (file_exists($this->tmp_backup_dir.'/backup')) exec('rm -rf '.$this->tmp_backup_dir.'/backup'); + if(file_exists($this->tmp_backup_dir . '/backup')) { + $app->system->exec_safe('rm -rf ?', $this->tmp_backup_dir . '/backup'); + } } } else { @@ -154,15 +162,17 @@ class cronjob_backup_mail extends cronjob { //* create archives if($backup_mode == 'userzip') { $mail_backup_file.='.zip'; - exec('cd '.$domain_dir.' && zip '.$mail_backup_dir.'/'.$mail_backup_file.' -b '.escapeshellarg($backup_tmp).' -r '.$source_dir.' > /dev/null', $tmp_output, $retval); + $app->system->exec_safe('cd ? && zip ? -b ? -r ? > /dev/null', $domain_dir, $mail_backup_dir.'/'.$mail_backup_file, $backup_tmp, $source_dir); + $retval = $app->system->last_exec_retcode(); } else { /* Create a tar.gz backup */ $mail_backup_file.='.tar.gz'; if ($use_pigz) { - exec('tar pcf - --directory '.escapeshellarg($domain_dir).' '.escapeshellarg($source_dir).' | pigz > '.$mail_backup_dir.'/'.$mail_backup_file, $tmp_output, $retval); + $app->system->exec_safe('tar pcf - --directory ? ? | pigz > ?', $domain_dir, $source_dir, $mail_backup_dir.'/'.$mail_backup_file); } else { - exec(escapeshellcmd('tar pczf '.$mail_backup_dir.'/'.$mail_backup_file.' --directory '.$domain_dir.' '.$source_dir), $tmp_output, $retval); + $app->system->exec_safe('tar pczf ? --directory ? ?', $mail_backup_dir.'/'.$mail_backup_file, $domain_dir, $source_dir); } + $retval = $app->system->last_exec_retcode(); } } @@ -181,7 +191,9 @@ class cronjob_backup_mail extends cronjob { if(is_file($mail_backup_dir.'/'.$mail_backup_file)) unlink($mail_backup_dir.'/'.$mail_backup_file); // And remove backup-mdbox if ($rec['maildir_format'] == 'mdbox') { - if(file_exists($rec['maildir'].'/backup')) exec("su -c 'rm -rf ".$rec['maildir']."/backup'"); + if(file_exists($rec['maildir'] . '/backup')) { + $app->system->exec_safe('rm -rf ?', $rec['maildir'] . '/backup'); + } } $app->log($mail_backup_file.' NOK:'.implode('',$tmp_output), LOGLEVEL_WARN); } @@ -196,7 +208,7 @@ class cronjob_backup_mail extends cronjob { } $dir_handle->close(); rsort($files); - for ($n = $backup_copies; $n <= 10; $n++) { + for ($n = $backup_copies; $n <= self::max_backups; $n++) { if(isset($files[$n]) && is_file($mail_backup_dir.'/'.$files[$n])) { unlink($mail_backup_dir.'/'.$files[$n]); $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?"; diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php new file mode 100755 index 0000000000000000000000000000000000000000..7e8c82da6419f39b187a3be808614bb8137b19d1 --- /dev/null +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -0,0 +1,97 @@ +<?php + +/* +Copyright (c) 2020, Florian Schaal, schaal @it UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class cronjob_clean_mailboxes extends cronjob { + + // should run before quota notify and backup + // quota notify and backup is both '0 0 * * *' + + // job schedule + protected $_schedule = '00 22 * * *'; + + /* this function is optional if it contains no custom code */ + public function onPrepare() { + global $app; + + parent::onPrepare(); + } + + /* this function is optional if it contains no custom code */ + public function onBeforeRun() { + global $app; + + return parent::onBeforeRun(); + } + + public function onRunJob() { + global $app, $conf; + + $trash_names=array('Trash', 'Papierkorb', 'Deleted Items', 'Deleted Messages', 'INBOX.Trash', 'INBOX.Papierkorb', 'INBOX.Deleted Messages'); + $junk_names=array('Junk', 'Junk Email', 'SPAM', 'INBOX.SPAM'); + + $purge_cmd = 'doveadm expunge -u ? mailbox ? sentbefore '; + $recalc_cmd = 'doveadm quota recalc -u ?'; + + $server_id = intval($conf['server_id']); + $records = $app->db->queryAllRecords("SELECT email, maildir, purge_trash_days, purge_junk_days FROM mail_user WHERE maildir_format = 'maildir' AND disableimap = 'n' AND server_id = ? AND (purge_trash_days > 0 OR purge_junk_days > 0)", $server_id); + + if(is_array($records) && !empty($records)) { + foreach($records as $email) { + if($email['purge_trash_days'] > 0) { + foreach($trash_names as $trash) { + if(is_dir($email['maildir'].'/Maildir/.'.$trash)) { + $app->system->exec_safe($purge_cmd.intval($email['purge_trash_days']).'d', $email['email'], $trash); + } + } + } + if($email['purge_junk_days'] > 0) { + foreach($junk_names as $junk) { + if(is_dir($email['maildir'].'/Maildir/.'.$junk)) { + $app->system->exec_safe($purge_cmd.intval($email['purge_junk_days']).'d', $email['email'], $junk); + } + } + } + $app->system->exec_safe($recalc_cmd, $email['email']); + } + } + + parent::onRunJob(); + } + + /* this function is optional if it contains no custom code */ + public function onAfterRun() { + global $app; + + parent::onAfterRun(); + } + +} + +?> diff --git a/server/lib/classes/cron.d/600-purge_mailboxes.inc.php b/server/lib/classes/cron.d/600-purge_mailboxes.inc.php index 59775fb7be2512c9b10fc2a3d74f7149b83a8a5f..451eb56642751e9ce25b025406855fa70513dcf9 100644 --- a/server/lib/classes/cron.d/600-purge_mailboxes.inc.php +++ b/server/lib/classes/cron.d/600-purge_mailboxes.inc.php @@ -58,7 +58,7 @@ class cronjob_purge_mailboxes extends cronjob { if(is_array($records)) { foreach($records as $rec){ - exec("su -c 'doveadm purge -u \"".$rec["email"]."\"'"); + $app->system->exec_safe("su -c ?", 'doveadm purge -u "' . $rec["email"] . '"'); } } diff --git a/server/lib/classes/cron.d/900-letsencrypt.inc.php b/server/lib/classes/cron.d/900-letsencrypt.inc.php index d03d4a184a7c2626f7d05816c9aa628d80da14f4..b0f6f39c51a96ae205d151539fa7fd0f1c011620 100644 --- a/server/lib/classes/cron.d/900-letsencrypt.inc.php +++ b/server/lib/classes/cron.d/900-letsencrypt.inc.php @@ -35,8 +35,6 @@ class cronjob_letsencrypt extends cronjob { /* this function is optional if it contains no custom code */ public function onPrepare() { - global $app; - parent::onPrepare(); } @@ -44,6 +42,7 @@ class cronjob_letsencrypt extends cronjob { public function onBeforeRun() { global $app; + $app->modules->loadModules('web_module'); return parent::onBeforeRun(); } @@ -51,10 +50,19 @@ class cronjob_letsencrypt extends cronjob { global $app, $conf; $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { - $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); - $letsencrypt = reset($letsencrypt); - if(is_executable($letsencrypt)) { + if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { + $acme = $app->letsencrypt->get_acme_script(); + if($acme) { + // skip letsencrypt + parent::onRunJob(); + return; + } + + $letsencrypt = $app->letsencrypt->get_certbot_script(); + if($letsencrypt) { + $ret = null; + $val = 0; + $matches = array(); $version = exec($letsencrypt . ' --version 2>&1', $ret, $val); if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $version, $matches)) { $type = strtolower($matches[1]); @@ -65,7 +73,7 @@ class cronjob_letsencrypt extends cronjob { } else { $marker_file = '/usr/local/ispconfig/server/le.restart'; $cmd = "echo '1' > " . $marker_file; - exec($letsencrypt . ' -n renew --post-hook ' . escapeshellarg($cmd)); + $app->system->exec_safe($letsencrypt . ' -n renew --post-hook ?', $cmd); if(file_exists($marker_file) && trim(file_get_contents($marker_file)) == '1') { unlink($marker_file); $app->services->restartServiceDelayed('httpd', 'force-reload'); @@ -85,11 +93,7 @@ class cronjob_letsencrypt extends cronjob { /* this function is optional if it contains no custom code */ public function onAfterRun() { - global $app; - parent::onAfterRun(); } -} - -?> +} \ No newline at end of file diff --git a/server/lib/classes/cron.inc.php b/server/lib/classes/cron.inc.php index 48ca09373901eb3c1cfaf977bdfcf1248531db64..67be475fe37249d1df27d13c1d7408a72e9ba1e0 100644 --- a/server/lib/classes/cron.inc.php +++ b/server/lib/classes/cron.inc.php @@ -264,9 +264,9 @@ class cron { if(!array_key_exists($sField, $this->_aValidValues)) return false; reset($this->_aValidValues[$sField]); - while(($cur = each($this->_aValidValues[$sField])) !== false) { - if($bIncludeCurrent == true && $cur['value'] >= $iValue) return $cur['value']; - elseif($cur['value'] > $iValue) return $cur['value']; + foreach($this->_aValidValues[$sField] as $cur) { + if($bIncludeCurrent == true && $cur >= $iValue) return $cur; + elseif($cur > $iValue) return $cur; } return reset($this->_aValidValues[$sField]); } diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php index 9fba5af3c5cc856d61276693d3dd406a9d261e40..27bc7038cf69dfa25efb05b128b0460afa8d8cc0 100644 --- a/server/lib/classes/cronjob.inc.php +++ b/server/lib/classes/cronjob.inc.php @@ -76,14 +76,14 @@ class cronjob { /** run through cronjob sequence **/ - public function run() { + public function run($debug_mode = false) { global $conf; if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called run() for class " . get_class($this) . "\n"; if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Job has schedule: " . $this->getSchedule() . "\n"; $this->onPrepare(); $run_it = $this->onBeforeRun(); - if($run_it == true) { + if($run_it == true || $debug_mode === true) { $this->onRunJob(); $this->onAfterRun(); $this->onCompleted(); @@ -100,7 +100,7 @@ class cronjob { // check the run time and values for this job // get previous run data - $data = $app->db->queryOneRecord("SELECT `last_run`, `next_run`, `running` FROM `sys_cron` WHERE `name` = ?", get_class($this)); + $data = $app->db->queryOneRecord("SELECT `last_run`, `next_run`, IF(`last_run` IS NOT NULL AND `last_run` < DATE_SUB(NOW(), INTERVAL 24 HOUR), 0, `running`) as `running` FROM `sys_cron` WHERE `name` = ?", get_class($this)); if($data) { if($data['last_run']) $this->_last_run = $data['last_run']; if($data['next_run']) $this->_next_run = $data['next_run']; @@ -174,7 +174,7 @@ class cronjob { } // child classes may NOT override this! - private function onCompleted() { + protected function onCompleted() { global $app, $conf; if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onCompleted() for class " . get_class($this) . "\n"; diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 7d7b56898060421241ccd396bd70fb4e30ef7ba4..8c381230961976b5152ae5bff25cd7fa00f3634a 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -258,6 +258,8 @@ class db private function _query($sQuery = '') { global $app; + + $aArgs = func_get_args(); if ($sQuery == '') { $this->_sqlerror('Keine Anfrage angegeben / No query given'); @@ -272,7 +274,7 @@ class db if(!is_object($this->_iConnId)) { $this->_iConnId = mysqli_init(); } - if(!mysqli_real_connect($this->_isConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { + if(!mysqli_real_connect($this->_iConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { if(mysqli_connect_errno() == '111') { // server is not available if($try > 9) { @@ -297,7 +299,6 @@ class db } } while($ok == false); - $aArgs = func_get_args(); $sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs); $this->securityScan($sQuery); $this->_iQueryId = mysqli_query($this->_iConnId, $sQuery); @@ -353,10 +354,17 @@ class db * @return array result row or NULL if none found */ public function queryOneRecord($sQuery = '') { - if(!preg_match('/limit \d+\s*(,\s*\d+)?$/i', $sQuery)) $sQuery .= ' LIMIT 0,1'; - + $aArgs = func_get_args(); - $oResult = call_user_func_array(array(&$this, 'query'), $aArgs); + if(!empty($aArgs)) { + $sQuery = array_shift($aArgs); + if($sQuery && !preg_match('/limit \d+(\s*,\s*\d+)?$/i', $sQuery)) { + $sQuery .= ' LIMIT 0,1'; + } + array_unshift($aArgs, $sQuery); + } + + $oResult = call_user_func_array([&$this, 'query'], $aArgs); if(!$oResult) return null; $aReturn = $oResult->get(); @@ -559,7 +567,7 @@ class db } elseif(is_object($app) && method_exists($app, 'log') && $bNoLog == false) { $app->log($sErrormsg . $sAddMsg . ' -> ' . $mysql_errno . ' (' . $mysql_error . ')', LOGLEVEL_WARN, false); } elseif(php_sapi_name() == 'cli') { - echo $sErrormsg . $sAddMsg; + echo $sErrormsg . ' ' . $sAddMsg; } } @@ -709,7 +717,7 @@ class db if($diff_num > 0) { $diffstr = serialize($diffrec_full); - if(isset($_SESSION)) { + if(!empty($_SESSION['s']['user']['username'])) { $username = $_SESSION['s']['user']['username']; } else { $username = 'admin'; @@ -1300,7 +1308,7 @@ class fakedb_result { if(!is_array($this->aLimitedData)) return $aItem; - if(list($vKey, $aItem) = each($this->aLimitedData)) { + foreach($this->aLimitedData as $vKey => $aItem) { if(!$aItem) $aItem = null; } return $aItem; diff --git a/server/lib/classes/file.inc.php b/server/lib/classes/file.inc.php index eadb38b789f0cfd9f80d6fd951e53be403616821..28757d0dd50b4e30baab69e29cf14d22dfb4e577 100644 --- a/server/lib/classes/file.inc.php +++ b/server/lib/classes/file.inc.php @@ -158,26 +158,6 @@ class file{ return $ret_val; } - function edit_dist($var, $val){ - global $$var; - $files = array('/root/ispconfig/dist.inc.php'); - foreach($files as $file){ - if(is_file($file)){ - $file_content = $this->unix_nl($this->rf($file)); - $lines = explode("\n", $file_content); - for($i=0;$i<sizeof($lines);$i++){ - $parts = explode('=', $lines[$i]); - if($parts[0] == $var || $parts[0] == '$'.$var.' '){ - $parts[1] = str_replace($$var, $val, $parts[1]); - } - $lines[$i] = implode('=', $parts); - } - $file_content = implode("\n", $lines); - $this->wf($file, $file_content); - } - } - } - function getDirectoryListing($dirname, $sortorder = 'a', $show_subdirs = 0, $show_subdirfiles = 0, $exts = '', $ext_save = 1){ // This function will return an array with filenames based on the criteria you can set in the variables // @sortorder : a for ascending (the standard) or d for descending (you can use the "r" for reverse as well, works the same) diff --git a/server/lib/classes/functions.inc.php b/server/lib/classes/functions.inc.php index e36ed5b04f5f4b8853a2f35bcec5358d7dc9f09e..1d9dd67569448a2cee200ec71281685fd568517a 100644 --- a/server/lib/classes/functions.inc.php +++ b/server/lib/classes/functions.inc.php @@ -425,9 +425,9 @@ class functions { if(file_exists($id_rsa_file)) unset($id_rsa_file); if(file_exists($id_rsa_pub_file)) unset($id_rsa_pub_file); if(!file_exists($id_rsa_file) && !file_exists($id_rsa_pub_file)) { - exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f '.$id_rsa_file.' -N ""'); + $app->system->exec_safe('ssh-keygen -t rsa -C ? -f ? -N ""', $username.'-rsa-key-'.time(), $id_rsa_file); $app->db->query("UPDATE client SET created_at = UNIX_TIMESTAMP(), id_rsa = ?, ssh_rsa = ? WHERE client_id = ?", $app->system->file_get_contents($id_rsa_file), $app->system->file_get_contents($id_rsa_pub_file), $client_id); - exec('rm -f '.$id_rsa_file.' '.$id_rsa_pub_file); + $app->system->exec_safe('rm -f ? ?', $id_rsa_file, $id_rsa_pub_file); } else { $app->log("Failed to create SSH keypair for ".$username, LOGLEVEL_WARN); } diff --git a/server/lib/classes/ispcmail.inc.php b/server/lib/classes/ispcmail.inc.php index 305b39f35ba47e235413cf4e364cdc4987cd6ce0..fbf5f84dcae2f0d8104f1cb540c66d5a69dadf49 100644 --- a/server/lib/classes/ispcmail.inc.php +++ b/server/lib/classes/ispcmail.inc.php @@ -169,7 +169,7 @@ class ispcmail { $this->smtp_host = $value; break; case 'smtp_port': - $this->smtp_port = $value; + if(intval($value) > 0) $this->smtp_port = $value; break; case 'smtp_user': $this->smtp_user = $value; @@ -586,8 +586,8 @@ class ispcmail { */ private function _smtp_login() { $this->_smtp_conn = fsockopen(($this->smtp_crypt == 'ssl' ? 'tls://' : '') . $this->smtp_host, $this->smtp_port, $errno, $errstr, 30); - $response = fgets($this->_smtp_conn, 515); if(empty($this->_smtp_conn)) return false; + $response = fgets($this->_smtp_conn, 515); //Say Hello to SMTP if($this->smtp_helo == '') $this->detectHelo(); @@ -598,7 +598,20 @@ class ispcmail { if($this->smtp_crypt == 'tls') { fputs($this->_smtp_conn, 'STARTTLS' . $this->_crlf); fgets($this->_smtp_conn, 515); - stream_socket_enable_crypto($this->_smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); + + $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT; + + if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) { + $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; + $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT; + } + stream_context_set_option($this->_smtp_conn, 'ssl', 'verify_host', false); + stream_context_set_option($this->_smtp_conn, 'ssl', 'verify_peer', false); + stream_context_set_option($this->_smtp_conn, 'ssl', 'verify_peer_name', false); + stream_context_set_option($this->_smtp_conn, 'ssl', 'allow_self_signed', true); + if (stream_socket_enable_crypto($this->_smtp_conn, true, $crypto_method) != true) { + return false; + } } //AUTH LOGIN diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 4f681cc4852e5ed1b08ee6ec05f0769b4883f2c1..734663811921d799674fcc9e0cbe3b5e1b28bf60 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -37,35 +37,163 @@ class letsencrypt { */ private $base_path = '/etc/letsencrypt'; private $renew_config_path = '/etc/letsencrypt/renewal'; - + private $certbot_use_certcommand = false; public function __construct(){ } + public function get_acme_script() { + $acme = explode("\n", shell_exec('which /usr/local/ispconfig/server/scripts/acme.sh /root/.acme.sh/acme.sh')); + $acme = reset($acme); + if(is_executable($acme)) { + return $acme; + } else { + return false; + } + } + + public function get_acme_command($domains, $key_file, $bundle_file, $cert_file, $server_type = 'apache') { + global $app, $conf; + + $letsencrypt = $this->get_acme_script(); + + $cmd = ''; + // generate cli format + foreach($domains as $domain) { + $cmd .= (string) " -d " . $domain; + } + + if($cmd == '') { + return false; + } + + if($server_type != 'apache' || version_compare($app->system->getapacheversion(true), '2.4.8', '>=')) { + $cert_arg = '--fullchain-file ' . escapeshellarg($cert_file); + } else { + $cert_arg = '--fullchain-file ' . escapeshellarg($bundle_file) . ' --cert-file ' . escapeshellarg($cert_file); + } + + $cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme ; R=$? ; if [[ $R -eq 0 || $R -eq 2 ]] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' ' . $cert_arg . ' --reloadcmd ' . escapeshellarg($this->get_reload_command()) . ' --log ' . escapeshellarg($conf['ispconfig_log_dir'].'/acme.log') . '; C=$? ; fi ; if [[ $C -eq 0 ]] ; then exit $R ; else exit $C ; fi'; + + return $cmd; + } + + public function get_certbot_script() { + $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); + $letsencrypt = reset($letsencrypt); + if(is_executable($letsencrypt)) { + return $letsencrypt; + } else { + return false; + } + } + + private function install_acme() { + $install_cmd = 'wget -O - https://get.acme.sh | sh'; + $ret = null; + $val = 0; + exec($install_cmd . ' 2>&1', $ret, $val); + + return ($val == 0 ? true : false); + } + + private function get_reload_command() { + global $app, $conf; + + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + $daemon = ''; + switch ($web_config['server_type']) { + case 'nginx': + $daemon = $web_config['server_type']; + break; + default: + if(is_file($conf['init_scripts'] . '/' . 'httpd24-httpd') || is_dir('/opt/rh/httpd24/root/etc/httpd')) { + $daemon = 'httpd24-httpd'; + } elseif(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) { + $daemon = 'httpd'; + } else { + $daemon = 'apache2'; + } + } + + $cmd = $app->system->getinitcommand($daemon, 'force-reload'); + return $cmd; + } + + public function get_certbot_command($domains) { + global $app; + + $letsencrypt = $this->get_certbot_script(); + + $cmd = ''; + // generate cli format + foreach($domains as $domain) { + $cmd .= (string) " --domains " . $domain; + } + + if($cmd == '') { + return false; + } + + $matches = array(); + $ret = null; + $val = 0; + + $letsencrypt_version = exec($letsencrypt . ' --version 2>&1', $ret, $val); + if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $letsencrypt_version, $matches)) { + $letsencrypt_version = $matches[2]; + } + if (version_compare($letsencrypt_version, '0.22', '>=')) { + $acme_version = 'https://acme-v02.api.letsencrypt.org/directory'; + } else { + $acme_version = 'https://acme-v01.api.letsencrypt.org/directory'; + } + if (version_compare($letsencrypt_version, '0.30', '>=')) { + $app->log("LE version is " . $letsencrypt_version . ", so using certificates command", LOGLEVEL_DEBUG); + $this->certbot_use_certcommand = true; + $webroot_map = array(); + for($i = 0; $i < count($domains); $i++) { + $webroot_map[$domains[$i]] = '/usr/local/ispconfig/interface/acme'; + } + $webroot_args = "--webroot-map " . escapeshellarg(str_replace(array("\r", "\n"), '', json_encode($webroot_map))); + } else { + $webroot_args = "$cmd --webroot-path /usr/local/ispconfig/interface/acme"; + } + + $cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $cmd --webroot-path /usr/local/ispconfig/interface/acme"; + + return $cmd; + } + public function get_letsencrypt_certificate_paths($domains = array()) { global $app; - + + if($this->get_acme_script()) { + return false; + } + if(empty($domains)) return false; if(!is_dir($this->renew_config_path)) return false; - + $dir = opendir($this->renew_config_path); if(!$dir) return false; - + $path_scores = array(); - + $main_domain = reset($domains); sort($domains); $min_diff = false; - + while($file = readdir($dir)) { if($file === '.' || $file === '..' || substr($file, -5) !== '.conf') continue; $file_path = $this->renew_config_path . '/' . $file; if(!is_file($file_path) || !is_readable($file_path)) continue; - + $fp = fopen($file_path, 'r'); if(!$fp) continue; - + $path_scores[$file_path] = array( 'domains' => array(), 'diff' => 0, @@ -83,26 +211,26 @@ class letsencrypt { if($line === '') continue; elseif(!$in_list) { if($line == '[[webroot_map]]') $in_list = true; - + $tmp = explode('=', $line, 2); if(count($tmp) != 2) continue; $key = trim($tmp[0]); if($key == 'cert' || $key == 'privkey' || $key == 'chain' || $key == 'fullchain') { $path_scores[$file_path]['cert_paths'][$key] = trim($tmp[1]); } - + continue; } - + $tmp = explode('=', $line, 2); if(count($tmp) != 2) continue; - + $domain = trim($tmp[0]); if($domain == $main_domain) $path_scores[$file_path]['has_main_domain'] = true; $path_scores[$file_path]['domains'][] = $domain; } fclose($fp); - + sort($path_scores[$file_path]['domains']); if(count(array_intersect($domains, $path_scores[$file_path]['domains'])) < 1) { $path_scores[$file_path]['diff'] = false; @@ -110,13 +238,13 @@ class letsencrypt { // give higher diff value to missing domains than to those that are too much in there $path_scores[$file_path]['diff'] = (count(array_diff($domains, $path_scores[$file_path]['domains'])) * 1.5) + count(array_diff($path_scores[$file_path]['domains'], $domains)); } - + if($min_diff === false || $path_scores[$file_path]['diff'] < $min_diff) $min_diff = $path_scores[$file_path]['diff']; } closedir($dir); if($min_diff === false) return false; - + $cert_paths = false; $used_path = false; foreach($path_scores as $path => $data) { @@ -126,16 +254,20 @@ class letsencrypt { if($data['has_main_domain'] == true) break; } } - + $app->log("Let's Encrypt Cert config path is: " . ($used_path ? $used_path : "not found") . ".", LOGLEVEL_DEBUG); - + return $cert_paths; } - + private function get_ssl_domain($data) { + global $app; + $domain = $data['new']['ssl_domain']; - if(!$domain) $domain = $data['new']['domain']; - + if(!$domain) { + $domain = $data['new']['domain']; + } + if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') { $domain = $data['new']['domain']; if(substr($domain, 0, 2) === '*.') { @@ -144,16 +276,14 @@ class letsencrypt { $domain = substr($domain, 2); } } - + return $domain; } - + public function get_website_certificate_paths($data) { - global $app; - $ssl_dir = $data['new']['document_root'].'/ssl'; $domain = $this->get_ssl_domain($data); - + $cert_paths = array( 'domain' => $domain, 'key' => $ssl_dir.'/'.$domain.'.key', @@ -162,7 +292,7 @@ class letsencrypt { 'crt' => $ssl_dir.'/'.$domain.'.crt', 'bundle' => $ssl_dir.'/'.$domain.'.bundle' ); - + if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') { $cert_paths = array( 'domain' => $domain, @@ -172,25 +302,31 @@ class letsencrypt { 'bundle' => $ssl_dir.'/'.$domain.'-le.bundle' ); } - + return $cert_paths; } - + public function request_certificates($data, $server_type = 'apache') { global $app, $conf; - + $app->uses('getconf'); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - + + $use_acme = false; + if($this->get_acme_script()) { + $use_acme = true; + } elseif(!$this->get_certbot_script()) { + // acme and le missing + $this->install_acme(); + } + $tmp = $app->letsencrypt->get_website_certificate_paths($data); $domain = $tmp['domain']; $key_file = $tmp['key']; - $key_file2 = $tmp['key2']; - $csr_file = $tmp['csr']; $crt_file = $tmp['crt']; $bundle_file = $tmp['bundle']; - + // default values $temp_domains = array($domain); $cli_domain_arg = ''; @@ -209,7 +345,7 @@ class letsencrypt { $temp_domains[] = $subdomain['domain']; } } - + //* then, add alias domain if we have $aliasdomains = $app->db->queryAllRecords('SELECT domain,subdomain FROM web_domain WHERE parent_domain_id = '.intval($data['new']['domain_id'])." AND active = 'y' AND type = 'alias' AND ssl_letsencrypt_exclude != 'y'"); if(is_array($aliasdomains)) { @@ -256,71 +392,122 @@ class letsencrypt { $app->log("There were " . $le_domain_count . " domains in the domain list. LE only supports 100, so we strip the rest.", LOGLEVEL_WARN); } - // generate cli format - foreach($temp_domains as $temp_domain) { - $cli_domain_arg .= (string) " --domains " . $temp_domain; - } - // unset useless data unset($subdomains); unset($aliasdomains); - + + $this->certbot_use_certcommand = false; $letsencrypt_cmd = ''; + $allow_return_codes = null; + if($use_acme) { + $letsencrypt_cmd = $this->get_acme_command($temp_domains, $key_file, $bundle_file, $crt_file, $server_type); + $allow_return_codes = array(2); + } else { + $letsencrypt_cmd = $this->get_certbot_command($temp_domains); + } + $success = false; - if(!empty($cli_domain_arg)) { + if($letsencrypt_cmd) { if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { $app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); $app->log("Let's Encrypt SSL Cert domains: $cli_domain_arg", LOGLEVEL_DEBUG); - - $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); - $letsencrypt = reset($letsencrypt); - if(is_executable($letsencrypt)) { - $letsencrypt_version = exec($letsencrypt . ' --version 2>&1', $ret, $val); - if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $letsencrypt_version, $matches)) { - $letsencrypt_version = $matches[2]; - } - if ($letsencrypt_version >=0.22) { - $acme_version = 'https://acme-v02.api.letsencrypt.org/directory'; - } else { - $acme_version = 'https://acme-v01.api.letsencrypt.org/directory'; - } - $letsencrypt_cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $cli_domain_arg --webroot-path /usr/local/ispconfig/interface/acme"; - $success = $app->system->_exec($letsencrypt_cmd); - } + + $success = $app->system->_exec($letsencrypt_cmd, $allow_return_codes); } else { $app->log("Migration mode active, skipping Let's Encrypt SSL Cert creation for: $domain", LOGLEVEL_DEBUG); $success = true; } } - - $le_files = $this->get_letsencrypt_certificate_paths($temp_domains); + + if($use_acme === true) { + if(!$success) { + $app->log('Let\'s Encrypt SSL Cert for: ' . $domain . ' could not be issued.', LOGLEVEL_WARN); + $app->log($letsencrypt_cmd, LOGLEVEL_WARN); + return false; + } else { + return true; + } + } + + $le_files = array(); + if($this->certbot_use_certcommand === true && $letsencrypt_cmd) { + $cli_domain_arg = ''; + // generate cli format + foreach($temp_domains as $temp_domain) { + $cli_domain_arg .= (string) " --domains " . $temp_domain; + } + + + $letsencrypt_cmd = $this->get_certbot_script() . " certificates " . $cli_domain_arg; + $output = explode("\n", shell_exec($letsencrypt_cmd . " 2>/dev/null | grep -v '^\$'")); + $le_path = ''; + $skip_to_next = true; + $matches = null; + foreach($output as $outline) { + $outline = trim($outline); + $app->log("LE CERT OUTPUT: " . $outline, LOGLEVEL_DEBUG); + + if($skip_to_next === true && !preg_match('/^\s*Certificate Name/', $outline)) { + continue; + } + $skip_to_next = false; + + if(preg_match('/^\s*Expiry.*?VALID:\s+\D/', $outline)) { + $app->log("Found LE path is expired or invalid: " . $matches[1], LOGLEVEL_DEBUG); + $skip_to_next = true; + continue; + } + + if(preg_match('/^\s*Certificate Path:\s*(\/.*?)\s*$/', $outline, $matches)) { + $app->log("Found LE path: " . $matches[1], LOGLEVEL_DEBUG); + $le_path = dirname($matches[1]); + if(is_dir($le_path)) { + break; + } else { + $le_path = false; + } + } + } + + if($le_path) { + $le_files = array( + 'privkey' => $le_path . '/privkey.pem', + 'chain' => $le_path . '/chain.pem', + 'cert' => $le_path . '/cert.pem', + 'fullchain' => $le_path . '/fullchain.pem' + ); + } + } + if(empty($le_files)) { + $le_files = $this->get_letsencrypt_certificate_paths($temp_domains); + } unset($temp_domains); - + if($server_type != 'apache' || version_compare($app->system->getapacheversion(true), '2.4.8', '>=')) { $crt_tmp_file = $le_files['fullchain']; } else { $crt_tmp_file = $le_files['cert']; } - + $key_tmp_file = $le_files['privkey']; $bundle_tmp_file = $le_files['chain']; - + if(!$success) { // error issuing cert $app->log('Let\'s Encrypt SSL Cert for: ' . $domain . ' could not be issued.', LOGLEVEL_WARN); $app->log($letsencrypt_cmd, LOGLEVEL_WARN); - + // if cert already exists, dont remove it. Ex. expired/misstyped/noDnsYet alias domain, api down... if(!file_exists($crt_tmp_file)) { return false; } } - + //* check is been correctly created if(file_exists($crt_tmp_file)) { $app->log("Let's Encrypt Cert file: $crt_tmp_file exists.", LOGLEVEL_DEBUG); $date = date("YmdHis"); - + //* TODO: check if is a symlink, if target same keep it, either remove it if(is_file($key_file)) { $app->system->copy($key_file, $key_file.'.old.'.$date); @@ -328,12 +515,8 @@ class letsencrypt { $app->system->unlink($key_file); } - if ($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($key_tmp_file), escapeshellcmd($key_file)); - } else { - if(@is_link($key_file)) $app->system->unlink($key_file); - if(@file_exists($key_tmp_file)) exec("ln -s ".escapeshellcmd($key_tmp_file)." ".escapeshellcmd($key_file)); - } + if(@is_link($key_file)) $app->system->unlink($key_file); + if(@file_exists($key_tmp_file)) $app->system->exec_safe("ln -s ? ?", $key_tmp_file, $key_file); if(is_file($crt_file)) { $app->system->copy($crt_file, $crt_file.'.old.'.$date); @@ -341,12 +524,8 @@ class letsencrypt { $app->system->unlink($crt_file); } - if($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($crt_tmp_file), escapeshellcmd($crt_file)); - } else { - if(@is_link($crt_file)) $app->system->unlink($crt_file); - if(@file_exists($crt_tmp_file))exec("ln -s ".escapeshellcmd($crt_tmp_file)." ".escapeshellcmd($crt_file)); - } + if(@is_link($crt_file)) $app->system->unlink($crt_file); + if(@file_exists($crt_tmp_file))$app->system->exec_safe("ln -s ? ?", $crt_tmp_file, $crt_file); if(is_file($bundle_file)) { $app->system->copy($bundle_file, $bundle_file.'.old.'.$date); @@ -354,19 +533,13 @@ class letsencrypt { $app->system->unlink($bundle_file); } - if($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($bundle_tmp_file), escapeshellcmd($bundle_file)); - } else { - if(@is_link($bundle_file)) $app->system->unlink($bundle_file); - if(@file_exists($bundle_tmp_file)) exec("ln -s ".escapeshellcmd($bundle_tmp_file)." ".escapeshellcmd($bundle_file)); - } - + if(@is_link($bundle_file)) $app->system->unlink($bundle_file); + if(@file_exists($bundle_tmp_file)) $app->system->exec_safe("ln -s ? ?", $bundle_tmp_file, $bundle_file); + return true; } else { $app->log("Let's Encrypt Cert file: $crt_tmp_file does not exist.", LOGLEVEL_DEBUG); return false; } } -} - -?> +} \ No newline at end of file diff --git a/server/lib/classes/modules.inc.php b/server/lib/classes/modules.inc.php index aa95d473b23fd612cc2e4fe0b991e98f86fb305b..3fd788d0a9c4dff7c78704b699418f4ac803a142 100644 --- a/server/lib/classes/modules.inc.php +++ b/server/lib/classes/modules.inc.php @@ -37,18 +37,32 @@ class modules { /* This function is called to load the modules from the mods-enabled or the mods-core folder */ - function loadModules($type) { + function loadModules($type = 'all') { global $app, $conf; $subPath = 'mods-enabled'; - if ($type == 'core') $subPath = 'mods-core'; + if ($type == 'core') { + $subPath = 'mods-core'; + } elseif ($type == 'all') { + $type = ''; + } elseif (!preg_match('/^\w+$/', $type)) { + $app->log('Invalid loadModules type ' . $type, LOGLEVEL_ERROR); + return false; + } else { + $subPath = 'mods-available'; + } + $loaded = false; $modules_dir = $conf['rootpath'].$conf['fs_div'].$subPath.$conf['fs_div']; if (is_dir($modules_dir)) { if ($dh = opendir($modules_dir)) { while (($file = readdir($dh)) !== false) { if($file != '.' && $file != '..' && substr($file, -8, 8) == '.inc.php') { $module_name = substr($file, 0, -8); + if($type && $type !== 'core' && $type != $module_name) { + continue; + } + $loaded = true; include_once $modules_dir.$file; if($this->debug) $app->log('Loading Module: '.$module_name, LOGLEVEL_DEBUG); $app->loaded_modules[$module_name] = new $module_name; @@ -60,6 +74,9 @@ class modules { $app->log('Modules directory missing: '.$modules_dir, LOGLEVEL_ERROR); } + if($type && $type !== 'core' && $loaded === false) { + $app->log('Module ' . $type . ' not found.', LOGLEVEL_ERROR); + } } /* diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index c4a60702b26bc62a2595c7460c568cca52b85069..e349acd12894c2251ae619d423f0226652ada6f2 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -87,6 +87,10 @@ class monitor_tools { $mainver = $ver; } switch ($mainver){ + case "20.04": + $relname = "(Focal Fossa)"; + $distconfid = 'ubuntu2004'; + break; case "18.04": $relname = "(Bionic Beaver)"; $distconfid = 'ubuntu1804'; @@ -211,6 +215,12 @@ class monitor_tools { $distconfid = 'debian90'; $distid = 'debian60'; $distbaseid = 'debian'; + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,2) == '10') { + $distname = 'Debian'; + $distver = 'Buster'; + $distconfid = 'debian100'; + $distid = 'debian60'; + $distbaseid = 'debian'; } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '/sid')) { $distname = 'Debian'; $distver = 'Testing'; @@ -220,7 +230,8 @@ class monitor_tools { } else { $distname = 'Debian'; $distver = 'Unknown'; - $distid = 'debian40'; + $distid = 'debian60'; + $distconfid = 'debian100'; $distbaseid = 'debian'; } } @@ -242,6 +253,14 @@ class monitor_tools { $distver = '11.2'; $distid = 'opensuse112'; $distbaseid = 'opensuse'; + } elseif(stristr(file_get_contents('/etc/os-release'), 'opensuse')) { + $content = file_get_contents('/etc/os-release'); + preg_match_all('/NAME=\"([\w ]+)\"/m', $content, $name); + preg_match_all('/VERSION_ID=\"([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*).$/m', $content, $version); + $distname = is_array($name) ? $name[1][0] : 'openSUSE'; + $distver = is_array($version) ? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) : 'Unknown'; + $distid = 'opensuse112'; + $distbaseid = 'opensuse'; } else { $distname = 'openSUSE'; $distver = 'Unknown'; @@ -292,8 +311,9 @@ class monitor_tools { $distid = 'centos53'; $distbaseid = 'fedora'; } elseif(stristr($content, 'CentOS Linux release 7')) { + preg_match_all('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/', $content, $version); $distname = 'CentOS'; - $distver = 'Unknown'; + $distver = is_array($version)? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) :'Unknown'; $distbaseid = 'fedora'; $var=explode(" ", $content); $var=explode(".", $var[3]); @@ -303,6 +323,14 @@ class monitor_tools { } else { $distid = 'centos72'; } + } elseif(stristr($content, 'CentOS Linux release 8')) { + preg_match_all('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/', $content, $version); + $distname = 'CentOS'; + $distver = is_array($version)? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) :'Unknown'; + $distbaseid = 'fedora'; + $var=explode(" ", $content); + $var=explode(".", $var[3]); + $var=$var[0].".".$var[1]; } else { $distname = 'Redhat'; $distver = 'Unknown'; @@ -586,13 +614,12 @@ class monitor_tools { // Getting the logfile content if ($logfile != '') { - $logfile = escapeshellcmd($logfile); if (stristr($logfile, ';') or substr($logfile, 0, 9) != '/var/log/' or stristr($logfile, '..')) { $log = 'Logfile path error.'; } else { $log = ''; if (is_readable($logfile)) { - $fd = popen('tail -n 100 ' . $logfile, 'r'); + $fd = popen('tail -n 100 ' . escapeshellarg($logfile), 'r'); if ($fd) { while (!feof($fd)) { $log .= fgets($fd, 4096); diff --git a/server/lib/classes/services.inc.php b/server/lib/classes/services.inc.php index 7a8841ece5f9607ea301c698ad472ae924f50607..0914081672af92e04461202457f0ac11e5b59f3b 100644 --- a/server/lib/classes/services.inc.php +++ b/server/lib/classes/services.inc.php @@ -41,7 +41,7 @@ class services { if(is_array($this->registered_services[$service_name])) { $this->delayed_restarts[$service_name] = $action; } else { - $app->log("Unable to add a delayed restart for '$service_name'. Service not registered.", LOGLEVEL_WARNING); + $app->log("Unable to add a delayed restart for '$service_name'. Service not registered.", LOGLEVEL_WARN); } } diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index f4d94743a16c82903215378d2aac5993a4a05af9..e0699a7f82741305b6ffbd2bbaa3f460b533eb83 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -36,7 +36,10 @@ class system{ var $data; var $min_uid = 500; var $min_gid = 500; - + + private $_last_exec_out = null; + private $_last_exec_retcode = null; + /** * Construct for this class * @@ -716,8 +719,10 @@ class system{ function posix_getgrnam($group) { if(!function_exists('posix_getgrnam')){ $group_datei = $this->server_conf['group_datei']; - $cmd = 'grep -m 1 "^'.$group.':" '.$group_datei; - exec($cmd, $output, $return_var); + $cmd = 'grep -m 1 ? ?'; + $this->exec_safe($cmd, '^'.$group.':', $group_datei); + $output = $this->last_exec_out(); + $return_var = $this->last_exec_retcode(); if($return_var != 0 || !$output[0]) return false; list($f1, $f2, $f3, $f4) = explode(':', $output[0]); $f2 = trim($f2); @@ -829,23 +834,55 @@ class system{ } } - function file_put_contents($filename, $data, $allow_symlink = false) { + function file_put_contents($filename, $data, $allow_symlink = false, $run_as_user = null) { global $app; if($allow_symlink == false && $this->checkpath($filename) == false) { $app->log("Action aborted, file is a symlink: $filename", LOGLEVEL_WARN); return false; } - if(file_exists($filename)) unlink($filename); - return file_put_contents($filename, $data); + if($run_as_user !== null && $run_as_user !== 'root') { + if(!$this->check_run_as_user($run_as_user)) { + $app->log("Action aborted, invalid run-as-user: $run_as_user", LOGLEVEL_WARN); + return false; + } + if(file_exists($filename)) { + $cmd = $this->get_sudo_command('rm ' . escapeshellarg($filename), $run_as_user); + $this->exec_safe($cmd); + } + $cmd = $this->get_sudo_command('cat - > ' . escapeshellarg($filename), $run_as_user); + $retval = null; + $stderr = ''; + $this->pipe_exec($cmd, $data, $retval, $stderr); + if($retval > 0) { + $app->log("Safe file_put_contents failed: $stderr", LOGLEVEL_WARN); + return false; + } else { + $size = filesize($filename); + return $size; + } + } else { + if(file_exists($filename)) unlink($filename); + return file_put_contents($filename, $data); + } } - function file_get_contents($filename, $allow_symlink = false) { + function file_get_contents($filename, $allow_symlink = false, $run_as_user = null) { global $app; if($allow_symlink == false && $this->checkpath($filename) == false) { $app->log("Action aborted, file is a symlink: $filename", LOGLEVEL_WARN); return false; } - return file_get_contents($filename, $data); + + if($run_as_user !== null && $run_as_user !== 'root') { + if(!$this->check_run_as_user($run_as_user)) { + $app->log("Action aborted, invalid run-as-user: $run_as_user", LOGLEVEL_WARN); + return false; + } + $cmd = $this->get_sudo_command('cat ' . escapeshellarg($filename), $run_as_user) . ' 2>/dev/null'; + return $this->system_safe($cmd); + } else { + return file_get_contents($filename); + } } function rename($filename, $new_filename, $allow_symlink = false) { @@ -857,13 +894,29 @@ class system{ return rename($filename, $new_filename); } - function mkdir($dirname, $allow_symlink = false, $mode = 0777, $recursive = false) { + function mkdir($dirname, $allow_symlink = false, $mode = 0777, $recursive = false, $run_as_user = null) { global $app; if($allow_symlink == false && $this->checkpath($dirname) == false) { $app->log("Action aborted, file is a symlink: $dirname", LOGLEVEL_WARN); return false; } - if(@mkdir($dirname, $mode, $recursive)) { + if($run_as_user !== null && !$this->check_run_as_user($run_as_user)) { + $app->log("Action aborted, invalid run-as-user: $run_as_user", LOGLEVEL_WARN); + return false; + } + $success = false; + if($run_as_user !== null && $run_as_user !== 'root') { + $cmd = $this->get_sudo_command('mkdir ' . ($recursive ? '-p ' : '') . escapeshellarg($dirname), $run_as_user) . ' >/dev/null 2>&1'; + $this->exec_safe($cmd); + if($this->last_exec_retcode() != 0) { + $success = false; + } else { + $success = true; + } + } else { + $success = @mkdir($dirname, $mode, $recursive); + } + if($success) { return true; } else { $app->log("mkdir failed: $dirname", LOGLEVEL_DEBUG); @@ -918,7 +971,7 @@ class system{ // Add ($cnt_to-1) number of "../" elements to left side of $cfrom for ($c = 0; $c < (count($a2)-1); $c++) { $cfrom = '../'.$cfrom; } - if(strstr($to,'/etc/letsencrypt/archive/')) $to = str_replace('/etc/letsencrypt/archive/','/etc/letsencrypt/live/',$to); + //if(strstr($to,'/etc/letsencrypt/archive/')) $to = str_replace('/etc/letsencrypt/archive/','/etc/letsencrypt/live/',$to); return symlink($cfrom, $to); } @@ -1073,10 +1126,10 @@ class system{ } else { // Linux if(substr($dist, 0, 4) == 'suse'){ if($action == 'on'){ - exec("chkconfig --add $service &> /dev/null"); + $this->exec_safe("chkconfig --add ? &> /dev/null", $service); } if($action == 'off'){ - exec("chkconfig --del $service &> /dev/null"); + $this->exec_safe("chkconfig --del ? &> /dev/null", $service); } } else { $runlevels = explode(',', $rl); @@ -1375,7 +1428,7 @@ class system{ if(!empty($ifconfig['IP'])){ foreach($ifconfig['IP'] as $key => $val){ if(!strstr($val, 'lo') && !strstr($val, 'lp') && strstr($val, $main_interface)){ - exec('ifconfig '.$val.' down &> /dev/null'); + $this->exec_safe('ifconfig ? down &> /dev/null', $val); unset($ifconfig['INTERFACE'][$val]); } } @@ -1391,7 +1444,7 @@ class system{ $i = -1; } } - exec('ifconfig '.$new_interface.' '.$to.' netmask '.$this->server_conf['server_netzmaske'].' up &> /dev/null'); + $this->exec_safe('ifconfig ? ? netmask ? up &> /dev/null', $new_interface, $to, $this->server_conf['server_netzmaske']); $ifconfig['INTERFACE'][$new_interface] = $to; } } @@ -1535,7 +1588,14 @@ class system{ $found = 0; if(is_array($lines)) { foreach($lines as $line) { - if($strict == 0) { + if($strict == 0 && preg_match('/^REGEX:(.*)$/', $search_pattern)) { + if(preg_match(substr($search_pattern, 6), $line)) { + $out .= $new_line."\n"; + $found = 1; + } else { + $out .= $line; + } + } elseif($strict == 0) { if(stristr($line, $search_pattern)) { $out .= $new_line."\n"; $found = 1; @@ -1573,7 +1633,14 @@ class system{ if($lines = @file($filename)) { $out = ''; foreach($lines as $line) { - if($strict == 0) { + if($strict == 0 && preg_match('/^REGEX:(.*)$/', $search_pattern)) { + if(preg_match(substr($search_pattern, 6), $line)) { + $out .= $new_line."\n"; + $found = 1; + } else { + $out .= $line; + } + } elseif($strict == 0) { if(!stristr($line, $search_pattern)) { $out .= $line; } @@ -1590,30 +1657,28 @@ class system{ function maildirmake($maildir_path, $user = '', $subfolder = '', $group = '') { global $app, $conf; - + // load the server configuration options $app->uses("getconf"); $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); if($subfolder != '') { - $dir = escapeshellcmd($maildir_path.'/.'.$subfolder); + $dir = $maildir_path.'/.'.$subfolder; } else { - $dir = escapeshellcmd($maildir_path); + $dir = $maildir_path; } if(!is_dir($dir)) mkdir($dir, 0700, true); if($user != '' && $user != 'root' && $this->is_user($user)) { - $user = escapeshellcmd($user); if(is_dir($dir)) $this->chown($dir, $user); $chown_mdsub = true; } if($group != '' && $group != 'root' && $this->is_group($group)) { - $group = escapeshellcmd($group); if(is_dir($dir)) $this->chgrp($dir, $group); - + $chgrp_mdsub = true; } @@ -1627,22 +1692,13 @@ class system{ chmod($dir, 0700); - /* - if($user != '' && $this->is_user($user) && $user != 'root') { - $user = escapeshellcmd($user); - // I assume that the name of the (vmail group) is the same as the name of the mail user in ISPConfig 3 - $group = $user; - exec("chown $user:$group $dir $dir_cur $dir_new $dir_tmp"); - } - */ - //* Add the subfolder to the subscriptions and courierimapsubscribed files if($subfolder != '') { - + // Courier if($mail_config['pop3_imap_daemon'] == 'courier') { if(!is_file($maildir_path.'/courierimapsubscribed')) { - $tmp_file = escapeshellcmd($maildir_path.'/courierimapsubscribed'); + $tmp_file = $maildir_path.'/courierimapsubscribed'; touch($tmp_file); chmod($tmp_file, 0744); chown($tmp_file, 'vmail'); @@ -1654,7 +1710,7 @@ class system{ // Dovecot if($mail_config['pop3_imap_daemon'] == 'dovecot') { if(!is_file($maildir_path.'/subscriptions')) { - $tmp_file = escapeshellcmd($maildir_path.'/subscriptions'); + $tmp_file = $maildir_path.'/subscriptions'; touch($tmp_file); chmod($tmp_file, 0744); chown($tmp_file, 'vmail'); @@ -1669,14 +1725,14 @@ class system{ } //* Function to create directory paths and chown them to a user and group - function mkdirpath($path, $mode = 0755, $user = '', $group = '') { + function mkdirpath($path, $mode = 0755, $user = '', $group = '', $run_as_user = null) { $path_parts = explode('/', $path); $new_path = ''; if(is_array($path_parts)) { foreach($path_parts as $part) { $new_path .= '/'.$part; if(!@is_dir($new_path)) { - $this->mkdir($new_path); + $this->mkdir($new_path, false, 0777, false, $run_as_user); $this->chmod($new_path, $mode); if($user != '') $this->chown($new_path, $user); if($group != '') $this->chgrp($new_path, $group); @@ -1685,20 +1741,23 @@ class system{ } } - - function _exec($command) { + + function _exec($command, $allow_return_codes = null) { global $app; $out = array(); $ret = 0; $app->log('exec: '.$command, LOGLEVEL_DEBUG); exec($command, $out, $ret); - if($ret != 0) return false; + if(is_array($allow_return_codes) && in_array($ret, $allow_return_codes)) return true; + elseif($ret != 0) return false; else return true; } //* Check if a application is installed function is_installed($appname) { - exec('which '.escapeshellcmd($appname).' 2> /dev/null', $out, $returncode); + $this->exec_safe('which ? 2> /dev/null', $appname); + $out = $this->last_exec_out(); + $returncode = $this->last_exec_retcode(); if(isset($out[0]) && stristr($out[0], $appname) && $returncode == 0) { return true; } else { @@ -1706,6 +1765,40 @@ class system{ } } + function set_immutable($path, $enable = true, $recursive = false) { + global $app; + + if($this->checkpath($path) == false) { + $app->log("Action aborted, target is a symlink: $path", LOGLEVEL_DEBUG); + return false; + } + + if($path != '' && $path != '/' && strlen($path) > 6 && strpos($path, '..') === false && (is_file($path) || is_dir($path))) { + if($enable) { + $this->exec_safe('chattr +i ?', $path); + } else { + $this->exec_safe('chattr -i ?', $path); + } + + if($enable === false && $recursive === true && is_dir($path)) { + // only allow when removing immutable + $this->exec_safe('chattr -R -i ?', $path); + } + } + } + + public function is_blacklisted_web_path($path) { + $blacklist = array('bin', 'cgi-bin', 'dev', 'etc', 'home', 'lib', 'lib64', 'log', 'ssl', 'usr', 'var', 'proc', 'net', 'sys', 'srv', 'sbin', 'run'); + + $path = ltrim($path, '/'); + $parts = explode('/', $path); + if(in_array(strtolower($parts[0]), $blacklist, true)) { + return true; + } + + return false; + } + function web_folder_protection($document_root, $protect) { global $app, $conf; @@ -1720,10 +1813,10 @@ class system{ if($protect == true && $web_config['web_folder_protection'] == 'y') { //* Add protection - if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) exec('chattr +i '.escapeshellcmd($document_root)); + if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) $this->exec_safe('chattr +i ?', $document_root); } else { //* Remove protection - if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) exec('chattr -i '.escapeshellcmd($document_root)); + if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) $this->exec_safe('chattr -i ?', $document_root); } } @@ -1835,16 +1928,17 @@ class system{ function is_mounted($mountpoint){ //$cmd = 'df 2>/dev/null | grep " '.$mountpoint.'$"'; - $cmd = 'mount 2>/dev/null | grep " on '.$mountpoint.' type "'; - exec($cmd, $output, $return_var); + $cmd = 'mount 2>/dev/null | grep ?'; + $this->exec_safe($cmd, ' on '. $mountpoint . ' type '); + $return_var = $this->last_exec_retcode(); return $return_var == 0 ? true : false; } function mount_backup_dir($backup_dir, $mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'){ global $app, $conf; - + if($this->is_mounted($backup_dir)) return true; - + $mounted = true; if ( is_file($mount_cmd) && is_executable($mount_cmd) && @@ -1908,7 +2002,8 @@ class system{ // systemd if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ if ($check_service) { - exec("systemctl is-enabled ".$servicename." 2>&1", $out, $ret_val); + $this->exec_safe("systemctl is-enabled ? 2>&1", $servicename); + $ret_val = $this->last_exec_retcode(); } if ($ret_val == 0 || !$check_service) { return 'systemctl '.$action.' '.$servicename.'.service'; @@ -1939,7 +2034,7 @@ class system{ function getapacheversion($get_minor = false) { global $app; - + $cmd = ''; if($this->is_installed('apache2ctl')) $cmd = 'apache2ctl -v'; elseif($this->is_installed('apachectl')) $cmd = 'apachectl -v'; @@ -1947,13 +2042,13 @@ class system{ $app->log("Could not check apache version, apachectl not found.", LOGLEVEL_DEBUG); return '2.2'; } - + exec($cmd, $output, $return_var); if($return_var != 0 || !$output[0]) { $app->log("Could not check apache version, apachectl did not return any data.", LOGLEVEL_WARN); return '2.2'; } - + if(preg_match('/version:\s*Apache\/(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { return $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) && $get_minor == true ? '.' . $matches[5] : ''); } else { @@ -1964,7 +2059,7 @@ class system{ function getapachemodules() { global $app; - + $cmd = ''; if($this->is_installed('apache2ctl')) $cmd = 'apache2ctl -t -D DUMP_MODULES'; elseif($this->is_installed('apachectl')) $cmd = 'apachectl -t -D DUMP_MODULES'; @@ -1972,23 +2067,23 @@ class system{ $app->log("Could not check apache modules, apachectl not found.", LOGLEVEL_WARN); return array(); } - + exec($cmd . ' 2>/dev/null', $output, $return_var); if($return_var != 0 || !$output[0]) { $app->log("Could not check apache modules, apachectl did not return any data.", LOGLEVEL_WARN); return array(); } - + $modules = array(); for($i = 0; $i < count($output); $i++) { if(preg_match('/^\s*(\w+)\s+\((shared|static)\)\s*$/', $output[$i], $matches)) { $modules[] = $matches[1]; } } - + return $modules; } - + //* ISPConfig mail function public function mail($to, $subject, $text, $from, $filepath = '', $filetype = 'application/pdf', $filename = '', $cc = '', $bcc = '', $from_name = '') { global $app, $conf; @@ -2015,40 +2110,207 @@ class system{ $app->ispcmail->send($to); $app->ispcmail->finish(); - + return true; } - + public function is_allowed_user($username, $check_id = true, $restrict_names = false) { global $app; - + $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; - + if($check_id && intval($this->getuid($username)) < $this->min_uid) return false; - + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; - + return true; } - + public function is_allowed_group($groupname, $check_id = true, $restrict_names = false) { global $app; - + $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; - + if($check_id && intval($this->getgid($groupname)) < $this->min_gid) return false; - + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; - + return true; } - -} -?> + public function last_exec_out() { + return $this->_last_exec_out; + } + + public function last_exec_retcode() { + return $this->_last_exec_retcode; + } + + public function exec_safe($cmd) { + global $app; + + $args = func_get_args(); + $arg_count = func_num_args(); + if($arg_count != substr_count($cmd, '?') + 1) { + trigger_error('Placeholder count not matching argument list.', E_USER_WARNING); + return false; + } + if($arg_count > 1) { + array_shift($args); + + $pos = 0; + $a = 0; + foreach($args as $value) { + $a++; + + $pos = strpos($cmd, '?', $pos); + if($pos === false) { + break; + } + $value = escapeshellarg($value); + $cmd = substr_replace($cmd, $value, $pos, 1); + $pos += strlen($value); + } + } + + $this->_last_exec_out = null; + $this->_last_exec_retcode = null; + $ret = exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); + + $app->log("safe_exec cmd: " . $cmd . " - return code: " . $this->_last_exec_retcode, LOGLEVEL_DEBUG); + + return $ret; + } + + public function system_safe($cmd) { + call_user_func_array(array($this, 'exec_safe'), func_get_args()); + return implode("\n", $this->_last_exec_out); + } + + public function create_jailkit_user($username, $home_dir, $user_home_dir, $shell = '/bin/bash', $p_user = null, $p_user_home_dir = null) { + // Check if USERHOMEDIR already exists + if(!is_dir($home_dir . '/.' . $user_home_dir)) { + $this->mkdirpath($home_dir . '/.' . $user_home_dir, 0755, $username); + } + + // Reconfigure the chroot home directory for the user + $cmd = 'usermod --home=? ? 2>/dev/null'; + $this->exec_safe($cmd, $home_dir . '/.' . $user_home_dir, $username); + + // Add the chroot user + $cmd = 'jk_jailuser -n -s ? -j ? ?'; + $this->exec_safe($cmd, $shell, $home_dir, $username); + + // We have to reconfigure the chroot home directory for the parent user + if($p_user !== null) { + $cmd = 'usermod --home=? ? 2>/dev/null'; + $this->exec_safe($cmd, $home_dir . '/.' . $p_user_home_dir, $p_user); + } + + return true; + } + + public function create_jailkit_programs($home_dir, $programs = array()) { + if(empty($programs)) { + return true; + } elseif(is_string($programs)) { + $programs = preg_split('/[\s,]+/', $programs); + } + $program_args = ''; + foreach($programs as $prog) { + $program_args .= ' ' . escapeshellarg($prog); + } + + $cmd = 'jk_cp -k ?' . $program_args; + $this->exec_safe($cmd, $home_dir); + + return true; + } + + public function create_jailkit_chroot($home_dir, $app_sections = array()) { + if(empty($app_sections)) { + return true; + } elseif(is_string($app_sections)) { + $app_sections = preg_split('/[\s,]+/', $app_sections); + } + + // Change ownership of the chroot directory to root + $this->chown($home_dir, 'root'); + $this->chgrp($home_dir, 'root'); + + $app_args = ''; + foreach($app_sections as $app_section) { + $app_args .= ' ' . escapeshellarg($app_section); + } + + // Initialize the chroot into the specified directory with the specified applications + $cmd = 'jk_init -f -k -c /etc/jailkit/jk_init.ini -j ?' . $app_args; + $this->exec_safe($cmd, $home_dir); + + // Create the temp directory + if(!is_dir($home_dir . '/tmp')) { + $this->mkdirpath($home_dir . '/tmp', 0777); + } else { + $this->chmod($home_dir . '/tmp', 0777, true); + } + + // Fix permissions of the root firectory + $this->chmod($home_dir . '/bin', 0755, true); // was chmod g-w $CHROOT_HOMEDIR/bin + + // mysql needs the socket in the chrooted environment + $this->mkdirpath($home_dir . '/var/run/mysqld'); + + // ln /var/run/mysqld/mysqld.sock $CHROOT_HOMEDIR/var/run/mysqld/mysqld.sock + if(!file_exists("/var/run/mysqld/mysqld.sock")) { + $this->exec_safe('ln ? ?', '/var/run/mysqld/mysqld.sock', $home_dir . '/var/run/mysqld/mysqld.sock'); + } + + return true; + } + + + public function pipe_exec($cmd, $stdin, &$retval = null, &$stderr = null) { + $descriptors = array( + 0 => array('pipe', 'r'), + 1 => array('pipe', 'w'), + 2 => array('pipe', 'w') + ); + + $result = ''; + $pipes = null; + $proc = proc_open($cmd, $descriptors, $pipes); + if(is_resource($proc)) { + fwrite($pipes[0], $stdin); + fclose($pipes[0]); + + $result = stream_get_contents($pipes[1]); + $stderr = stream_get_contents($pipes[2]); + fclose($pipes[1]); + fclose($pipes[2]); + + $retval = proc_close($proc); + + return $result; + } else { + return false; + } + } + + private function get_sudo_command($cmd, $run_as_user) { + return 'sudo -u ' . escapeshellarg($run_as_user) . ' sh -c ' . escapeshellarg($cmd); + } + + private function check_run_as_user($username) { + if(preg_match('/^[a-zA-Z0-9_\-]+$/', $username)) { + return true; + } else{ + return false; + } + } +} diff --git a/server/mods-available/mail_module.inc.php b/server/mods-available/mail_module.inc.php index bc6d2901457169db191ef871c8acbabff74c03a1..e13839d344fe0ae8245e3bf22f521b37b00212eb 100644 --- a/server/mods-available/mail_module.inc.php +++ b/server/mods-available/mail_module.inc.php @@ -55,7 +55,14 @@ class mail_module { 'mail_content_filter_delete', 'mail_mailinglist_insert', 'mail_mailinglist_update', - 'mail_mailinglist_delete'); + 'mail_mailinglist_delete', + 'spamfilter_users_insert', + 'spamfilter_users_update', + 'spamfilter_users_delete', + 'spamfilter_wblist_insert', + 'spamfilter_wblist_update', + 'spamfilter_wblist_delete' + ); //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. @@ -102,7 +109,11 @@ class mail_module { $app->modules->registerTableHook('mail_get', 'mail_module', 'process'); $app->modules->registerTableHook('mail_content_filter', 'mail_module', 'process'); $app->modules->registerTableHook('mail_mailinglist', 'mail_module', 'process'); + $app->modules->registerTableHook('spamfilter_users', 'mail_module', 'process'); + $app->modules->registerTableHook('spamfilter_wblist', 'mail_module', 'process'); + $app->services->registerService('rspamd', 'mail_module', 'restartRspamd'); + $app->services->registerService('postfix', 'mail_module', 'restartPostfix'); } /* @@ -154,9 +165,50 @@ class mail_module { if($action == 'u') $app->plugins->raiseEvent('mail_mailinglist_update', $data); if($action == 'd') $app->plugins->raiseEvent('mail_mailinglist_delete', $data); break; + case 'spamfilter_users': + if($action == 'i') $app->plugins->raiseEvent('spamfilter_users_insert', $data); + if($action == 'u') $app->plugins->raiseEvent('spamfilter_users_update', $data); + if($action == 'd') $app->plugins->raiseEvent('spamfilter_users_delete', $data); + break; + case 'spamfilter_wblist': + if($action == 'i') $app->plugins->raiseEvent('spamfilter_wblist_insert', $data); + if($action == 'u') $app->plugins->raiseEvent('spamfilter_wblist_update', $data); + if($action == 'd') $app->plugins->raiseEvent('spamfilter_wblist_delete', $data); + break; } // end switch } // end function + function restartRspamd($action = 'reload') { + global $app; + + $app->uses('system'); + + $daemon = 'rspamd'; + + $retval = array('output' => '', 'retval' => 0); + if($action == 'restart') { + exec($app->system->getinitcommand($daemon, 'restart').' 2>&1', $retval['output'], $retval['retval']); + } else { + exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']); + } + return $retval; + } + + function restartPostfix($action = 'reload') { + global $app; + + $app->uses('system'); + + $daemon = 'postfix'; + + $retval = array('output' => '', 'retval' => 0); + if($action == 'restart') { + exec($app->system->getinitcommand($daemon, 'restart').' 2>&1', $retval['output'], $retval['retval']); + } else { + exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']); + } + return $retval; + } } // end class ?> diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php index 807de5060ab28bfbee5257760b812e60ba65a655..3b6bb9fb497366c4e2d05d2324777a6eb0273620 100644 --- a/server/mods-available/remoteaction_core_module.inc.php +++ b/server/mods-available/remoteaction_core_module.inc.php @@ -150,12 +150,12 @@ class remoteaction_core_module { $parts = explode(':', $action['action_param']); $veid = intval($parts[0]); $template_cache_dir = '/vz/template/cache/'; - $template_name = escapeshellcmd($parts[1]); + $template_name = $parts[1]; if($veid > 0 && $template_name != '' && is_dir($template_cache_dir)) { - $command = "vzdump --suspend --compress --stdexcludes --dumpdir $template_cache_dir $veid"; - exec($command); - exec("mv ".$template_cache_dir."vzdump-openvz-".$veid."*.tgz ".$template_cache_dir.$template_name.".tar.gz"); - exec("rm -f ".$template_cache_dir."vzdump-openvz-".$veid."*.log"); + $command = "vzdump --suspend --compress --stdexcludes --dumpdir ? ?"; + $app->system->exec_safe($command, $template_cache_dir, $veid); + $app->system->exec_safe("mv ?*.tgz ?", $template_cache_dir."vzdump-openvz-".$veid, $template_cache_dir.$template_name.".tar.gz"); + $app->system->exec_safe("rm -f ?*.log", $template_cache_dir."vzdump-openvz-".$veid); } $this->_actionDone($action['action_id'], 'ok'); /* this action takes so much time, @@ -191,7 +191,8 @@ class remoteaction_core_module { } private function _doIspCUpdate($action) { - + global $app; + // Ensure that this code is not executed twice as this would cause a loop in case of a failure $this->_actionDone($action['action_id'], 'ok'); @@ -210,14 +211,14 @@ class remoteaction_core_module { chdir("/tmp"); /* delete the old files (if there are any...) */ - exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("rm ?", "/tmp/ISPConfig-" . $new_version . ".tar.gz"); exec("rm /tmp/ispconfig3_install -R"); /* get the newest version */ - exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("wget ?", "http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); /* extract the files */ - exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("tar xvfz ?", "ISPConfig-" . $new_version . ".tar.gz"); /* * Initialize the automated update @@ -229,7 +230,7 @@ class remoteaction_core_module { /* * do some clean-up */ - exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("rm ?", "/tmp/ISPConfig-" . $new_version . ".tar.gz"); /* * go back to the "old path" diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php index aecec10579e37e1b4160dc2ac57d924f12936f49..609e9212dc3a6fd6b6a74c2fcb3b9622039a915c 100644 --- a/server/mods-available/web_module.inc.php +++ b/server/mods-available/web_module.inc.php @@ -32,7 +32,8 @@ class web_module { var $module_name = 'web_module'; var $class_name = 'web_module'; - var $actions_available = array( 'web_domain_insert', + var $actions_available = array( + 'web_domain_insert', 'web_domain_update', 'web_domain_delete', 'ftp_user_insert', @@ -64,7 +65,9 @@ class web_module { 'aps_package_delete', 'aps_setting_insert', 'aps_setting_update', - 'aps_setting_delete'); + 'aps_setting_delete', + 'directive_snippets_update' + ); //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. @@ -114,6 +117,7 @@ class web_module { $app->modules->registerTableHook('aps_instances_settings', 'web_module', 'process'); $app->modules->registerTableHook('aps_packages', 'web_module', 'process'); $app->modules->registerTableHook('aps_settings', 'web_module', 'process'); + $app->modules->registerTableHook('directive_snippets', 'web_module', 'process'); // Register service $app->services->registerService('httpd', 'web_module', 'restartHttpd'); @@ -185,6 +189,11 @@ class web_module { if($action == 'u') $app->plugins->raiseEvent('aps_setting_update', $data); if($action == 'd') $app->plugins->raiseEvent('aps_setting_delete', $data); break; + case 'directive_snippets': + if($action == 'i') $app->plugins->raiseEvent('directive_snippets_insert', $data); + if($action == 'u') $app->plugins->raiseEvent('directive_snippets_update', $data); + if($action == 'd') $app->plugins->raiseEvent('directive_snippets_delete', $data); + break; } // end switch } // end function @@ -203,7 +212,9 @@ class web_module { $daemon = $web_config['server_type']; break; default: - if(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) { + if (!empty($web_config['apache_init_script'])) { + $daemon = $web_config['apache_init_script']; + } elseif(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) { $daemon = 'httpd'; } else { $daemon = 'apache2'; diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 8ebe11d92a836e6e9b1d023200400b1ba5002ce4..ca14b737be66bc7b7e77adc5078c713119873de7 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -73,7 +73,7 @@ class apache2_plugin { $app->plugins->registerEvent('server_ip_insert', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_ip_update', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_ip_delete', $this->plugin_name, 'server_ip'); - + $app->plugins->registerEvent('server_insert', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_update', $this->plugin_name, 'server_ip'); @@ -93,26 +93,58 @@ class apache2_plugin { $app->plugins->registerEvent('ftp_user_delete', $this->plugin_name, 'ftp_user_delete'); $app->plugins->registerAction('php_ini_changed', $this->plugin_name, 'php_ini_changed'); + + $app->plugins->registerEvent('directive_snippets_update', $this->plugin_name, 'directive_snippets'); + } + + function directive_snippets($event_name, $data) { + global $app, $conf; + + $snippet = $data['new']; + if($snippet['active'] == 'y' && $snippet['update_sites'] == 'y') { + if($snippet['type'] == 'php') { + $rlike = $snippet['directive_snippets_id'].'|,'.$snippet['directive_snippets_id'].'|'.$snippet['directive_snippets_id'].','; + $affected_snippets = $app->db->queryAllRecords('SELECT directive_snippets_id FROM directive_snippets WHERE required_php_snippets RLIKE(?) AND type = ?', $rlike, 'apache'); + if(is_array($affected_snippets) && !empty($affected_snippets)) { + foreach($affected_snippets as $snippet) $sql_in[] = $snippet['directive_snippets_id']; + $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id IN ?', $conf['server_id'], $sql_in); + } + } + if($snippet['type'] == 'apache') $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id = ?', $conf['server_id'], $snippet['directive_snippets_id']); + + if(is_array($affected_sites) && !empty($affected_sites)) { + foreach($affected_sites as $site) { + $website = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = ?', $site['domain_id']); + $new_data['old'] = $website; + $new_data['new'] = $website; + $this->update('web_domain_update', $new_data); + } + } + } } private function get_master_php_ini_content($web_data) { global $app, $conf; - + $app->uses('getconf'); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); $fastcgi_config = $app->getconf->get_server_config($conf['server_id'], 'fastcgi'); - + $php_ini_content = ''; $master_php_ini_path = ''; - + if($web_data['php'] == 'mod') { $master_php_ini_path = $web_config['php_ini_path_apache']; } else { // check for custom php - if($web_data['fastcgi_php_version'] != '') { - $tmp = explode(':', $web_data['fastcgi_php_version']); - if(isset($tmp[2])) { - $tmppath = $tmp[2]; + if($web_data['server_php_id'] != 0) { + $tmp = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $web_data['server_php_id']); + $ini_key = 'php_fastcgi_ini_dir'; + if($web_data['php'] === 'php-fpm') { + $ini_key = 'php_fpm_ini_dir'; + } + if($tmp && $tmp[$ini_key]) { + $tmppath = $tmp[$ini_key]; if(substr($tmppath, -7) != 'php.ini') { if(substr($tmppath, -1) != '/') $tmppath .= '/'; $tmppath .= 'php.ini'; @@ -135,7 +167,7 @@ class apache2_plugin { } } } - + // Resolve inconsistant path settings if($master_php_ini_path != '' && is_dir($master_php_ini_path) && is_file($master_php_ini_path.'/php.ini')) { $master_php_ini_path .= '/php.ini'; @@ -145,7 +177,7 @@ class apache2_plugin { if($master_php_ini_path != '' && substr($master_php_ini_path, -7) == 'php.ini' && is_file($master_php_ini_path)) { $php_ini_content .= $app->system->file_get_contents($master_php_ini_path)."\n"; } - + return $php_ini_content; } @@ -169,21 +201,21 @@ class apache2_plugin { $qrystr .= " AND php = 'mod'"; } elseif($data['mode'] == 'fast-cgi') { $qrystr .= " AND php = 'fast-cgi'"; - if($data['php_version']) { - $qrystr .= " AND fastcgi_php_version LIKE ?"; - $param = '%:' . $data['php_version']; + if(isset($data['php_version'])) { + $qrystr .= " AND server_php_id = ?"; + $param = $data['php_version']; } } elseif($data['mode'] == 'php-fpm') { $qrystr .= " AND php = 'php-fpm'"; - if($data['php_version']) { - $qrystr .= " AND fastcgi_php_version LIKE ?"; - $param = '%:' . $data['php_version'] . ':%'; + if(isset($data['php_version'])) { + $qrystr .= " AND server_php_id = ?"; + $param = $data['php_version']; } } elseif($data['mode'] == 'hhvm') { $qrystr .= " AND php = 'hhvm'"; - if($data['php_version']) { - $qrystr .= " AND fastcgi_php_version LIKE ?"; - $param = '%:' . $data['php_version'] . ':%'; + if(isset($data['php_version'])) { + $qrystr .= " AND server_php_id = ?"; + $param = $data['php_version']; } } else { $qrystr .= " AND php != 'mod' AND php != 'fast-cgi'"; @@ -200,11 +232,11 @@ class apache2_plugin { $custom_php_ini_dir .= '_' . $web_folder; } if(!is_dir($web_config['website_basedir'].'/conf')) $app->system->mkdir($web_config['website_basedir'].'/conf'); - + if(!is_dir($custom_php_ini_dir)) $app->system->mkdir($custom_php_ini_dir); - + $php_ini_content = $this->get_master_php_ini_content($web_data); - + if(intval($web_data['directive_snippets_id']) > 0){ $snippet = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ? AND type = 'apache' AND active = 'y' AND customer_viewable = 'y'", intval($web_data['directive_snippets_id'])); if(isset($snippet['required_php_snippets']) && trim($snippet['required_php_snippets']) != ''){ @@ -223,7 +255,7 @@ class apache2_plugin { } } } - + $php_ini_content .= str_replace("\r", '', trim($web_data['custom_php_ini'])); $app->system->file_put_contents($custom_php_ini_dir.'/php.ini', $php_ini_content); $app->log('Info: rewrote custom php.ini for web ' . $web_data['domain_id'] . ' (' . $web_data['domain'] . ').', LOGLEVEL_DEBUG); @@ -329,39 +361,49 @@ class apache2_plugin { [ req_attributes ] ";//challengePassword = A challenge password"; + $ext_cnf = " + subjectAltName = @alt_names + + [alt_names] + DNS.1 = .$domain"; + $ssl_cnf_file = $ssl_dir.'/openssl.conf'; $app->system->file_put_contents($ssl_cnf_file, $ssl_cnf); + $ssl_ext_file = $ssl_dir.'/v3.ext'; + $app->system->file_put_contents($ssl_ext_file, $ext_cnf); - $rand_file = escapeshellcmd($rand_file); - $key_file2 = escapeshellcmd($key_file2); + $rand_file = $rand_file; + $key_file2 = $key_file2; $openssl_cmd_key_file2 = $key_file2; if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate - $key_file = escapeshellcmd($key_file); + $key_file = $key_file; $openssl_cmd_key_file = $key_file; if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate $ssl_days = 3650; - $csr_file = escapeshellcmd($csr_file); + $csr_file = $csr_file; $openssl_cmd_csr_file = $csr_file; if(substr($domain, 0, 2) == '*.' && strpos($csr_file, '/ssl/\*.') !== false) $csr_file = str_replace('/ssl/\*.', '/ssl/*.', $csr_file); // wildcard certificate - $config_file = escapeshellcmd($ssl_cnf_file); - $crt_file = escapeshellcmd($crt_file); + $config_file = $ssl_cnf_file; + $crt_file = $crt_file; $openssl_cmd_crt_file = $crt_file; if(substr($domain, 0, 2) == '*.' && strpos($crt_file, '/ssl/\*.') !== false) $crt_file = str_replace('/ssl/\*.', '/ssl/*.', $crt_file); // wildcard certificate if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file2 2048"); - exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); - exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file2 -out $openssl_cmd_key_file"); + $app->system->exec_safe("openssl genrsa -des3 -rand ? -passout pass:? -out ? 2048", $rand_file, $ssl_password, $openssl_cmd_key_file2); + $app->system->exec_safe("openssl req -new -sha256 -passin pass:? -passout pass:? -key ? -out ? -days ? -config ?", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $ssl_days, $config_file); + $app->system->exec_safe("openssl rsa -passin pass:? -in ? -out ?", $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_key_file); if(file_exists($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file"); + $app->system->exec_safe("openssl ca -batch -out ? -config ? -passin pass:? -in ? -extfile ?", $openssl_cmd_crt_file, $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $openssl_cmd_csr_file, $ssl_ext_file); $app->log("Creating CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); - if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); + if(filesize($crt_file) == 0 || !file_exists($crt_file)) { + $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config " . $web_config['CA_path'] . "/openssl.cnf -passin pass:" . $web_config['CA_pass'] . " -in $openssl_cmd_csr_file -extfile $ssl_ext_file", LOGLEVEL_ERROR); + } }; if (@filesize($crt_file)==0 || !file_exists($crt_file)){ - exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file "); + $app->system->exec_safe("openssl req -x509 -passin pass:? -passout pass:? -key ? -in ? -out ? -days ? -config ? ", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $openssl_cmd_crt_file, $ssl_days, $config_file); $app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; @@ -371,6 +413,7 @@ class apache2_plugin { $app->system->chmod($key_file, 0400); @$app->system->unlink($config_file); @$app->system->unlink($rand_file); + @$app->system->unlink($ssl_ext_file); $ssl_request = $app->system->file_get_contents($csr_file); $ssl_cert = $app->system->file_get_contents($crt_file); $ssl_key = $app->system->file_get_contents($key_file); @@ -381,15 +424,15 @@ class apache2_plugin { $app->dbmaster->query("UPDATE web_domain SET ssl_request = ?, ssl_cert = ?, ssl_key = ? WHERE domain = ?", $ssl_request, $ssl_cert, $ssl_key, $data['new']['domain']); $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); } - + //* Check that the SSL key is not password protected if($data["new"]["ssl_action"] == 'save') { if(stristr($data["new"]["ssl_key"],'Proc-Type: 4,ENCRYPTED')) { $data["new"]["ssl_action"] = ''; - + $app->log('SSL Certificate not saved. The SSL key is encrypted.', LOGLEVEL_WARN); $app->dbmaster->datalogError('SSL Certificate not saved. The SSL key is encrypted.'); - + /* Update the DB of the (local) Server */ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); @@ -397,19 +440,20 @@ class apache2_plugin { $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); } } - + //* and check that SSL cert does not contain subdomain of domain acme.invalid if($data["new"]["ssl_action"] == 'save') { $tmp = array(); $crt_data = ''; - exec('openssl x509 -noout -text -in '.escapeshellarg($crt_file),$tmp); + $app->system->exec_safe('openssl x509 -noout -text -in ?', $crt_file); + $tmp = $app->system->last_exec_out(); $crt_data = implode("\n",$tmp); if(stristr($crt_data,'.acme.invalid')) { $data["new"]["ssl_action"] = ''; - + $app->log('SSL Certificate not saved. The SSL cert contains domain acme.invalid.', LOGLEVEL_WARN); $app->dbmaster->datalogError('SSL Certificate not saved. The SSL cert contains domain acme.invalid.'); - + /* Update the DB of the (local) Server */ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); @@ -473,7 +517,7 @@ class apache2_plugin { if($data['new']['ssl_action'] == 'del') { if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file)); + $app->system->exec_safe("openssl ca -batch -config ? -passin pass:? -revoke ?", $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $crt_file); $app->log("Revoking CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; $app->system->unlink($csr_file); @@ -567,7 +611,12 @@ class apache2_plugin { $web_folder = $data['new']['web_folder']; $log_folder .= '/' . $subdomain_host; unset($tmp); - + + if($app->system->is_blacklisted_web_path($web_folder)) { + $app->log('Vhost ' . $subdomain_host . ' is using a blacklisted web folder: ' . $web_folder, LOGLEVEL_ERROR); + return 0; + } + if(isset($data['old']['parent_domain_id'])) { // old one $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $data['old']['parent_domain_id']); @@ -591,31 +640,31 @@ class apache2_plugin { //* Check if a ispconfigend user and group exists and create them if(!$app->system->is_group('ispconfigend')) { - exec('groupadd --gid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('groupadd --gid ? ispconfigend', $connect_userid_to_webid_start + 10000); } if(!$app->system->is_user('ispconfigend')) { - exec('useradd -g ispconfigend -d /usr/local/ispconfig --uid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('useradd -g ispconfigend -d /usr/local/ispconfig --uid ? ispconfigend', $connect_userid_to_webid_start + 10000); } } else { $fixed_uid_param = ''; $fixed_gid_param = ''; } - $groupname = escapeshellcmd($data['new']['system_group']); + $groupname = $data['new']['system_group']; if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) { - exec('groupadd '.$fixed_gid_param.' '.$groupname); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname); + $app->system->exec_safe('groupadd ' . $fixed_gid_param . ' ?', $groupname); + if($apache_chrooted) $app->system->exec_safe('chroot ? groupadd ?', $web_config['website_basedir'], $groupname); $app->log('Adding the group: '.$groupname, LOGLEVEL_DEBUG); } - $username = escapeshellcmd($data['new']['system_user']); + $username = $data['new']['system_user']; if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) { if($web_config['add_web_users_to_sshusers_group'] == 'y') { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } else { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } $app->log('Adding the user: '.$username, LOGLEVEL_DEBUG); } @@ -638,7 +687,7 @@ class apache2_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // create the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -663,15 +712,14 @@ class apache2_plugin { $app->system->rename($data['new']['document_root'], $data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s')); $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'), LOGLEVEL_DEBUG); } - + //* Unmount the old log directory bfore we move the log dir - //exec('fuser -km '.escapeshellcmd($old_dir.'/log')); - exec('umount '.escapeshellcmd($data['old']['document_root'].'/log')); + $app->system->exec_safe('umount ?', $data['old']['document_root'].'/log'); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); $app->system->web_folder_protection($data['old']['document_root'], false); - exec('mv '.escapeshellarg($data['old']['document_root']).' '.escapeshellarg($new_dir)); + $app->system->exec_safe('mv ? ?', $data['old']['document_root'], $new_dir); //$app->system->rename($data['old']['document_root'],$new_dir); $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir, LOGLEVEL_DEBUG); @@ -679,17 +727,17 @@ class apache2_plugin { $data['new']['php_open_basedir'] = str_replace($data['old']['document_root'], $data['new']['document_root'], $data['old']['php_open_basedir']); //* Change the owner of the website files to the new website owner - exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); + $app->system->exec_safe('chown --recursive --from=?:? ?:? ?', $data['old']['system_user'], $data['old']['system_group'], $data['new']['system_user'], $data['new']['system_group'], $new_dir); //* Change the home directory and group of the website user - $command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' ; usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['document_root']); - $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - exec($command); + $command = 'killall -u ? ; usermod'; + $command .= ' --home ?'; + $command .= ' --gid ?'; + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user'], $data['new']['document_root'], $data['new']['system_group'], $data['new']['system_user']); } - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + if($apache_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* Change the log mount /* @@ -700,9 +748,9 @@ class apache2_plugin { $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind,nobootwait'; $app->system->removeLine('/etc/fstab', $fstab_line); */ - + $fstab_line_old = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind'; - + if($web_config['network_filesystem'] == 'y') { $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nofail,_netdev 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); @@ -710,9 +758,9 @@ class apache2_plugin { $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nofail 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); } - - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); - + + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); + } //print_r($data); @@ -720,15 +768,20 @@ class apache2_plugin { // Check if the directories are there and create them if necessary. $app->system->web_folder_protection($data['new']['document_root'], false); - if(!is_dir($data['new']['document_root'].'/' . $web_folder)) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + if(!is_dir($data['new']['document_root'].'/' . $web_folder)) { + if($web_folder !== 'web') { //vhost sub/alias + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder, 0755, $username, $groupname); + } else { + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + } + } if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/error') and $data['new']['errordocs']) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/error'); if($data['new']['stats_type'] != '' && !is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/stats'); - //if(!is_dir($data['new']['document_root'].'/'.$log_folder)) exec('mkdir -p '.$data['new']['document_root'].'/'.$log_folder); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin'); if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp'); if(!is_dir($data['new']['document_root'].'/webdav')) $app->system->mkdirpath($data['new']['document_root'].'/webdav'); - + if(!is_dir($data['new']['document_root'].'/.ssh')) { $app->system->mkdirpath($data['new']['document_root'].'/.ssh'); $app->system->chmod($data['new']['document_root'].'/.ssh', 0700); @@ -747,7 +800,7 @@ class apache2_plugin { // Remove the symlink for the site, if site is renamed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/httpd/'.$data['old']['domain']); + if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) $app->system->exec_safe('rm -rf ?', '/var/log/ispconfig/httpd/'.$data['old']['domain']); if(is_link($data['old']['document_root'].'/'.$old_log_folder)) $app->system->unlink($data['old']['document_root'].'/'.$old_log_folder); //* remove old log mount @@ -755,21 +808,20 @@ class apache2_plugin { $app->system->removeLine('/etc/fstab', $fstab_line); //* Unmount log directory - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); + $app->system->exec_safe('umount ?', $data['old']['document_root'].'/'.$old_log_folder); } //* Create the log dir if nescessary and mount it if(!is_dir($data['new']['document_root'].'/'.$log_folder) || !is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain']) || is_link($data['new']['document_root'].'/'.$log_folder)) { if(is_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder); - if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']); + if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) $app->system->exec_safe('mkdir -p ?', '/var/log/ispconfig/httpd/'.$data['new']['domain']); $app->system->mkdirpath($data['new']['document_root'].'/'.$log_folder); $app->system->chown($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chgrp($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chmod($data['new']['document_root'].'/'.$log_folder, 0755); - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); //* add mountpoint to fstab - $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait'; + $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nofail'; $fstab_line .= @($web_config['network_filesystem'] == 'y')?',_netdev 0 0':' 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); } @@ -792,7 +844,7 @@ class apache2_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // remove the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -813,11 +865,10 @@ class apache2_plugin { } // create the symlinks, if not exist if(!is_link($tmp_symlink)) { - // exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); if ($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($data["new"]["document_root"]), escapeshellcmd($tmp_symlink)); + $app->system->create_relative_link($data["new"]["document_root"], $tmp_symlink); } else { - exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); + $app->system->exec_safe("ln -s ? ?", $data["new"]["document_root"]."/", $tmp_symlink); } $app->log('Creating symlink: ln -s '.$data['new']['document_root'].'/ '.$tmp_symlink, LOGLEVEL_DEBUG); @@ -837,69 +888,67 @@ class apache2_plugin { // Copy the error pages if($data['new']['errordocs']) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp '. $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); } //* Copy the web skeleton files only when there is no index.ph or index.html file yet if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) { - if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2))) { + if(!file_exists($data['new']['document_root'] . '/' . $web_folder . '/index.html')) { + $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html_' . substr($conf['language'], 0, 2), $data['new']['document_root'] . '/' . $web_folder . '/index.html'); + } if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { - // exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); - //} } else { if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html', $data['new']['document_root'].'/' . $web_folder . '/index.html'); } else { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); } } } - exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + $app->system->exec_safe('chmod -R a+r ?', $data['new']['document_root'].'/' . $web_folder . '/'); //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); - exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); + $app->system->exec_safe('chown -R ?:? ?', $data['new']['system_user'], $data['new']['system_group'], $error_page_path); } // end copy error docs // Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias @@ -914,39 +963,39 @@ class apache2_plugin { } // get the primitive folder for document_root and the filesystem, will need it later. - $df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'")); + $df_output=explode(" ", $app->system->exec_safe("df -T ?|awk 'END{print \$2,\$NF}'", $data['new']['document_root'])); $file_system = $df_output[0]; $primitive_root = $df_output[1]; if($file_system == 'xfs') { - exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username) . " " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username, $primitive_root); // xfs only supports timers globally, not per user. - exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c 'timer -bir -i 604800' ?", $primitive_root); unset($project_uid, $username_position, $xfs_projects); unset($primitive_root, $df_output, $mb_hard, $mb_soft); } else { if($app->system->is_installed('setquota')) { - exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); - exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); + $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); + $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } } } if($this->action == 'insert' || $data["new"]["system_user"] != $data["old"]["system_user"]) { // Chown and chmod the directories below the document root - $app->system->_exec('chown -R '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); // The document root itself has to be owned by root in normal level and by the web owner in security level 20 if($web_config['security_level'] == 20) { - $app->system->_exec('chown '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); } else { - $app->system->_exec('chown root:root '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown root:root ?', $data['new']['document_root'].'/' . $web_folder); } } //* add the Apache user to the client group if this is a vhost and security level is set to high, no matter if this is an insert or update and regardless of set_folder_permissions_on_update - if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); + if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, $web_config['user']); //* If the security level is set to high if(($this->action == 'insert' && $data['new']['type'] == 'vhost') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhost')) { @@ -975,18 +1024,18 @@ class apache2_plugin { if($web_config['add_web_users_to_sshusers_group'] == 'y') { $command = 'usermod'; $command .= ' --groups sshusers'; - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - $app->system->_exec($command); + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user']); } //* if we have a chrooted Apache environment if($apache_chrooted) { - $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* add the apache user to the client group in the chroot environment $tmp_groupfile = $app->system->server_conf['group_datei']; $app->system->server_conf['group_datei'] = $web_config['website_basedir'].'/etc/group'; - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); + $app->system->add_user_to_group($groupname, $web_config['user']); $app->system->server_conf['group_datei'] = $tmp_groupfile; unset($tmp_groupfile); } @@ -1089,7 +1138,9 @@ class apache2_plugin { if($data['new']['type'] == 'vhost') { // Change the ownership of the error log to the root user - if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) exec('touch '.escapeshellcmd('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')); + if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) { + $app->system->exec_safe('touch ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log'); + } $app->system->chown('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); $app->system->chgrp('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); } @@ -1105,21 +1156,31 @@ class apache2_plugin { } $fastcgi_config = $app->getconf->get_server_config($conf['server_id'], 'fastcgi'); - - if(trim($data['new']['fastcgi_php_version']) != ''){ - list($custom_fastcgi_php_name, $custom_fastcgi_php_executable, $custom_fastcgi_php_ini_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(is_file($custom_fastcgi_php_ini_dir)) $custom_fastcgi_php_ini_dir = dirname($custom_fastcgi_php_ini_dir); - if(substr($custom_fastcgi_php_ini_dir, -1) == '/') $custom_fastcgi_php_ini_dir = substr($custom_fastcgi_php_ini_dir, 0, -1); + $custom_fastcgi_php_executable = ''; + + if($data['new']['server_php_id'] != 0){ + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + if($data['new']['php'] === 'php-fpm') { + $custom_fastcgi_php_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_fastcgi_php_executable = $tmp_php['php_fpm_init_script']; + } else { + $custom_fastcgi_php_ini_dir = $tmp_php['php_fastcgi_ini_dir']; + $custom_fastcgi_php_executable = $tmp_php['php_fastcgi_binary']; + } + if(is_file($custom_fastcgi_php_ini_dir)) $custom_fastcgi_php_ini_dir = dirname($custom_fastcgi_php_ini_dir); + if(substr($custom_fastcgi_php_ini_dir, -1) == '/') $custom_fastcgi_php_ini_dir = substr($custom_fastcgi_php_ini_dir, 0, -1); + } } //* Create custom php.ini if(trim($data['new']['custom_php_ini']) != '') { $has_custom_php_ini = true; if(!is_dir($custom_php_ini_dir)) $app->system->mkdirpath($custom_php_ini_dir); - + $php_ini_content = $this->get_master_php_ini_content($data['new']); $php_ini_content .= str_replace("\r", '', trim($data['new']['custom_php_ini'])); - + if(intval($data['new']['directive_snippets_id']) > 0){ $snippet = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ? AND type = 'apache' AND active = 'y' AND customer_viewable = 'y'", intval($data['new']['directive_snippets_id'])); if(isset($snippet['required_php_snippets']) && trim($snippet['required_php_snippets']) != ''){ @@ -1138,7 +1199,7 @@ class apache2_plugin { } } } - + $app->system->file_put_contents($custom_php_ini_dir.'/php.ini', $php_ini_content); } else { $has_custom_php_ini = false; @@ -1162,7 +1223,7 @@ class apache2_plugin { $vhost_data['php_open_basedir'] = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $vhost_data['ssl_domain'] = $data['new']['ssl_domain']; $vhost_data['has_custom_php_ini'] = $has_custom_php_ini; - $vhost_data['custom_php_ini_dir'] = escapeshellcmd($custom_php_ini_dir); + $vhost_data['custom_php_ini_dir'] = $custom_php_ini_dir; $vhost_data['logging'] = $web_config['logging']; // Custom Apache directives @@ -1172,6 +1233,11 @@ class apache2_plugin { $vhost_data['apache_directives'] = $snippet['snippet']; } } + + if(!$vhost_data['apache_directives']) { + $vhost_data['apache_directives'] = ''; // ensure it is not null + } + // Make sure we only have Unix linebreaks $vhost_data['apache_directives'] = str_replace("\r\n", "\n", $vhost_data['apache_directives']); $vhost_data['apache_directives'] = str_replace("\r", "\n", $vhost_data['apache_directives']); @@ -1180,7 +1246,7 @@ class apache2_plugin { '{DOCROOT_CLIENT}' => $vhost_data['web_document_root'] ); $vhost_data['apache_directives'] = strtr($vhost_data['apache_directives'], $trans); - + $app->uses('letsencrypt'); // Check if a SSL cert exists $tmp = $app->letsencrypt->get_website_certificate_paths($data); @@ -1191,7 +1257,7 @@ class apache2_plugin { $crt_file = $tmp['crt']; $bundle_file = $tmp['bundle']; unset($tmp); - + $data['new']['ssl_domain'] = $domain; $vhost_data['ssl_domain'] = $domain; $vhost_data['ssl_crt_file'] = $crt_file; @@ -1224,18 +1290,8 @@ class apache2_plugin { } } - if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1; - - // HTTP/2.0 ? - $vhost_data['enable_http2'] = 'n'; - if($vhost_data['enable_spdy'] == 'y'){ - // check if apache supports http_v2 - exec("2>&1 apachectl -M | grep http2_module", $tmp_output, $tmp_retval); - if($tmp_retval == 0){ - $vhost_data['enable_http2'] = 'y'; - } - unset($tmp_output, $tmp_retval); - } + // Use separate bundle file only for apache versions < 2.4.8 + if(@is_file($bundle_file) && version_compare($app->system->getapacheversion(true), '2.4.8', '<')) $vhost_data['has_bundle_cert'] = 1; // Set SEO Redirect if($data['new']['seo_redirect'] != ''){ @@ -1425,7 +1481,7 @@ class apache2_plugin { } else { $tpl->setVar('alias', ''); } - + if (count($rewrite_wildcard_rules) > 0) $rewrite_rules = array_merge($rewrite_rules, $rewrite_wildcard_rules); // Append wildcard rules to the end of rules if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0 || count($alias_seo_redirects) > 0 || $data['new']['rewrite_to_https'] == 'y') { @@ -1451,13 +1507,10 @@ class apache2_plugin { if (!is_dir($fastcgi_starter_path)) { $app->system->mkdirpath($fastcgi_starter_path); - //exec('chown '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.escapeshellcmd($fastcgi_starter_path)); - $app->log('Creating fastcgi starter script directory: '.$fastcgi_starter_path, LOGLEVEL_DEBUG); } - //exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.escapeshellcmd($fastcgi_starter_path)); $app->system->chown($fastcgi_starter_path, $data['new']['system_user']); $app->system->chgrp($fastcgi_starter_path, $data['new']['system_group']); if($web_config['security_level'] == 10) { @@ -1471,7 +1524,7 @@ class apache2_plugin { $fcgi_tpl->setVar('apache_version', $app->system->getapacheversion()); // Support for multiple PHP versions (FastCGI) - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_fastcgi_php = false; if(substr($custom_fastcgi_php_ini_dir, -1) != '/') $custom_fastcgi_php_ini_dir .= '/'; } else { @@ -1479,29 +1532,30 @@ class apache2_plugin { } if($has_custom_php_ini) { - $fcgi_tpl->setVar('php_ini_path', escapeshellcmd($custom_php_ini_dir)); + $fcgi_tpl->setVar('php_ini_path', $custom_php_ini_dir); } else { if($default_fastcgi_php){ - $fcgi_tpl->setVar('php_ini_path', escapeshellcmd($fastcgi_config['fastcgi_phpini_path'])); + $fcgi_tpl->setVar('php_ini_path', $fastcgi_config['fastcgi_phpini_path']); } else { - $fcgi_tpl->setVar('php_ini_path', escapeshellcmd($custom_fastcgi_php_ini_dir)); + $fcgi_tpl->setVar('php_ini_path', $custom_fastcgi_php_ini_dir); } } - $fcgi_tpl->setVar('document_root', escapeshellcmd($data['new']['document_root'])); - $fcgi_tpl->setVar('php_fcgi_children', escapeshellcmd($fastcgi_config['fastcgi_children'])); - $fcgi_tpl->setVar('php_fcgi_max_requests', escapeshellcmd($fastcgi_config['fastcgi_max_requests'])); + $fcgi_tpl->setVar('document_root', $data['new']['document_root']); + $fcgi_tpl->setVar('php_fcgi_children', $fastcgi_config['fastcgi_children']); + $fcgi_tpl->setVar('php_fcgi_max_requests', $fastcgi_config['fastcgi_max_requests']); if($default_fastcgi_php){ - $fcgi_tpl->setVar('php_fcgi_bin', escapeshellcmd($fastcgi_config['fastcgi_bin'])); + $fcgi_tpl->setVar('php_fcgi_bin', $fastcgi_config['fastcgi_bin']); } else { - $fcgi_tpl->setVar('php_fcgi_bin', escapeshellcmd($custom_fastcgi_php_executable)); + $fcgi_tpl->setVar('php_fcgi_bin', $custom_fastcgi_php_executable); } $fcgi_tpl->setVar('security_level', intval($web_config['security_level'])); - $fcgi_tpl->setVar('domain', escapeshellcmd($data['new']['domain'])); + $fcgi_tpl->setVar('domain', $data['new']['domain']); $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; - $fcgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); + $fcgi_tpl->setVar('open_basedir', $php_open_basedir); - $fcgi_starter_script = escapeshellcmd($fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); + $fcgi_starter_script = $fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : ''); + $app->system->set_immutable($fcgi_starter_script, false); $app->system->file_put_contents($fcgi_starter_script, $fcgi_tpl->grab()); unset($fcgi_tpl); @@ -1514,6 +1568,7 @@ class apache2_plugin { } $app->system->chown($fcgi_starter_script, $data['new']['system_user']); $app->system->chgrp($fcgi_starter_script, $data['new']['system_group']); + $app->system->set_immutable($fcgi_starter_script, true); $tpl->setVar('fastcgi_alias', $fastcgi_config['fastcgi_alias']); $tpl->setVar('fastcgi_starter_path', $fastcgi_starter_path); @@ -1527,6 +1582,7 @@ class apache2_plugin { if ($data['old']['php'] == 'fast-cgi') { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $fastcgi_config['fastcgi_starter_path']); $fastcgi_starter_path = str_replace('[client_id]', $client_id, $fastcgi_starter_path); + $app->system->set_immutable($fastcgi_starter_path, false, true); if($data['old']['type'] == 'vhost') { if(is_file($fastcgi_starter_script)) @unlink($fastcgi_starter_script); if (is_dir($fastcgi_starter_path)) @rmdir($fastcgi_starter_path); @@ -1543,34 +1599,45 @@ class apache2_plugin { */ // Support for multiple PHP versions if($data['new']['php'] == 'php-fpm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && ($data['old']['php'] == 'php-fpm' || $data['old']['php'] == 'hhvm')){ + if($data['old']['server_php_id'] != 0 && ($data['old']['php'] == 'php-fpm' || $data['old']['php'] == 'hhvm')){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } $pool_dir = trim($pool_dir); + if(substr($pool_dir, -1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; - $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); + $socket_dir = $web_config['php_fpm_socket_dir']; if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; - + if($data['new']['php_fpm_use_socket'] == 'y'){ $use_tcp = 0; $use_socket = 1; @@ -1621,8 +1688,8 @@ class apache2_plugin { // This works because PHP "rewrites" a symlink to the physical path $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; - $cgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - $cgi_tpl->setVar('document_root', escapeshellcmd($data['new']['document_root'])); + $cgi_tpl->setVar('open_basedir', $php_open_basedir); + $cgi_tpl->setVar('document_root', $data['new']['document_root']); // This will NOT work! //$cgi_tpl->setVar('open_basedir', '/var/www/' . $data['new']['domain']); @@ -1631,12 +1698,13 @@ class apache2_plugin { $cgi_tpl->setVar('has_custom_php_ini', $has_custom_php_ini); if($has_custom_php_ini) { - $cgi_tpl->setVar('php_ini_path', escapeshellcmd($custom_php_ini_dir)); + $cgi_tpl->setVar('php_ini_path', $custom_php_ini_dir); } else { - $cgi_tpl->setVar('php_ini_path', escapeshellcmd($fastcgi_config['fastcgi_phpini_path'])); + $cgi_tpl->setVar('php_ini_path', $fastcgi_config['fastcgi_phpini_path']); } - $cgi_starter_script = escapeshellcmd($cgi_starter_path.$cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); + $cgi_starter_script = $cgi_starter_path.$cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : ''); + $app->system->set_immutable($cgi_starter_script, false); $app->system->file_put_contents($cgi_starter_script, $cgi_tpl->grab()); unset($cgi_tpl); @@ -1650,13 +1718,14 @@ class apache2_plugin { } $app->system->chown($cgi_starter_script, $data['new']['system_user']); $app->system->chgrp($cgi_starter_script, $data['new']['system_group']); + $app->system->set_immutable($cgi_starter_script, true); $tpl->setVar('cgi_starter_path', $cgi_starter_path); $tpl->setVar('cgi_starter_script', $cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); } - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_file = $web_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'; //* Make a backup copy of vhost file if(file_exists($vhost_file)) $app->system->copy($vhost_file, $vhost_file.'~'); @@ -1677,6 +1746,16 @@ class apache2_plugin { if(count($rewrite_rules) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('redirects' => $rewrite_rules); if(count($alias_seo_redirects) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('alias_seo_redirects' => $alias_seo_redirects); $vhosts[] = $tmp_vhost_arr; + + //if proxy protocol is enabled we need to add a new port to lsiten to + if($web_config['vhost_proxy_protocol_enabled'] == 'y' && $data['new']['proxy_protocol'] == 'y'){ + if((int)$web_config['vhost_proxy_protocol_http_port'] > 0) { + $tmp_vhost_arr['port'] = (int)$web_config['vhost_proxy_protocol_http_port']; + $tmp_vhost_arr['use_proxy_protocol'] = $data['new']['proxy_protocol']; + $vhosts[] = $tmp_vhost_arr; + } + } + unset($tmp_vhost_arr); //* Add vhost for ipv4 IP with SSL @@ -1691,6 +1770,16 @@ class apache2_plugin { } if(count($ipv4_ssl_alias_seo_redirects) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('alias_seo_redirects' => $ipv4_ssl_alias_seo_redirects); $vhosts[] = $tmp_vhost_arr; + + //if proxy protocol is enabled we need to add a new port to lsiten to + if($web_config['vhost_proxy_protocol_enabled'] == 'y' && $data['new']['proxy_protocol'] == 'y'){ + if((int)$web_config['vhost_proxy_protocol_https_port'] > 0) { + $tmp_vhost_arr['port'] = (int)$web_config['vhost_proxy_protocol_https_port']; + $tmp_vhost_arr['use_proxy_protocol'] = $data['new']['proxy_protocol']; + $vhosts[] = $tmp_vhost_arr; + } + } + unset($tmp_vhost_arr, $ipv4_ssl_alias_seo_redirects); $app->log('Enable SSL for: '.$domain, LOGLEVEL_DEBUG); } @@ -1749,17 +1838,17 @@ class apache2_plugin { //* Set the symlink to enable the vhost //* First we check if there is a old type of symlink and remove it - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) $app->system->unlink($vhost_symlink); //* Remove old or changed symlinks if($data['new']['subdomain'] != $data['old']['subdomain'] or $data['new']['active'] == 'n') { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -1768,9 +1857,9 @@ class apache2_plugin { //* New symlink if($data['new']['subdomain'] == '*') { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; } else { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; } if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { symlink($vhost_file, $vhost_symlink); @@ -1779,43 +1868,45 @@ class apache2_plugin { // remove old symlink and vhost file, if domain name of the site has changed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; $app->system->unlink($vhost_file); $app->log('Removing file: '.$vhost_file, LOGLEVEL_DEBUG); } //* Create .htaccess and .htpasswd file for website statistics //if(!is_file($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess') or $data['old']['document_root'] != $data['new']['document_root']) { - if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); - $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user"; - $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); - $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); - unset($ht_file); - //} - if(!is_file($data['new']['document_root'].'/web/stats/.htpasswd_stats') || $data['new']['stats_password'] != $data['old']['stats_password']) { - if(trim($data['new']['stats_password']) != '') { - $htp_file = 'admin:'.trim($data['new']['stats_password']); - $app->system->web_folder_protection($data['new']['document_root'], false); - $app->system->file_put_contents($data['new']['document_root'].'/web/stats/.htpasswd_stats', $htp_file); - $app->system->web_folder_protection($data['new']['document_root'], true); - $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0755); - unset($htp_file); + if($data['new']['stats_type'] != '') { + if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); + $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user\nDirectoryIndex index.html index.php\nHeader unset Content-Security-Policy"; + $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); + $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); + unset($ht_file); + + if(!is_file($data['new']['document_root'].'/web/stats/.htpasswd_stats') || $data['new']['stats_password'] != $data['old']['stats_password']) { + if(trim($data['new']['stats_password']) != '') { + $htp_file = 'admin:'.trim($data['new']['stats_password']); + $app->system->web_folder_protection($data['new']['document_root'], false); + $app->system->file_put_contents($data['new']['document_root'].'/web/stats/.htpasswd_stats', $htp_file); + $app->system->web_folder_protection($data['new']['document_root'], true); + $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0755); + unset($htp_file); + } } } @@ -1824,6 +1915,16 @@ class apache2_plugin { $this->awstats_update($data, $web_config); } + //* Create GoAccess configuration + if($data['new']['stats_type'] == 'goaccess' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + $this->goaccess_update($data, $web_config); + } + + //* Remove Stats-Folder when Statistics set to none + if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + $app->file->removeDirectory($data['new']['document_root'].'/web/stats'); + } + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); @@ -2021,18 +2122,14 @@ class apache2_plugin { if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } } else { - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } - + // remove letsencrypt if it exists (renew will always fail otherwise) - + $old_domain = $data['old']['domain']; if(substr($old_domain, 0, 2) === '*.') { // wildcard domain not yet supported by letsencrypt! @@ -2068,19 +2165,19 @@ class apache2_plugin { } else { //* This is a website // Deleting the vhost file, symlink and the data directory - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -2090,11 +2187,11 @@ class apache2_plugin { $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { - $docroot = escapeshellcmd($data['old']['document_root']); + $docroot = $data['old']['document_root']; if($docroot != '' && !stristr($docroot, '..')) { if($data['old']['type'] == 'vhost') { // this is a vhost - we delete everything in here. - exec('rm -rf '.$docroot); + $app->system->exec_safe('rm -rf ?', $docroot); } elseif(!stristr($data['old']['web_folder'], '..')) { // this is a vhost subdomain // IMPORTANT: do some folder checks before we delete this! @@ -2144,7 +2241,7 @@ class apache2_plugin { unset($used_paths); } - if($do_delete === true && $delete_folder !== '') exec('rm -rf '.$docroot.'/'.$delete_folder); + if($do_delete === true && $delete_folder !== '') $app->system->exec_safe('rm -rf ?', $docroot.'/'.$delete_folder); unset($delete_folder); unset($path_elements); @@ -2156,12 +2253,14 @@ class apache2_plugin { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $fastcgi_config['fastcgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($fastcgi_starter_path)) { - exec('rm -rf '.$fastcgi_starter_path); + $app->system->set_immutable($fastcgi_starter_path, false, true); + $app->system->exec_safe('rm -rf ?', $fastcgi_starter_path); } } else { $fcgi_starter_script = $fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].'_web'.$data['old']['domain_id']; if (file_exists($fcgi_starter_script)) { - exec('rm -f '.$fcgi_starter_script); + $app->system->set_immutable($fcgi_starter_script, false); + $app->system->exec_safe('rm -f ?', $fcgi_starter_script); } } } @@ -2181,12 +2280,14 @@ class apache2_plugin { $cgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $web_config['cgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($cgi_starter_path)) { - exec('rm -rf '.$cgi_starter_path); + $app->system->set_immutable($cgi_starter_path, false, true); + $app->system->exec_safe('rm -rf ?', $cgi_starter_path); } } else { $cgi_starter_script = $cgi_starter_path.'php-cgi-starter_web'.$data['old']['domain_id']; if (file_exists($cgi_starter_script)) { - exec('rm -f '.$cgi_starter_script); + $app->system->set_immutable($cgi_starter_script, false); + $app->system->exec_safe('rm -f ?', $cgi_starter_script); } } } @@ -2215,16 +2316,15 @@ class apache2_plugin { } // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/httpd/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) exec('rm -rf '.$vhost_logfile_dir); + $vhost_logfile_dir = '/var/log/ispconfig/httpd/'.$data['old']['domain']; + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) $app->system->exec_safe('rm -rf ?', $vhost_logfile_dir); $app->log('Removing website logfile directory: '.$vhost_logfile_dir, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost') { //delete the web user - $command = 'killall -u '.escapeshellcmd($data['old']['system_user']).' ; userdel'; - $command .= ' '.escapeshellcmd($data['old']['system_user']); - exec($command); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $command = 'killall -u ? ; userdel ?'; + $app->system->exec_safe($command, $data['old']['system_user'], $data['old']['system_user']); + if($apache_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); } @@ -2233,6 +2333,11 @@ class apache2_plugin { $this->awstats_delete($data, $web_config); } + //* Remove the GoAccess configuration file + if($data['old']['stats_type'] == 'goaccess') { + $this->goaccess_delete($data, $web_config); + } + if($data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { $app->system->web_folder_protection($parent_web_document_root, true); } @@ -2256,7 +2361,7 @@ class apache2_plugin { if($mount_backup){ $web_backup_dir = $backup_dir.'/web'.$data_old['domain_id']; //** do not use rm -rf $web_backup_dir because database(s) may exits - exec(escapeshellcmd('rm -f '.$web_backup_dir.'/web'.$data_old['domain_id'].'_').'*'); + $app->system->exec_safe('rm -f ?*', $web_backup_dir.'/web'.$data_old['domain_id'].'_'); //* cleanup database $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename LIKE ?"; $app->db->query($sql, $conf['server_id'], $data_old['domain_id'], "web".$data_old['domain_id']."_%"); @@ -2311,7 +2416,7 @@ class apache2_plugin { $tpl->setLoop('ip_adresses', $records_out); } - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/ispconfig.conf'); + $vhost_file = $web_config['vhost_conf_dir'].'/ispconfig.conf'; $app->system->file_put_contents($vhost_file, $tpl->grab()); $app->log('Writing the conf file: '.$vhost_file, LOGLEVEL_DEBUG); unset($tpl); @@ -2344,7 +2449,7 @@ class apache2_plugin { //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); if(substr($folder['path'], -1) == '/') $folder['path'] = substr($folder['path'], 0, -1); - $folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$folder['path']); + $folder_path = $website['document_root'].'/' . $web_folder . '/'.$folder['path']; if(substr($folder_path, -1) != '/') $folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2490,7 +2595,7 @@ class apache2_plugin { if(substr($data['new']['path'], 0, 1) == '/') $data['new']['path'] = substr($data['new']['path'], 1); if(substr($data['new']['path'], -1) == '/') $data['new']['path'] = substr($data['new']['path'], 0, -1); - $new_folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$data['new']['path']); + $new_folder_path = $website['document_root'].'/' . $web_folder . '/'.$data['new']['path']; if(substr($new_folder_path, -1) != '/') $new_folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2568,7 +2673,7 @@ class apache2_plugin { $app->system->chown($new_folder_path.'.htaccess', $website['system_user']); $app->system->chgrp($new_folder_path.'.htaccess', $website['system_group']); $app->log('Created/modified file '.$new_folder_path.'.htaccess', LOGLEVEL_DEBUG); - + //* Create empty .htpasswd file, if it does not exist if(!is_file($folder_path.'.htpasswd')) { $app->system->touch($new_folder_path.'.htpasswd'); @@ -2670,8 +2775,6 @@ class apache2_plugin { /* * The webdav - Root needs the group/user as owner and the apache as read and write */ - //$app->system->_exec('chown ' . $user . ':' . $group . ' ' . escapeshellcmd($documentRoot . '/webdav/')); - //$app->system->_exec('chmod 770 ' . escapeshellcmd($documentRoot . '/webdav/')); $app->system->chown($documentRoot . '/webdav', $user); $app->system->chgrp($documentRoot . '/webdav', $group); $app->system->chmod($documentRoot . '/webdav', 0770); @@ -2680,8 +2783,6 @@ class apache2_plugin { * The webdav folder (not the webdav-root!) needs the same (not in ONE step, because the * pwd-files are owned by root) */ - //$app->system->_exec('chown ' . $user . ':' . $group . ' ' . escapeshellcmd($webdav_user_dir.' -R')); - //$app->system->_exec('chmod 770 ' . escapeshellcmd($webdav_user_dir.' -R')); $app->system->chown($webdav_user_dir, $user); $app->system->chgrp($webdav_user_dir, $group); $app->system->chmod($webdav_user_dir, 0770); @@ -2701,7 +2802,7 @@ class apache2_plugin { /* * Next step, patch the vhost - file */ - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'); + $vhost_file = $web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'; $this->_patchVhostWebdav($vhost_file, $documentRoot . '/webdav'); /* @@ -2733,7 +2834,7 @@ class apache2_plugin { /* * Next step, patch the vhost - file */ - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'); + $vhost_file = $web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'; $this->_patchVhostWebdav($vhost_file, $documentRoot . '/webdav'); /* @@ -2934,21 +3035,102 @@ class apache2_plugin { } } - //* Delete the awstats configuration file - private function awstats_delete ($data, $web_config) { + //* Delete the awstats configuration file + private function awstats_delete ($data, $web_config) { + global $app; + + $awstats_conf_dir = $web_config['awstats_conf_dir']; + + if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) { + $app->system->unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf'); + $app->log('Removed AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf', LOGLEVEL_DEBUG); + } + } + + //* Update the GoAccess configuration file + private function goaccess_update ($data, $web_config) { + global $app; + + $web_folder = $data['new']['web_folder']; + if($data['new']['type'] == 'vhost') $web_folder = 'web'; + + $goaccess_conf_locs = array('/etc/goaccess.conf', '/etc/goaccess/goaccess.conf'); + $count = 0; + + foreach($goaccess_conf_locs as $goa_loc) { + if(is_file($goa_loc) && (filesize($goa_loc) > 0)) { + $goaccess_conf_main = $goa_loc; + break; + } else { + $count++; + if($count == 2) { + $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_WARN); + } + } + } + + if(!is_dir($data['new']['document_root']."/" . $web_folder . "/stats/.db")) $app->system->mkdirpath($data['new']['document_root'] . "/" . $web_folder . "/stats/.db"); + $goaccess_conf = $data['new']['document_root'].'/log/goaccess.conf'; + + /* + In case that you use a different log format, you should use a custom goaccess.conf which you'll have to put into /usr/local/ispconfig/server/conf-custom/. + By default the originaly with GoAccess shipped goaccess.conf from /etc/ will be used along with the log-format value COMBINED. + */ + + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $goaccess_conf); + + } elseif(!file_exists($goaccess_conf)) { + + /* + By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf as the base conf. + */ + + $app->system->copy($goaccess_conf_main, $goaccess_conf); + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?log-format COMBINED/m', "log-format COMBINED", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(file_exists($goaccess_conf)) { + $domain = $data['new']['domain']; + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?html-report-title(.*)/m', "html-report-title $domain", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(is_file($goaccess_conf) && (filesize($goaccess_conf) > 0)) { + $app->log('Created GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); + } + + if(is_file($data['new']['document_root']."/" . $web_folder . "/stats/index.html")) $app->system->unlink($data['new']['document_root']."/" . $web_folder . "/stats/index.html"); + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } + } + + //* Delete the GoAccess configuration file + private function goaccess_delete ($data, $web_config) { global $app; - $awstats_conf_dir = $web_config['awstats_conf_dir']; + $goaccess_conf = $data['old']['document_root'] . "/log/goaccess.conf"; - if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) { - $app->system->unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf'); - $app->log('Removed AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf', LOGLEVEL_DEBUG); + if ( @is_file($goaccess_conf) ) { + $app->system->unlink($goaccess_conf); + $app->log('Removed GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); } } private function hhvm_update($data, $web_config) { global $app, $conf; - + if(file_exists($conf['rootpath'] . '/conf-custom/hhvm_starter.master')) { $content = file_get_contents($conf['rootpath'] . '/conf-custom/hhvm_starter.master'); } else { @@ -2959,7 +3141,7 @@ class apache2_plugin { } else { $monit_content = file_get_contents($conf['rootpath'] . '/conf/hhvm_monit.master'); } - + if($data['new']['php'] == 'hhvm' && $data['old']['php'] != 'hhvm' || ($data['new']['php'] == 'hhvm' && isset($data['old']['custom_php_ini']) && $data['new']['custom_php_ini'] != $data['old']['custom_php_ini'])) { // Custom php.ini settings @@ -2993,25 +3175,25 @@ class apache2_plugin { $content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $content); file_put_contents('/etc/init.d/hhvm_' . $data['new']['system_user'], $content); - exec('chmod +x /etc/init.d/hhvm_' . $data['new']['system_user'] . ' >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['new']['system_user'] . ' defaults >/dev/null 2>&1'); - exec('/etc/init.d/hhvm_' . $data['new']['system_user'] . ' restart >/dev/null 2>&1'); - + $app->system->exec_safe('chmod +x ? >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('/usr/sbin/update-rc.d ? defaults >/dev/null 2>&1', 'hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('? restart >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['new']['system_user']); + if(is_dir('/etc/monit/conf.d')){ $monit_content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $monit_content); file_put_contents('/etc/monit/conf.d/00-hhvm_' . $data['new']['system_user'], $monit_content); if(is_file('/etc/monit/conf.d/hhvm_' . $data['new']['system_user'])) unlink('/etc/monit/conf.d/hhvm_' . $data['new']['system_user']); exec('/etc/init.d/monit restart >/dev/null 2>&1'); } - + } elseif($data['new']['php'] != 'hhvm' && $data['old']['php'] == 'hhvm') { if($data['old']['system_user'] != ''){ - exec('/etc/init.d/hhvm_' . $data['old']['system_user'] . ' stop >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['old']['system_user'] . ' remove >/dev/null 2>&1'); + $app->system->exec_safe('? stop >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['old']['system_user']); + $app->system->exec_safe('/usr/sbin/update-rc.d ? remove >/dev/null 2>&1', 'hhvm_' . $data['old']['system_user']); unlink('/etc/init.d/hhvm_' . $data['old']['system_user']); if(is_file('/etc/hhvm/'.$data['old']['system_user'].'.ini')) unlink('/etc/hhvm/'.$data['old']['system_user'].'.ini'); } - + if(is_file('/etc/monit/conf.d/hhvm_' . $data['old']['system_user']) || is_file('/etc/monit/conf.d/00-hhvm_' . $data['old']['system_user'])){ if(is_file('/etc/monit/conf.d/hhvm_' . $data['old']['system_user'])){ unlink('/etc/monit/conf.d/hhvm_' . $data['old']['system_user']); @@ -3031,18 +3213,28 @@ class apache2_plugin { //$reload = false; if($data['new']['php'] == 'php-fpm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] == 'php-fpm'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -3051,6 +3243,8 @@ class apache2_plugin { $app->uses("getconf"); $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); + $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart'; + if($data['new']['php'] != 'php-fpm'){ if(@is_file($pool_dir.$pool_name.'.conf')){ $app->system->unlink($pool_dir.$pool_name.'.conf'); @@ -3058,9 +3252,9 @@ class apache2_plugin { } if($data['old']['php'] == 'php-fpm'){ if(!$default_php_fpm){ - $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script); } else { - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } //if($reload == true) $app->services->restartService('php-fpm','reload'); @@ -3071,7 +3265,7 @@ class apache2_plugin { $tpl = new tpl(); $tpl->newTemplate('php_fpm_pool.conf.master'); $tpl->setVar('apache_version', $app->system->getapacheversion()); - + if($data['new']['php_fpm_use_socket'] == 'y'){ $use_tcp = 0; $use_socket = 1; @@ -3104,7 +3298,7 @@ class apache2_plugin { $tpl->setVar('document_root', $data['new']['document_root']); $tpl->setVar('security_level', $web_config['security_level']); $tpl->setVar('domain', $data['new']['domain']); - $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($data['new']['php_open_basedir']); + $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $tpl->setVar('php_open_basedir', $php_open_basedir); if($php_open_basedir != ''){ $tpl->setVar('enable_php_open_basedir', ''); @@ -3124,7 +3318,7 @@ class apache2_plugin { // Custom php.ini settings $final_php_ini_settings = array(); $custom_php_ini_settings = trim($data['new']['custom_php_ini']); - + if(intval($data['new']['directive_snippets_id']) > 0){ $snippet = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ? AND type = 'apache' AND active = 'y' AND customer_viewable = 'y'", intval($data['new']['directive_snippets_id'])); if(isset($snippet['required_php_snippets']) && trim($snippet['required_php_snippets']) != ''){ @@ -3143,7 +3337,7 @@ class apache2_plugin { } } } - + $custom_session_save_path = false; if($custom_php_ini_settings != ''){ // Make sure we only have Unix linebreaks @@ -3151,6 +3345,7 @@ class apache2_plugin { $custom_php_ini_settings = str_replace("\r", "\n", $custom_php_ini_settings); $ini_settings = explode("\n", $custom_php_ini_settings); if(is_array($ini_settings) && !empty($ini_settings)){ + $ini_settings = str_replace('{WEBROOT}', $data['new']['document_root'].'/web', $ini_settings); foreach($ini_settings as $ini_setting){ $ini_setting = trim($ini_setting); if(substr($ini_setting, 0, 1) == ';') continue; @@ -3191,13 +3386,13 @@ class apache2_plugin { unset($tpl); // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { $app->system->unlink($default_pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } $php_versions = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?", $conf["server_id"]); @@ -3209,7 +3404,7 @@ class apache2_plugin { if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) { $app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']); } } } @@ -3217,9 +3412,9 @@ class apache2_plugin { // Reload current PHP-FPM after all others sleep(1); if(!$default_php_fpm){ - $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script); } else { - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } //$reload = true; @@ -3231,16 +3426,26 @@ class apache2_plugin { private function php_fpm_pool_delete ($data, $web_config) { global $app, $conf; - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){ + $app->uses("getconf"); + $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); + + $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart'; + + if($data['old']['server_php_id'] != 0 && $data['old']['php'] == 'php-fpm'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } @@ -3257,13 +3462,13 @@ class apache2_plugin { } // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { $app->system->unlink($default_pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } $php_versions = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?", $data['old']['server_id']); @@ -3275,7 +3480,7 @@ class apache2_plugin { if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) { $app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']); } } } @@ -3284,9 +3489,9 @@ class apache2_plugin { // Reload current PHP-FPM after all others sleep(1); if(!$default_php_fpm){ - $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script); } else { - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } @@ -3317,7 +3522,7 @@ class apache2_plugin { } if($app->system->is_group('client'.$client_id)){ - $app->system->_exec('groupdel client'.$client_id); + $app->system->exec_safe('groupdel ?', 'client'.$client_id); $app->log('Removed group client'.$client_id, LOGLEVEL_DEBUG); } } diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php index b843e3c8a4e45f86adedf8106207d79e1c4b586f..7fb55038023083c241d2813ee5d7495a1d4550ca 100644 --- a/server/plugins-available/apps_vhost_plugin.inc.php +++ b/server/plugins-available/apps_vhost_plugin.inc.php @@ -106,6 +106,16 @@ class apps_vhost_plugin { $vhost_port_listen = '#'; } $tpl->setVar('vhost_port_listen', $vhost_port_listen); + + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if($mail_config['content_filter'] == 'rspamd'){ + $use_rspamd = true; + exec('/usr/sbin/a2enmod proxy'); + exec('/usr/sbin/a2enmod proxy_http'); + } else { + $use_rspamd = false; + } + $tpl->setVar('use_rspamd', $use_rspamd); $content = $tpl->grab(); @@ -121,7 +131,7 @@ class apps_vhost_plugin { $app->system->file_put_contents("$vhost_conf_dir/apps.vhost", $content); // enabled / disable apps-vhost - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'; if(is_link($vhost_symlink) && $web_config['apps_vhost_enabled'] == 'n') { $app->system->unlink($vhost_symlink); } @@ -156,11 +166,11 @@ class apps_vhost_plugin { $apps_vhost_ip = $web_config['apps_vhost_ip'].':'; } - $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); + $socket_dir = $web_config['php_fpm_socket_dir']; if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; - if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); + if(!is_dir($socket_dir)) $app->system->exec_safe('mkdir -p ?', $socket_dir); $fpm_socket = $socket_dir.'apps.sock'; - $cgi_socket = escapeshellcmd($web_config['nginx_cgi_socket']); + $cgi_socket = $web_config['nginx_cgi_socket']; $content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content); $content = str_replace('{apps_vhost_port}', $web_config['apps_vhost_port'], $content); @@ -174,6 +184,7 @@ class apps_vhost_plugin { || file_exists('/var/run/php/php7.1-fpm.sock') || file_exists('/var/run/php/php7.2-fpm.sock') || file_exists('/var/run/php/php7.3-fpm.sock') + || file_exists('/var/run/php/php7.4-fpm.sock') ){ $use_tcp = '#'; $use_socket = ''; @@ -184,10 +195,20 @@ class apps_vhost_plugin { $content = str_replace('{use_tcp}', $use_tcp, $content); $content = str_replace('{use_socket}', $use_socket, $content); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if($mail_config['content_filter'] == 'rspamd'){ + $use_rspamd = ''; + } else { + $use_rspamd = '#'; + } + $content = str_replace('{use_rspamd}', $use_rspamd, $content); + // Fix socket path on PHP 7 systems if(file_exists('/var/run/php/php7.0-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.0-fpm.sock', $content); if(file_exists('/var/run/php/php7.1-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.1-fpm.sock', $content); if(file_exists('/var/run/php/php7.2-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.2-fpm.sock', $content); + if(file_exists('/var/run/php/php7.3-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.3-fpm.sock', $content); + if(file_exists('/var/run/php/php7.4-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.4-fpm.sock', $content); // PHP-FPM // Dont just copy over the php-fpm pool template but add some custom settings @@ -207,7 +228,7 @@ class apps_vhost_plugin { file_put_contents("$vhost_conf_dir/apps.vhost", $content); // enabled / disable apps-vhost - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'; if(is_link($vhost_symlink) && $web_config['apps_vhost_enabled'] == 'n') { $app->system->unlink($vhost_symlink); } @@ -221,7 +242,3 @@ class apps_vhost_plugin { } // end class - - - -?> diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php index 6ce8c98939ae236f0246aecd574812d1a1c32673..ffbc5a6b795a7917f8b9109618efd1b509e35681 100644 --- a/server/plugins-available/backup_plugin.inc.php +++ b/server/plugins-available/backup_plugin.inc.php @@ -54,6 +54,8 @@ class backup_plugin { $app->plugins->registerAction('backup_download', $this->plugin_name, 'backup_action'); $app->plugins->registerAction('backup_restore', $this->plugin_name, 'backup_action'); $app->plugins->registerAction('backup_delete', $this->plugin_name, 'backup_action'); + $app->plugins->registerAction('backup_web_files', $this->plugin_name, 'make_backup_callback'); + $app->plugins->registerAction('backup_database', $this->plugin_name, 'make_backup_callback'); //$app->plugins->registerAction('backup_download_mail', $this->plugin_name, 'backup_action_mail'); $app->plugins->registerAction('backup_restore_mail', $this->plugin_name, 'backup_action_mail'); $app->plugins->registerAction('backup_delete_mail', $this->plugin_name, 'backup_action_mail'); @@ -69,6 +71,7 @@ class backup_plugin { if(is_array($backup)) { $app->uses('ini_parser,file,getconf,system'); + $app->load("backup"); $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $backup['parent_domain_id']); $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); @@ -78,7 +81,8 @@ class backup_plugin { $backup_dir_is_ready = true; //* mount backup directory, if necessary - if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($server_config['backup_dir']) ) $backup_dir_is_ready = false; + if (!backup::mount_backup_dir($conf['server_id'])) + $backup_dir_is_ready = false; if($backup_dir_is_ready){ //* Make backup available for download @@ -104,13 +108,13 @@ class backup_plugin { // extract tar.gz archive $dump_directory = str_replace(".tar.gz", "", $backup['filename']); $extracted = "/usr/local/ispconfig/server/temp"; - exec("tar -xzvf ".escapeshellarg($backup_dir.'/'.$backup['filename'])." --directory=".escapeshellarg($extracted)); + $app->system->exec_safe("tar -xzvf ? --directory=?", $backup_dir.'/'.$backup['filename'], $extracted); $restore_directory = $extracted."/".$dump_directory."/".$db_name; // mongorestore -h 127.0.0.1 -u root -p 123456 --authenticationDatabase admin -d c1debug --drop ./toRestore - $command = "mongorestore -h 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin -d ".$db_name." --drop ".escapeshellarg($restore_directory); - exec($command); - exec("rm -rf ".escapeshellarg($extracted."/".$dump_directory)); + $command = "mongorestore -h 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin -d ? --drop ?"; + $app->system->exec_safe($command, $db_name, $restore_directory); + $app->system->exec_safe("rm -rf ?", $extracted."/".$dump_directory); } unset($clientdb_host); @@ -121,47 +125,12 @@ class backup_plugin { //* Restore a mysql backup if($action_name == 'backup_restore' && $backup['backup_type'] == 'mysql') { - //* Load sql dump into db - include 'lib/mysql_clientdb.conf'; - - if(file_exists($backup_dir.'/'.$backup['filename'])) { - //$parts = explode('_',$backup['filename']); - //$db_name = $parts[1]; - preg_match('@^db_(.+)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql\.gz$@', $backup['filename'], $matches); - $db_name = $matches[1]; - $command = "gunzip --stdout ".escapeshellarg($backup_dir.'/'.$backup['filename'])." | mysql -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".escapeshellarg($db_name); - exec($command); - } - unset($clientdb_host); - unset($clientdb_user); - unset($clientdb_password); - $app->log('Restored MySQL backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG); + backup::restoreBackupDatabase($backup['backup_format'], trim($backup['backup_password']), $backup_dir, $backup['filename'], $backup['backup_mode'], $backup['backup_type']); } //* Restore a web backup if($action_name == 'backup_restore' && $backup['backup_type'] == 'web') { - $app->system->web_folder_protection($web['document_root'], false); - if($backup['backup_mode'] == 'userzip') { - if(file_exists($backup_dir.'/'.$backup['filename']) && $web['document_root'] != '' && $web['document_root'] != '/' && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) { - if(file_exists($web['document_root'].'/backup/'.$backup['filename'])) rename($web['document_root'].'/backup/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename'].'.bak'); - copy($backup_dir.'/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename']); - chgrp($web['document_root'].'/backup/'.$backup['filename'], $web['system_group']); - //chown($web['document_root'].'/backup/'.$backup['filename'],$web['system_user']); - $command = 'sudo -u '.escapeshellarg($web['system_user']).' unzip -qq -o '.escapeshellarg($web['document_root'].'/backup/'.$backup['filename']).' -d '.escapeshellarg($web['document_root']).' 2> /dev/null'; - exec($command); - unlink($web['document_root'].'/backup/'.$backup['filename']); - if(file_exists($web['document_root'].'/backup/'.$backup['filename'].'.bak')) rename($web['document_root'].'/backup/'.$backup['filename'].'.bak', $web['document_root'].'/backup/'.$backup['filename']); - $app->log('Restored Web backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG); - } - } - if($backup['backup_mode'] == 'rootgz') { - if(file_exists($backup_dir.'/'.$backup['filename']) && $web['document_root'] != '' && $web['document_root'] != '/' && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) { - $command = 'tar xzf '.escapeshellarg($backup_dir.'/'.$backup['filename']).' --directory '.escapeshellarg($web['document_root']); - exec($command); - $app->log('Restored Web backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG); - } - } - $app->system->web_folder_protection($web['document_root'], true); + backup::restoreBackupWebFiles($backup['backup_format'], trim($backup['backup_password']), $backup_dir, $backup['filename'], $backup['backup_mode'], $backup['backup_type'], $web['document_root'], $web['system_user'], $web['system_group']); } if($action_name == 'backup_delete') { @@ -175,7 +144,7 @@ class backup_plugin { } } - if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir); + backup::unmount_backup_dir($conf['server_id']); } else { $app->log('Backup directory not ready.', LOGLEVEL_DEBUG); } @@ -186,6 +155,37 @@ class backup_plugin { return 'ok'; } + /** + * Makes a backup of website files or database, it's triggered by action and required for the plugin to work. + * Please, don't call this function directly unless you know what you're doing. + * @param string $action_name is the backup source: web files or database + * @param string|int $domain_id + * @return string + * @author Ramil Valitov <ramilvalitov@gmail.com> + * @uses backup_plugin::run_backup() recommended to use if you need to make backups + */ + public function make_backup_callback($action_name, $domain_id) + { + global $app; + + //Load backup class + $app->load('backup'); + $app->log('Triggered backup routine for domain id ' . $domain_id . ', action name ' . $action_name, LOGLEVEL_DEBUG); + + switch ($action_name) { + case 'backup_web_files': + backup::run_backup($domain_id, 'web', "manual"); + break; + case 'backup_database': + backup::run_backup($domain_id, 'mysql', "manual"); + break; + default: + $app->log('Unknown backup action name: ' . $action_name, LOGLEVEL_ERROR); + break; + } + return 'ok'; + } + //* Restore a mail backup - florian@schaal-24.de public function backup_action_mail($action_name, $data) { global $app, $conf; @@ -237,22 +237,24 @@ class backup_plugin { if($mail_backup['backup_mode'] == 'userzip') { copy($mail_backup_file, $record['maildir'].'/'.$mail_backup['filename']); chgrp($record['maildir'].'/'.$mail_backup['filename'], $mail_config['mailuser_group']); - $command = 'sudo -u '.$mail_config['mailuser_name'].' unzip -qq -o '.escapeshellarg($record['maildir'].'/'.$mail_backup['filename']).' -d '.escapeshellarg($record['maildir']).' 2> /dev/null'; - exec($command,$tmp_output, $retval); + $command = 'sudo -u ? unzip -qq -o ? -d ? 2> /dev/null'; + $app->system->exec_safe($command, $mail_config['mailuser_name'], $record['maildir'].'/'.$mail_backup['filename'], $record['maildir']); + $retval = $app->system->last_exec_retcode(); unlink($record['maildir'].'/'.$mail_backup['filename']); - } - if($mail_backup['backup_mode'] == 'rootgz') { - $command='tar xfz '.escapeshellarg($mail_backup_file).' --directory '.escapeshellarg($record['maildir']); - exec($command,$tmp_output, $retval); + } elseif($mail_backup['backup_mode'] == 'rootgz') { + $command='tar xfz ? --directory ?'; + $app->system->exec_safe($command, $mail_backup_file, $record['maildir']); + $retval = $app->system->last_exec_retcode(); } if($retval == 0) { // Now import backup-mailbox into special backup-folder $backupname = "backup-".date("Y-m-d", $mail_backup['tstamp']); - exec("doveadm mailbox create -u \"".$record["email"]."\" $backupname"); - exec("doveadm import -u \"".$record["email"]."\" mdbox:".$record['maildir']."/backup $backupname all", $tmp_output, $retval); - exec("for f in `doveadm mailbox list -u \"".$record["email"]."\" $backupname*`; do doveadm mailbox subscribe -u \"".$record["email"]."\" \$f; done", $tmp_output, $retval); - exec('rm -rf '.$record['maildir'].'/backup'); + $app->system->exec_safe("doveadm mailbox create -u ? ?", $record["email"], $backupname); + $app->system->exec_safe("doveadm import -u ? mdbox:? ? all", $record["email"], $record['maildir']."/backup", $backupname); + $app->system->exec_safe("for f in `doveadm mailbox list -u ? ?*`; do doveadm mailbox subscribe -u ? \$f; done", $record["email"], $backupname, $record["email"]); + $retval = $app->system->last_exec_retcode(); + $app->system->exec_safe('rm -rf ?', $record['maildir'].'/backup'); } if($retval == 0){ @@ -260,7 +262,7 @@ class backup_plugin { } else { // cleanup if (file_exists($record['maildir'].'/'.$mail_backup['filename'])) unlink($record['maildir'].'/'.$mail_backup['filename']); - if (file_exists($record['maildir']."/backup")) exec('rm -rf '.$record['maildir']."/backup"); + if (file_exists($record['maildir']."/backup")) $app->system->exec_safe('rm -rf ?', $record['maildir']."/backup"); $app->log('Unable to restore Mail backup '.$mail_backup_file.' '.$tmp_output,LOGLEVEL_ERROR); } @@ -269,8 +271,10 @@ class backup_plugin { if($mail_backup['backup_mode'] == 'userzip') { copy($mail_backup_file, $domain_dir.'/'.$mail_backup['filename']); chgrp($domain_dir.'/'.$mail_backup['filename'], $mail_config['mailuser_group']); - $command = 'sudo -u '.$mail_config['mailuser_name'].' unzip -qq -o '.escapeshellarg($domain_dir.'/'.$mail_backup['filename']).' -d '.escapeshellarg($domain_dir).' 2> /dev/null'; - exec($command,$tmp_output, $retval); + $command = 'sudo -u ? unzip -qq -o ? -d ? 2> /dev/null'; + $app->system->exec_safe($command, $mail_config['mailuser_name'], $domain_dir.'/'.$mail_backup['filename'], $domain_dir); + $retval = $app->system->last_exec_retcode(); + $tmp_output = $app->system->last_exec_out(); unlink($domain_dir.'/'.$mail_backup['filename']); if($retval == 0){ $app->log('Restored Mail backup '.$mail_backup_file,LOGLEVEL_DEBUG); @@ -279,8 +283,10 @@ class backup_plugin { } } if($mail_backup['backup_mode'] == 'rootgz') { - $command='tar xfz '.escapeshellarg($mail_backup_file).' --directory '.escapeshellarg($domain_dir); - exec($command,$tmp_output, $retval); + $command='tar xfz ? --directory ?'; + $app->system->exec_safe($command, $mail_backup_file, $domain_dir); + $retval = $app->system->last_exec_retcode(); + $tmp_output = $app->system->last_exec_out(); if($retval == 0){ $app->log('Restored Mail backup '.$mail_backup_file,LOGLEVEL_DEBUG); } else { @@ -315,5 +321,4 @@ class backup_plugin { } // end class -?> - +?> diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index edf7b93d9f1ea62f8b314a62b73c77f15e5ca678..d4b4a7c01c0516e582c1128c6180a6d3e6320aa1 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -86,11 +86,8 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - //TODO : change this when distribution information has been integrated into server record - $filespre = (file_exists('/etc/gentoo-release')) ? 'pri/' : 'pri.'; - $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); - if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false; + if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix().$domain)) return false; //* Check Entropy if (file_get_contents('/proc/sys/kernel/random/entropy_avail') < 400) { @@ -114,9 +111,7 @@ class bind_plugin { } //Do some magic... - exec('cd '.escapeshellcmd($dns_config['bind_zonefiles_dir']).';'. - 'dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE '.escapeshellcmd($domain).';'. - 'dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE '.escapeshellcmd($domain)); + $app->system->exec_safe('cd ?; dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ?; dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE ?', $dns_config['bind_zonefiles_dir'], $domain, $domain); $this->soa_dnssec_sign($data); //Now sign the zone for the first time $data['new']['dnssec_initialized']='Y'; @@ -131,9 +126,7 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - //TODO : change this when distribution information has been integrated into server record - $filespre = (file_exists('/etc/gentoo-release')) ? 'pri/' : 'pri.'; - + $filespre = $this->zone_file_prefix(); $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false; @@ -148,8 +141,7 @@ class bind_plugin { file_put_contents($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain, $zonefile); //Sign the zone and set it valid for max. 16 days - exec('cd '.escapeshellcmd($dns_config['bind_zonefiles_dir']).';'. - 'dnssec-signzone -A -e +1382400 -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o '.escapeshellcmd($domain).' -t '.$filespre.escapeshellcmd($domain)); + $app->system->exec_safe('cd ?; dnssec-signzone -A -e +1382400 -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o ? -t ?', $dns_config['bind_zonefiles_dir'], $domain, $filespre.$domain); //Write Data back ino DB $dnssecdata = "DS-Records:\n".file_get_contents($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.'); @@ -171,9 +163,7 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - //TODO : change this when distribution information has been integrated into server record - $filespre = (file_exists('/etc/gentoo-release')) ? 'pri/' : 'pri.'; - + $filespre = $this->zone_file_prefix(); $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false; @@ -187,8 +177,8 @@ class bind_plugin { if (!$new && !file_exists($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.')) $this->soa_dnssec_create($data); $dbdata = $app->db->queryOneRecord('SELECT id,serial FROM dns_soa WHERE id=?', intval($data['new']['id'])); - exec('cd '.escapeshellcmd($dns_config['bind_zonefiles_dir']).';'. - 'named-checkzone '.escapeshellcmd($domain).' '.escapeshellcmd($dns_config['bind_zonefiles_dir']).'/'.$filespre.escapeshellcmd($domain).' | egrep -ho \'[0-9]{10}\'', $serial, $retState); + $app->system->exec_safe('cd ?; named-checkzone ? ? | egrep -ho \'[0-9]{10}\'', $dns_config['bind_zonefiles_dir'], $domain, $dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain); + $retState = $app->system->last_exec_retcode(); if ($retState != 0) { $app->log('DNSSEC Error: Error in Zonefile for '.$domain, LOGLEVEL_ERR); return false; @@ -206,13 +196,10 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - //TODO : change this when distribution information has been integrated into server record - $filespre = (file_exists('/etc/gentoo-release')) ? 'pri/' : 'pri.'; - $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); unlink($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+*'); - unlink($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain.'.signed'); + unlink($dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix().$domain.'.signed'); unlink($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.'); if ($app->dbmaster !== $app->db) $app->dbmaster->query('UPDATE dns_soa SET dnssec_info=\'\', dnssec_initialized=\'N\' WHERE id=?', intval($data['new']['id'])); @@ -238,7 +225,7 @@ class bind_plugin { //* Get the bind version $bind_caa = false; - $bind = explode("\n", shell_exec('which named bind')); + $bind = explode("\n", shell_exec('which named bind 2> /dev/null')); $bind = reset($bind); if(is_executable($bind)) { exec($bind . ' -v 2>&1', $tmp); @@ -281,22 +268,18 @@ class bind_plugin { } $tpl->setLoop('zones', $records); - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri/'.str_replace("/", "_", substr($zone['origin'], 0, -1))); - } - else { - $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($zone['origin'], 0, -1))); - } + $filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($zone['origin'], 0, -1)); $old_zonefile = @file_get_contents($filename); file_put_contents($filename, $tpl->grab()); - chown($filename, escapeshellcmd($dns_config['bind_user'])); - chgrp($filename, escapeshellcmd($dns_config['bind_group'])); + chown($filename, $dns_config['bind_user']); + chgrp($filename, $dns_config['bind_group']); //* Check the zonefile if(is_file($filename.'.err')) unlink($filename.'.err'); - exec('named-checkzone '.escapeshellarg($zone['origin']).' '.escapeshellarg($filename), $out, $return_status); + $app->system->exec_safe('named-checkzone ? ?', $zone['origin'], $filename); + $out = $app->system->last_exec_out(); + $return_status = $app->system->last_exec_retcode(); if($return_status === 0) { $app->log("Writing BIND domain file: ".$filename, LOGLEVEL_DEBUG); } else { @@ -309,8 +292,8 @@ class bind_plugin { if ($old_zonefile != '') { rename($filename, $filename.'.err'); file_put_contents($filename, $old_zonefile); - chown($filename, escapeshellcmd($dns_config['bind_user'])); - chgrp($filename, escapeshellcmd($dns_config['bind_group'])); + chown($filename, $dns_config['bind_user']); + chgrp($filename, $dns_config['bind_group']); } else { rename($filename, $filename.'.err'); } @@ -328,13 +311,7 @@ class bind_plugin { } else if ($data['new']['dnssec_wanted'] == 'Y' && $data['old']['dnssec_initialized'] == 'N') $this->soa_dnssec_create($data); else if ($data['new']['dnssec_wanted'] == 'N' && $data['old']['dnssec_initialized'] == 'Y') { //delete old signed file if dnssec is no longer wanted - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $filename = $dns_config['bind_zonefiles_dir'].'/pri/'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - else { - $filename = $dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } + $filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($filename.'.signed')) unlink($filename.'.signed'); } else if ($data['new']['dnssec_wanted'] == 'Y') $this->soa_dnssec_update($data); // END DNSSEC @@ -346,13 +323,7 @@ class bind_plugin { //* Delete old domain file, if domain name has been changed if($data['old']['origin'] != $data['new']['origin']) { - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $filename = $dns_config['bind_zonefiles_dir'].'/pri/'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - else { - $filename = $dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } + $filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($filename)) unlink($filename); if(is_file($filename.'.err')) unlink($filename.'.err'); @@ -379,20 +350,16 @@ class bind_plugin { $this->write_named_conf($data, $dns_config); //* Delete the domain file - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $zone_file_name = $dns_config['bind_zonefiles_dir'].'/pri/'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - else { - $zone_file_name = $dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - + $zone_file_name = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($zone_file_name)) unlink($zone_file_name); if(is_file($zone_file_name.'.err')) unlink($zone_file_name.'.err'); $app->log("Deleting BIND domain file: ".$zone_file_name, LOGLEVEL_DEBUG); //* DNSSEC-Implementation - if ($data['old']['dnssec_initialized'] == 'Y') exec('/usr/local/ispconfig/server/scripts/dnssec-delete.sh '.$data['old']['origin']); //delete keys + if($data['old']['dnssec_initialized'] == 'Y' && file_exists('/usr/local/ispconfig/server/scripts/dnssec-delete.sh')) { + //delete keys + $app->system->exec_safe('/usr/local/ispconfig/server/scripts/dnssec-delete.sh ?', $data['old']['origin']); + } //* Reload bind nameserver $app->services->restartServiceDelayed('bind', 'reload'); @@ -423,23 +390,12 @@ class bind_plugin { //* Delete old domain file, if domain name has been changed if($data['old']['origin'] != $data['new']['origin']) { - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $filename = $dns_config['bind_zonefiles_dir'].'/sec/'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - else { - $filename = $dns_config['bind_zonefiles_dir'].'/slave/sec.'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - + $filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($filename)) unset($filename); } //* Ensure that the named slave directory is writable by the named user - if (file_exists('/etc/gentoo-release')) { - $slave_record_dir = $dns_config['bind_zonefiles_dir'].'/sec'; - } else { - $slave_record_dir = $dns_config['bind_zonefiles_dir'].'/slave'; - } + $slave_record_dir = $dns_config['bind_zonefiles_dir'].'/'.$this->slave_zone_file_prefix(); if(!@is_dir($slave_record_dir)) mkdir($slave_record_dir, 0770); chown($slave_record_dir, $dns_config['bind_user']); chgrp($slave_record_dir, $dns_config['bind_group']); @@ -461,14 +417,7 @@ class bind_plugin { $this->write_named_conf($data, $dns_config); //* Delete the domain file - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $zone_file_name = $dns_config['bind_zonefiles_dir'].'/sec/'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - else { - $zone_file_name = $dns_config['bind_zonefiles_dir'].'/slave/sec.'.str_replace("/", "_", substr($data['old']['origin'], 0, -1)); - } - + $zone_file_name = $dns_config['bind_zonefiles_dir'].'/' . $this->slave_zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($zone_file_name)) unlink($zone_file_name); $app->log("Deleting BIND domain file for secondary zone: ".$zone_file_name, LOGLEVEL_DEBUG); @@ -525,16 +474,8 @@ class bind_plugin { //* Check if the current zone that triggered this function has at least one NS record - //TODO : change this when distribution information has been integrated into server record - if (file_exists('/etc/gentoo-release')) { - $pri_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/pri/'; - $sec_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/sec/'; - - } - else { - $pri_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/pri.'; - $sec_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/slave/sec.'; - } + $pri_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix(); + $sec_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/'.$this->slave_zone_file_prefix(); //* Loop trough zones foreach($tmps as $tmp) { @@ -582,11 +523,6 @@ class bind_plugin { 'zonefile_path' => $sec_zonefiles_path.str_replace("/", "_", substr($tmp['origin'], 0, -1)), 'options' => $options ); - - // $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/slave/sec.'.substr($tmp['origin'],0,-1)); - // $app->log("Writing BIND domain file: ".$filename,LOGLEVEL_DEBUG); - - } $tpl_sec = new tpl(); @@ -606,6 +542,16 @@ class bind_plugin { } + function zone_file_prefix() { + //TODO : change this when distribution information has been integrated into server record + return (file_exists('/etc/gentoo-release')) ? 'pri/' : 'pri.'; + } + function slave_zone_file_prefix() { + //TODO : change this when distribution information has been integrated into server record + return (file_exists('/etc/gentoo-release')) ? 'sec/' : 'slave/sec.'; + } + + } // end class diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index c652f299ebc44dd87c5cc3f1c65f118cdbebb144..0650ad87a3aefee4057d4d78d6a40214c2454852 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -103,20 +103,6 @@ class cron_jailkit_plugin { if ($data['new']['type'] == "chrooted") { // load the server configuration options - /* - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - $this->parent_domain = $parent_domain; - - $this->_setup_jailkit_chroot(); - - //$command .= 'usermod -U '.escapeshellcmd($parent_domain['system_user']); - //exec($command); - - $this->_add_jailkit_user(); - */ $app->uses("getconf"); $this->data = $data; $this->app = $app; @@ -130,8 +116,8 @@ class cron_jailkit_plugin { $this->_add_jailkit_user(); - $command .= 'usermod -U '.escapeshellcmd($parent_domain["system_user"]).' 2>/dev/null'; - exec($command); + $command .= 'usermod -U ? 2>/dev/null'; + $app->system->exec_safe($command, $parent_domain["system_user"]); $this->_update_website_security_level(); @@ -230,14 +216,9 @@ class cron_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->parent_domain['document_root'].'/etc/jailkit')) { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command.' 2>/dev/null'); - - $this->app->log("Added jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_chroot($this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_sections']); - //$this->_add_jailkit_programs(); // done later on + $this->app->log("Added jailkit chroot", LOGLEVEL_DEBUG); $this->app->load('tpl'); @@ -248,7 +229,7 @@ class cron_jailkit_plugin { $tpl->setVar('domain', $this->parent_domain['domain']); $tpl->setVar('home_dir', $this->_get_home_dir("")); - $bashrc = escapeshellcmd($this->parent_domain['document_root']).'/etc/bash.bashrc'; + $bashrc = $this->parent_domain['document_root'].'/etc/bash.bashrc'; if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); $app->system->file_put_contents($bashrc, $tpl->grab()); @@ -261,7 +242,7 @@ class cron_jailkit_plugin { $tpl->setVar('domain', $this->parent_domain['domain']); - $motd = escapeshellcmd($this->parent_domain['document_root']).'/var/run/motd'; + $motd = $this->parent_domain['document_root'].'/var/run/motd'; if(@is_file($motd) || @is_link($motd)) unlink($motd); $app->system->file_put_contents($motd, $tpl->grab()); @@ -275,19 +256,11 @@ class cron_jailkit_plugin { global $app; //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_programs'].'\''; - exec($command.' 2>/dev/null'); - - $this->app->log("Added programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); - - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_cron_programs'].'\''; - exec($command.' 2>/dev/null'); - - $this->app->log("Added cron programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_programs($this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_programs']); + $this->app->log("Added app programs to jailkit chroot", LOGLEVEL_DEBUG); + + $app->system->create_jailkit_programs($this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_cron_programs']); + $this->app->log("Added cron programs to jailkit chroot", LOGLEVEL_DEBUG); } function _add_jailkit_user() @@ -298,30 +271,23 @@ class cron_jailkit_plugin { $jailkit_chroot_userhome = $this->_get_home_dir($this->parent_domain['system_user']); if(!is_dir($this->parent_domain['document_root'].'/etc')) mkdir($this->parent_domain['document_root'].'/etc'); - if(!is_file($this->parent_domain['document_root'].'/etc/passwd')) exec('touch '.$this->parent_domain['document_root'].'/etc/passwd'); + if(!is_file($this->parent_domain['document_root'].'/etc/passwd')) $app->system->exec_safe('touch ?', $this->parent_domain['document_root'].'/etc/passwd'); // IMPORTANT! // ALWAYS create the user. Even if the user was created before // if we check if the user exists, then a update (no shell -> jailkit) will not work // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['system_user']); - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd("/bin/bash"); - exec($command.' 2>/dev/null'); - - $this->app->log("Added jailkit user to chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_user($this->parent_domain['system_user'], $this->parent_domain['document_root'], $jailkit_chroot_userhome); - $app->system->mkdir(escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome), 0755, true); - $app->system->chown(escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome), escapeshellcmd($this->parent_domain['system_user'])); - $app->system->chgrp(escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome), escapeshellcmd($this->parent_domain['system_group'])); + $app->system->mkdir($this->parent_domain['document_root'].$jailkit_chroot_userhome, 0755, true); + $app->system->chown($this->parent_domain['document_root'].$jailkit_chroot_userhome, $this->parent_domain['system_user']); + $app->system->chgrp($this->parent_domain['document_root'].$jailkit_chroot_userhome, $this->parent_domain['system_group']); } function _get_home_dir($username) { - return str_replace("[username]", escapeshellcmd($username), $this->jailkit_config["jailkit_chroot_home"]); + return str_replace("[username]", $username, $this->jailkit_config["jailkit_chroot_home"]); } //* Update the website root directory permissions depending on the security level @@ -345,15 +311,5 @@ class cron_jailkit_plugin { } } - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command, LOGLEVEL_DEBUG); - exec($command); - } - - - } // end class -?> diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php index fb623b9213e436a916ab4c3ebc2ce59efe839417..1d44a849aacf57d5edc6a92c9e8f208e6f275805 100644 --- a/server/plugins-available/cron_plugin.inc.php +++ b/server/plugins-available/cron_plugin.inc.php @@ -103,7 +103,7 @@ class cron_plugin { $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); return false; } - + // Get the client ID $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $data["new"]["sys_groupid"]); $client_id = intval($client["client_id"]); @@ -112,18 +112,18 @@ class cron_plugin { // Create group and user, if not exist $app->uses("system"); - $groupname = escapeshellcmd($parent_domain["system_group"]); + $groupname = $parent_domain["system_group"]; if($parent_domain["system_group"] != '' && !$app->system->is_group($parent_domain["system_group"])) { - exec("groupadd $groupname"); + $app->system->exec_safe("groupadd ?", $groupname); $app->log("Adding the group: $groupname", LOGLEVEL_DEBUG); } - $username = escapeshellcmd($parent_domain["system_user"]); + $username = $parent_domain["system_user"]; if($parent_domain["system_user"] != '' && !$app->system->is_user($parent_domain["system_user"])) { - exec("useradd -d ".escapeshellcmd($parent_domain["document_root"])." -g $groupname $username -s /bin/false"); + $app->system->exec_safe("useradd -d ? -g ? ? -s /bin/false", $parent_domain["document_root"], $groupname, $username); $app->log("Adding the user: $username", LOGLEVEL_DEBUG); } - + // Set the quota for the user if($username != '' && $app->system->is_user($username)) { if($parent_domain['hd_quota'] > 0) { @@ -136,19 +136,19 @@ class cron_plugin { } // get the primitive folder for document_root and the filesystem, will need it later. - $df_output=explode(" ", exec("df -T " . escapeshellarg($parent_domain["document_root"]) . "|awk 'END{print \$2,\$NF}'")); + $df_output=explode(" ", $app->system->exec_safe("df -T ?|awk 'END{print \$2,\$NF}'", $parent_domain["document_root"])); $file_system = $df_output[0]; $primitive_root = $df_output[1]; if ( in_array($file_system , array('ext2','ext3','ext4'),true) ) { - exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); - exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); + $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); + $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } elseif ($file_system == 'xfs') { - - exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root"); + + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username", $primitive_root); // xfs only supports timers globally, not per user. - exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root"); + $app->system->exec_safe("xfs_quota -x -c 'timer -bir -i 604800' ?", $primitive_root); unset($project_uid, $username_position, $xfs_projects); unset($primitive_root, $df_output, $mb_hard, $mb_soft); @@ -164,7 +164,7 @@ class cron_plugin { } // make temp directory writable for the apache and website users - $app->system->chmod(escapeshellcmd($parent_domain["document_root"].'/tmp'), 0777); + $app->system->chmod($parent_domain["document_root"].'/tmp', 0777); /** TODO READ CRON MASTER **/ @@ -177,21 +177,23 @@ class cron_plugin { } function delete($event_name, $data) { - global $app, $conf; + global $app; //* get data from web $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ?", $data["old"]["parent_domain_id"]); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found", LOGLEVEL_WARN); - return 0; - } - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $data["old"]["sys_groupid"]); - $client_id = intval($client["client_id"]); - unset($client); - $this->parent_domain = $parent_domain; + if(!$parent_domain) { + $tmp = $app->db->queryOneRecord('SELECT * FROM sys_datalog WHERE dbtable = ? AND dbidx = ? AND `action` = ? ORDER BY `datalog_id` DESC', 'web_domain', 'domain_id:' . $data['old']['parent_domain_id'], 'd'); + $tmp = unserialize($tmp); + if($tmp && isset($tmp['old'])) { + $this->parent_domain = $tmp['old']; + } else { + $app->log("Parent domain not found", LOGLEVEL_WARN); + return 0; + } + } else { + $this->parent_domain = $parent_domain; + } $this->_write_crontab(); } @@ -219,31 +221,31 @@ class cron_plugin { if($cron_jobs && count($cron_jobs) > 0) { foreach($cron_jobs as $job) { if($job['run_month'] == '@reboot') { - $command = "@reboot"; + $cron_line = "@reboot"; } else { - $command = str_replace(" ", "", $job['run_min']) . "\t" . str_replace(" ", "", $job['run_hour']) . "\t" . str_replace(" ", "", $job['run_mday']) . "\t" . str_replace(" ", "", $job['run_month']) . "\t" . str_replace(" ", "", $job['run_wday']); + $cron_line = str_replace(" ", "", $job['run_min']) . "\t" . str_replace(" ", "", $job['run_hour']) . "\t" . str_replace(" ", "", $job['run_mday']) . "\t" . str_replace(" ", "", $job['run_month']) . "\t" . str_replace(" ", "", $job['run_wday']); } - - $log_target = ">/dev/null 2>&1"; + + $log_target = ""; $log_wget_target = '/dev/null'; $log_root = ''; if($job['log'] == 'y') { if($job['type'] != 'chrooted') $log_root = $this->parent_domain['document_root']; $log_root .= '/private'; - + $log_target = '>>' . $log_root . '/cron.log 2>>' . $log_root . '/cron_error.log'; $log_wget_target = $log_root . '/cron_wget.log'; } - - $command .= "\t{$this->parent_domain['system_user']}"; //* running as user + + $cron_line .= "\t{$this->parent_domain['system_user']}"; //* running as user if($job['type'] == 'url') { - $command .= "\t{$cron_config['wget']} --no-check-certificate --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target; + $cron_line .= "\t{$cron_config['wget']} --no-check-certificate --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target; } else { if(strpos($job['command'], "\n") !== false || strpos($job['command'], "\r") !== false || strpos($job['command'], chr(0)) !== false) { $app->log("Insecure Cron job SKIPPED: " . $job['command'], LOGLEVEL_WARN); continue; } - + $web_root = ''; if($job['type'] == 'chrooted') { if(substr($job['command'], 0, strlen($this->parent_domain['document_root'])) == $this->parent_domain['document_root']) { @@ -253,26 +255,26 @@ class cron_plugin { } else { $web_root = $this->parent_domain['document_root']; } - + $web_root .= '/web'; $job['command'] = str_replace('[web_root]', $web_root, $job['command']); - $command .= "\t"; - //if($job['type'] != 'chrooted' && substr($job['command'], 0, 1) != "/") $command .= $this->parent_domain['document_root'].'/'; - $command .= $job['command'] . " " . $log_target; + $cron_line .= "\t"; + //if($job['type'] != 'chrooted' && substr($job['command'], 0, 1) != "/") $cron_line .= $this->parent_domain['document_root'].'/'; + $cron_line .= $job['command'] . " " . $log_target; } if($job['type'] == 'chrooted') { - $chr_cron_content .= $command . " #{$job['domain']}\n"; + $chr_cron_content .= $cron_line . " #{$job['domain']}\n"; $chr_cmd_count++; } else { - $cron_content .= $command . " #{$job['domain']}\n"; + $cron_content .= $cron_line . " #{$job['domain']}\n"; $cmd_count++; } } } - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_'.$this->parent_domain["system_user"]); + $cron_file = $cron_config["crontab_dir"].'/ispc_'.$this->parent_domain["system_user"]; //TODO : change this when distribution information has been integrated into server record //* Gentoo vixie-cron requires files to end with .cron in the cron.d directory if (file_exists('/etc/gentoo-release')) { @@ -287,7 +289,7 @@ class cron_plugin { $app->log("Deleted Cron file $cron_file", LOGLEVEL_DEBUG); } - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_chrooted_'.$this->parent_domain["system_user"]); + $cron_file = $cron_config["crontab_dir"].'/ispc_chrooted_'.$this->parent_domain["system_user"]; if($chr_cmd_count > 0) { $app->system->file_put_contents($cron_file, $chr_cron_content); $app->log("Wrote Cron file $cron_file with content:\n$chr_cron_content", LOGLEVEL_DEBUG); diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php index 67ed2379fbbe554b595efceef048c761cbff2667..b924f43a2620a35813aebee9a3bb5a082f99daab 100644 --- a/server/plugins-available/firewall_plugin.inc.php +++ b/server/plugins-available/firewall_plugin.inc.php @@ -145,7 +145,7 @@ class firewall_plugin { //* add tcp ports foreach($tcp_ports_new_array as $port) { if(!in_array($port, $tcp_ports_old_array) && $port > 0) { - exec('ufw allow '.$port.'/tcp'); + $app->system->exec_safe('ufw allow ?', $port.'/tcp'); $app->log('ufw allow '.$port.'/tcp', LOGLEVEL_DEBUG); sleep(1); } @@ -154,7 +154,7 @@ class firewall_plugin { //* remove tcp ports foreach($tcp_ports_old_array as $port) { if(!in_array($port, $tcp_ports_new_array) && $port > 0) { - exec('ufw delete allow '.$port.'/tcp'); + $app->system->exec_safe('ufw delete allow ?', $port.'/tcp'); $app->log('ufw delete allow '.$port.'/tcp', LOGLEVEL_DEBUG); sleep(1); } @@ -163,7 +163,7 @@ class firewall_plugin { //* add udp ports foreach($udp_ports_new_array as $port) { if(!in_array($port, $udp_ports_old_array) && $port > 0) { - exec('ufw allow '.$port.'/udp'); + $app->system->exec_safe('ufw allow ?', $port.'/udp'); $app->log('ufw allow '.$port.'/udp', LOGLEVEL_DEBUG); sleep(1); } @@ -172,32 +172,12 @@ class firewall_plugin { //* remove udp ports foreach($udp_ports_old_array as $port) { if(!in_array($port, $udp_ports_new_array) && $port > 0) { - exec('ufw delete allow '.$port.'/udp'); + $app->system->exec_safe('ufw delete allow ?', $port.'/udp'); $app->log('ufw delete allow '.$port.'/udp', LOGLEVEL_DEBUG); sleep(1); } } - /* - if($tcp_ports_new != $tcp_ports_old) { - exec('ufw allow to any proto tcp port '.$tcp_ports_new); - $app->log('ufw allow to any proto tcp port '.$tcp_ports_new,LOGLEVEL_DEBUG); - if($event_name == 'firewall_update') { - exec('ufw delete allow to any proto tcp port '.$tcp_ports_old); - $app->log('ufw delete allow to any proto tcp port '.$tcp_ports_old,LOGLEVEL_DEBUG); - } - } - - if($udp_ports_new != $udp_ports_old) { - exec('ufw allow to any proto udp port '.$udp_ports_new); - $app->log('ufw allow to any proto udp port '.$udp_ports_new,LOGLEVEL_DEBUG); - if($event_name == 'firewall_update') { - exec('ufw delete allow to any proto udp port '.$udp_ports_old); - $app->log('ufw delete allow to any proto udp port '.$udp_ports_old,LOGLEVEL_DEBUG); - } - } - */ - if($data['new']['active'] == 'y') { if($data['new']['active'] == $data['old']['active']) { exec('ufw reload'); diff --git a/server/plugins-available/ftpuser_base_plugin.inc.php b/server/plugins-available/ftpuser_base_plugin.inc.php index af5870a4bae04662b065666b4aad77ae99db4479..c34371a18121a3b2502036213a28d7810a38140b 100644 --- a/server/plugins-available/ftpuser_base_plugin.inc.php +++ b/server/plugins-available/ftpuser_base_plugin.inc.php @@ -83,8 +83,7 @@ class ftpuser_base_plugin { } $app->system->web_folder_protection($web['document_root'], false); - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); + $app->system->mkdirpath($data['new']['dir'], 0755, $web["system_user"], $web["system_group"]); $app->system->web_folder_protection($web['document_root'], true); $app->log("Added ftpuser_dir: ".$data['new']['dir'], LOGLEVEL_DEBUG); @@ -109,8 +108,7 @@ class ftpuser_base_plugin { } $app->system->web_folder_protection($web['document_root'], false); - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); + $app->system->mkdirpath($data['new']['dir'], 0755, $web["system_user"], $web["system_group"]); $app->system->web_folder_protection($web['document_root'], true); diff --git a/server/plugins-available/getmail_plugin.inc.php b/server/plugins-available/getmail_plugin.inc.php index a4481037f7e4367b3d9e3c90bbb5a850109c7ebe..c3f4f7e1dcd48f210bcf935398f9960cb28fe80f 100644 --- a/server/plugins-available/getmail_plugin.inc.php +++ b/server/plugins-available/getmail_plugin.inc.php @@ -94,7 +94,7 @@ class getmail_plugin { $this->delete($event_name, $data); // Get the new config file path - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$this->_clean_path($data["new"]["source_server"]).'_'.$this->_clean_path($data["new"]["source_username"]).'.conf'); + $config_file_path = $this->getmail_config_dir.'/'.$this->_clean_path($data["new"]["source_server"]).'_'.$this->_clean_path($data["new"]["source_username"]).'.conf'; if(stristr($config_file_path, "..") or stristr($config_file_path, "|") or stristr($config_file_path, ";") or stristr($config_file_path, '$')) { $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.", LOGLEVEL_ERROR); return false; @@ -162,7 +162,7 @@ class getmail_plugin { $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail'); $this->getmail_config_dir = $getmail_config["getmail_config_dir"]; - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$this->_clean_path($data["old"]["source_server"]).'_'.$this->_clean_path($data["old"]["source_username"]).'.conf'); + $config_file_path = $this->getmail_config_dir.'/'.$this->_clean_path($data["old"]["source_server"]).'_'.$this->_clean_path($data["old"]["source_username"]).'.conf'; if(stristr($config_file_path, "..") || stristr($config_file_path, "|") || stristr($config_file_path, ";") || stristr($config_file_path, '$')) { $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.", LOGLEVEL_ERROR); return false; diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 8275696620fbe1612aa78c816f9a9deaf1f11c7d..c584b6821592531b7f6ee3ffa11994bb74097fbb 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -125,23 +125,22 @@ class mail_plugin { $group = $app->system->getgroup($data['new']['gid']); //* Create the mail domain directory, if it does not exist if(!empty($base_path) && !is_dir($base_path)) { - //exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); $app->system->mkdirpath($base_path, 0770, $mail_config['mailuser_name'], $mail_config['mailuser_group']); // needs group-access because users of subfolders may differ from vmail $app->log('Created Directory: '.$base_path, LOGLEVEL_DEBUG); } if ($data['new']['maildir_format'] == 'mdbox') { - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Drafts'"); - - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Drafts'"); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Drafts'", $data["new"]["email"]); + + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Drafts'", $data["new"]["email"]); } else { // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. @@ -150,116 +149,109 @@ class mail_plugin { $app->log('Created Directory: '.$maildomain_path, LOGLEVEL_DEBUG); $maildomain_path .= '/Maildir'; } - + //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); - exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); - $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + $app->system->exec_safe("su -c ? vmail", "mv -f " . $data['new']['maildir']." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.$data['new']['maildir'], LOGLEVEL_WARN); } - + //* Create the maildir, if it doesn not exist, set permissions, set quota. if(!empty($maildomain_path) && !is_dir($maildomain_path)) { - - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); + $app->system->maildirmake($maildomain_path, $user, '', $group); - + //* This is to fix the maildrop quota not being rebuilt after the quota is changed. if($mail_config['pop3_imap_daemon'] != 'dovecot') { - if(is_dir($maildomain_path)) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($maildomain_path)) $app->system->exec_safe("su -c ? ?", "maildirmake -q ".$data['new']['quota']."S ".$maildomain_path, $user); // Avoid maildirmake quota bug, see debian bug #214911 + $app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$maildomain_path."' ".$user, LOGLEVEL_DEBUG); } } - + if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Drafts', $group); } if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Trash', $group); } if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Junk', $group); } - + // Set permissions now recursive - exec('chown -R '.$user.':'.$group.' '.escapeshellcmd($data['new']['maildir'])); - $app->log('Set ownership on '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_DEBUG); - + $app->system->exec_safe('chown -R ?:? ?', $user, $group, $data['new']['maildir']); + $app->log('Set ownership on '.$data['new']['maildir'], LOGLEVEL_DEBUG); + //* Set the maildir quota if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { if($data['new']['quota'] > 0) { - if(is_dir($data['new']['maildir'])) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user); - $app->log('Set Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($data['new']['maildir'])) $app->system->exec_safe("su -c ? ? ", "maildirmake -q ".$data['new']['quota']."S ". $data['new']['maildir'], $user); + $app->log('Set Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$data['new']['maildir']."' ".$user, LOGLEVEL_DEBUG); } } } - //* Send the welcome email message - $tmp = explode('@', $data["new"]["email"]); - $domain = $tmp[1]; - unset($tmp); - $html = false; - if(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html'); - $html = true; - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html'); - $html = true; - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt'); - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt'); - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt'); - } elseif(file_exists($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt'); - } else { - $lines = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); - } - - //* Get from address - $parts = explode(':', trim($lines[0])); - unset($parts[0]); - $welcome_mail_from = implode(':', $parts); - unset($lines[0]); - - //* Get subject - $parts = explode(':', trim($lines[1])); - unset($parts[0]); - $welcome_mail_subject = implode(':', $parts); - unset($lines[1]); - - //* Get message - $welcome_mail_message = trim(implode($lines)); - unset($tmp); - - $mailHeaders = "MIME-Version: 1.0" . "\n"; - if($html) { - $mailHeaders .= "Content-Type: text/html; charset=utf-8" . "\n"; - $mailHeaders .= "Content-Transfer-Encoding: quoted-printable" . "\n"; - } else { - $mailHeaders .= "Content-Type: text/plain; charset=utf-8" . "\n"; - $mailHeaders .= "Content-Transfer-Encoding: 8bit" . "\n"; - } - $mailHeaders .= "From: $welcome_mail_from" . "\n"; - $mailHeaders .= "Reply-To: $welcome_mail_from" . "\n"; - $mailTarget = $data["new"]["email"]; - $mailSubject = "=?utf-8?B?".base64_encode($welcome_mail_subject)."?="; + $global_config = $app->getconf->get_global_config('mail'); + if($global_config['enable_welcome_mail'] == 'y') { + //* Send the welcome email message + $tmp = explode('@', $data["new"]["email"]); + $domain = $tmp[1]; + unset($tmp); + $html = false; + if(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html'); + $html = true; + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html'); + $html = true; + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt'); + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt'); + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt'); + } elseif(file_exists($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt'); + } else { + $lines = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); + } - //* Send the welcome email only on the "master" mail server to avoid duplicate emails - if($conf['mirror_server_id'] == 0) mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders); + //* Get from address + $parts = explode(':', trim($lines[0])); + unset($parts[0]); + $welcome_mail_from = implode(':', $parts); + unset($lines[0]); + + //* Get subject + $parts = explode(':', trim($lines[1])); + unset($parts[0]); + $welcome_mail_subject = implode(':', $parts); + unset($lines[1]); + + //* Get message + $welcome_mail_message = trim(implode($lines)); + unset($tmp); + + $mailHeaders = "MIME-Version: 1.0" . "\n"; + if($html) { + $mailHeaders .= "Content-Type: text/html; charset=utf-8" . "\n"; + $mailHeaders .= "Content-Transfer-Encoding: quoted-printable" . "\n"; + } else { + $mailHeaders .= "Content-Type: text/plain; charset=utf-8" . "\n"; + $mailHeaders .= "Content-Transfer-Encoding: 8bit" . "\n"; + } + $mailHeaders .= "From: $welcome_mail_from" . "\n"; + $mailHeaders .= "Reply-To: $welcome_mail_from" . "\n"; + $mailTarget = $data["new"]["email"]; + $mailSubject = "=?utf-8?B?".base64_encode($welcome_mail_subject)."?="; + //* Send the welcome email only on the "master" mail server to avoid duplicate emails + if($conf['mirror_server_id'] == 0) mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders); + } } function user_update($event_name, $data) { @@ -269,22 +261,9 @@ class mail_plugin { $app->uses('getconf,system'); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - // convert to lower case - it could cause problems if some directory above has upper case name - // $data['new']['maildir'] = strtolower($data['new']['maildir']); - - // Create the maildir, if it does not exist - /* - if(!is_dir($data['new']['maildir'])) { - mkdir(escapeshellcmd($data['new']['maildir']), 0, true); - chown(escapeshellcmd($data['new']['maildir']), $mail_config['mailuser_name']); - chgrp(escapeshellcmd($data['new']['maildir']), $mail_config['mailuser_group']); - $app->log('Created Maildir: '.$data['new']['maildir'],LOGLEVEL_DEBUG); - } - */ - // Maildir-Format must not be changed on this way !! $data['new']['maildir_format'] = $data['old']['maildir_format']; - + $maildomain_path = $data['new']['maildir']; $tmp_basepath = $data['new']['maildir']; $tmp_basepath_parts = explode('/', $tmp_basepath); @@ -324,7 +303,6 @@ class mail_plugin { //* Create the mail domain directory, if it does not exist if(!empty($base_path) && !is_dir($base_path)) { - //exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); $app->system->mkdirpath($base_path, 0770, $mail_config['mailuser_name'], $mail_config['mailuser_group']); // needs group-access because users of subfolders may differ from vmail $app->log('Created Directory: '.$base_path, LOGLEVEL_DEBUG); } @@ -333,29 +311,26 @@ class mail_plugin { // Move mailbox, if domain has changed and delete old mailbox if($data['new']['maildir'] != $data['old']['maildir'] && is_dir($data['old']['maildir'])) { if(is_dir($data['new']['maildir'])) { - exec("rm -fr ".escapeshellcmd($data['new']['maildir'])); + $app->system->exec_safe("rm -fr ?", $data['new']['maildir']); //rmdir($data['new']['maildir']); } - exec('mv -f '.escapeshellcmd($data['old']['maildir']).' '.escapeshellcmd($data['new']['maildir'])); - // exec('mv -f '.escapeshellcmd($data['old']['maildir']).'/* '.escapeshellcmd($data['new']['maildir'])); - // if(is_file($data['old']['maildir'].'.ispconfig_mailsize'))exec('mv -f '.escapeshellcmd($data['old']['maildir']).'.ispconfig_mailsize '.escapeshellcmd($data['new']['maildir'])); - // rmdir($data['old']['maildir']); + $app->system->exec_safe('mv -f ? ?'. $data['old']['maildir'], $data['new']['maildir']); $app->log('Moved Maildir from: '.$data['old']['maildir'].' to '.$data['new']['maildir'], LOGLEVEL_DEBUG); } - + //* Create the maildir, if it doesn not exist, set permissions, set quota. if(!is_dir($data['new']['maildir'].'/mdbox')) { - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Drafts'"); - - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Drafts'"); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Drafts'", $data["new"]["email"]); + + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Drafts'", $data["new"]["email"]); } } else { @@ -365,75 +340,61 @@ class mail_plugin { $app->log('Created Directory: '.$base_path, LOGLEVEL_DEBUG); $maildomain_path .= '/Maildir'; } - + //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); - exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); - $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + $app->system->exec_safe("su -c ? ?", "mv -f ".$data['new']['maildir']." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 'vmail'); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.$data['new']['maildir'], LOGLEVEL_WARN); } - + //* Create the maildir, if it doesn not exist, set permissions, set quota. if(!empty($maildomain_path) && !is_dir($maildomain_path.'/new')) { - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log("Created Maildir "."su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, '', $group); - + //* This is to fix the maildrop quota not being rebuilt after the quota is changed. if($mail_config['pop3_imap_daemon'] != 'dovecot') { if($data['new']['quota'] > 0) { - if(is_dir($maildomain_path)) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($maildomain_path)) $app->system->exec_safe("su -c ? ?", "maildirmake -q ".$data['new']['quota']."S ".$maildomain_path, $user); // Avoid maildirmake quota bug, see debian bug #214911 + $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$maildomain_path."' ".$user, LOGLEVEL_DEBUG); } else { if(file_exists($data['new']['maildir'].'/maildirsize')) unlink($data['new']['maildir'].'/maildirsize'); $app->log('Set Maildir quota to unlimited.', LOGLEVEL_DEBUG); } } } - + if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Drafts', $group); } if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Trash', $group); } if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Junk', $group); } - + // Set permissions now recursive - exec('chown -R '.$user.':'.$group.' '.escapeshellcmd($data['new']['maildir'])); - $app->log('Set ownership on '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_DEBUG); - + $app->system->exec_safe('chown -R ?:? ?', $user, $group, $data['new']['maildir']); + $app->log('Set ownership on '.$data['new']['maildir'], LOGLEVEL_DEBUG); + // Move mailbox, if domain has changed and delete old mailbox if($data['new']['maildir'] != $data['old']['maildir'] && is_dir($data['old']['maildir'])) { if(is_dir($data['new']['maildir'])) { - exec("rm -fr ".escapeshellcmd($data['new']['maildir'])); - //rmdir($data['new']['maildir']); + $app->system->exec_safe("rm -fr ?", $data['new']['maildir']); } - exec('mv -f '.escapeshellcmd($data['old']['maildir']).' '.escapeshellcmd($data['new']['maildir'])); - // exec('mv -f '.escapeshellcmd($data['old']['maildir']).'/* '.escapeshellcmd($data['new']['maildir'])); - // if(is_file($data['old']['maildir'].'.ispconfig_mailsize'))exec('mv -f '.escapeshellcmd($data['old']['maildir']).'.ispconfig_mailsize '.escapeshellcmd($data['new']['maildir'])); - // rmdir($data['old']['maildir']); + $app->system->exec_safe('mv -f ? ?', $data['old']['maildir'], $data['new']['maildir']); $app->log('Moved Maildir from: '.$data['old']['maildir'].' to '.$data['new']['maildir'], LOGLEVEL_DEBUG); } //This is to fix the maildrop quota not being rebuilt after the quota is changed. // Courier Layout if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { if($data['new']['quota'] > 0) { - if(is_dir($data['new']['maildir'])) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user); - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($data['new']['maildir'])) $app->system->exec_safe("su -c ? ?", "maildirmake -q ".$data['new']['quota']."S ".$data['new']['maildir'], $user); + $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$data['new']['maildir']."' ".$user, LOGLEVEL_DEBUG); } else { if(file_exists($data['new']['maildir'].'/maildirsize')) unlink($data['new']['maildir'].'/maildirsize'); $app->log('Set Maildir quota to unlimited.', LOGLEVEL_DEBUG); @@ -450,9 +411,9 @@ class mail_plugin { $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); $maildir_path_deleted = false; - $old_maildir_path = escapeshellcmd($data['old']['maildir']); + $old_maildir_path = $data['old']['maildir']; if($old_maildir_path != $mail_config['homedir_path'] && strlen($old_maildir_path) > strlen($mail_config['homedir_path']) && !stristr($old_maildir_path, '//') && !stristr($old_maildir_path, '..') && !stristr($old_maildir_path, '*') && strlen($old_maildir_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildir_path)); + $app->system->exec_safe('rm -rf ?', $old_maildir_path); $app->log('Deleted the Maildir: '.$data['old']['maildir'], LOGLEVEL_DEBUG); $maildir_path_deleted = true; } else { @@ -474,7 +435,7 @@ class mail_plugin { if (is_array($domain_rec)) { $mail_backup_dir = $backup_dir.'/mail'.$domain_rec['domain_id']; $mail_backup_files = 'mail'.$data['old']['mailuser_id']; - exec(escapeshellcmd('rm -f '.$mail_backup_dir.'/'.$mail_backup_files).'*'); + $app->system->exec_safe('rm -f ?*', $mail_backup_dir.'/'.$mail_backup_files); //* cleanup database $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND mailuser_id = ?"; $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $data['old']['mailuser_id']); @@ -494,9 +455,9 @@ class mail_plugin { $maildomain_path_deleted = false; //* Delete maildomain path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/'.$data['old']['domain']); + $old_maildomain_path = $mail_config['homedir_path'].'/'.$data['old']['domain']; if($old_maildomain_path != $mail_config['homedir_path'] && !stristr($old_maildomain_path, '//') && !stristr($old_maildomain_path, '..') && !stristr($old_maildomain_path, '*') && !stristr($old_maildomain_path, '&') && strlen($old_maildomain_path) >= 10 && !empty($data['old']['domain'])) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); + $app->system->exec_safe('rm -rf ?', $old_maildomain_path); $app->log('Deleted the mail domain directory: '.$old_maildomain_path, LOGLEVEL_DEBUG); $maildomain_path_deleted = true; } else { @@ -504,14 +465,14 @@ class mail_plugin { } //* Delete mailfilter path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']); + $old_maildomain_path = $mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']; if($old_maildomain_path != $mail_config['homedir_path'].'/mailfilters/' && !stristr($old_maildomain_path, '//') && !stristr($old_maildomain_path, '..') && !stristr($old_maildomain_path, '*') && !stristr($old_maildomain_path, '&') && strlen($old_maildomain_path) >= 10 && !empty($data['old']['domain'])) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); + $app->system->exec_safe('rm -rf ?', $old_maildomain_path); $app->log('Deleted the mail domain mailfilter directory: '.$old_maildomain_path, LOGLEVEL_DEBUG); } else { $app->log('Possible security violation when deleting the mail domain mailfilter directory: '.$old_maildomain_path, LOGLEVEL_ERROR); } - + //* Delete the mail-backups $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); $backup_dir = $server_config['backup_dir']; @@ -521,7 +482,7 @@ class mail_plugin { if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($backup_dir) ) $mount_backup = false; if($mount_backup){ $mail_backup_dir = $backup_dir.'/mail'.$data['old']['domain_id']; - exec(escapeshellcmd('rm -rf '.$mail_backup_dir)); + $app->system->exec_safe('rm -rf ?', $mail_backup_dir); //* cleanup database $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ?"; $app->db->query($sql, $conf['server_id'], $data['old']['domain_id']); diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 6f042e9070c0a53be51d99e7f7029a3558e5e332..b937f82275192fbcef06f19e2e9f14eebb79a240 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -29,6 +29,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @author Florian Schaal, info@schaal-24.de + @author Marius Burkard, m.burkard@ispconfig.org (modified for rspamd) @copyright Florian Schaal, info@schaal-24.de */ @@ -59,8 +60,8 @@ class mail_plugin_dkim { /** * This function is called when the plugin is loaded */ - function onLoad() { - global $app, $conf; + public function onLoad() { + global $app; /* Register for the events */ @@ -73,7 +74,7 @@ class mail_plugin_dkim { * This function gets the amavisd-config file * @return string path to the amavisd-config for dkim-keys */ - function get_amavis_config() { + private function get_amavis_config() { $pos_config=array( '/etc/amavisd.conf/50-user', '/etc/amavis/conf.d/50-user', @@ -101,42 +102,59 @@ class mail_plugin_dkim { * @param array $data mail-settings * @return boolean - true when the amavis-config and the dkim-dir are writeable */ - function check_system($data) { - global $app, $mail_config; + private function check_system() { + global $app, $conf, $mail_config; $app->uses('getconf'); - $check=true; + $check = true; - /* check for amavis-config */ - $amavis_configfile = $this->get_amavis_config(); - - //* Create the file if it does not exists. - if (substr_compare($amavis_configfile, '60-dkim', -7) === 0 && !file_exists($amavis_configfile)) - $app->system->touch($amavis_configfile); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if($mail_config['content_filter'] != 'rspamd') { + /* check for amavis-config */ + $amavis_configfile = $this->get_amavis_config(); - if ( $amavis_configfile == '' || !is_writeable($amavis_configfile) ) { - $app->log('Amavis-config not found or not writeable.', LOGLEVEL_ERROR); - $check=false; + //* Create the file if it does not exists. + if (substr_compare($amavis_configfile, '60-dkim', -7) === 0 && !file_exists($amavis_configfile)) { + $app->system->touch($amavis_configfile); + } + + if ( $amavis_configfile == '' || !is_writeable($amavis_configfile) ) { + $app->log('Amavis-config not found or not writeable.', LOGLEVEL_ERROR); + $check = false; + } } /* dir for dkim-keys writeable? */ - $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); if (isset($mail_config['dkim_path']) && !empty($mail_config['dkim_path']) && $mail_config['dkim_path'] != '/') { if (!is_dir($mail_config['dkim_path'])) { $app->log('DKIM Path '.$mail_config['dkim_path'].' not found - (re)created.', LOGLEVEL_DEBUG); if($app->system->is_user('amavis')) { $amavis_user='amavis'; + } elseif($app->system->is_user('_rspamd')) { + $amavis_user = '_rspamd'; + } elseif($app->system->is_user('rspamd')) { + $amavis_user = 'rspamd'; } elseif ($app->system->is_user('vscan')) { - $amavis_user='vscan'; + $amavis_user = 'vscan'; + } else { + $amavis_user = ''; } - else { - $amavis_user=''; + if($app->system->is_user('amavis')) { + $amavis_group='amavis'; + } elseif($app->system->is_user('_rspamd')) { + $amavis_group = '_rspamd'; + } elseif($app->system->is_user('rspamd')) { + $amavis_group = 'rspamd'; + } elseif ($app->system->is_user('vscan')) { + $amavis_group = 'vscan'; + } else { + $amavis_group = ''; } + if(!empty($amavis_user)) { - mkdir($mail_config['dkim_path'], 0750, true); - $app->system->chown($mail_config['dkim_path'], $amavis_user); + $app->system->mkdirpath($mail_config['dkim_path'], 0750, $amavis_user, $amavis_group); } else { - mkdir($mail_config['dkim_path'], 0755, true); + $app->system->mkdirpath($mail_config['dkim_path'], 0755); $app->log('No user amavis or vscan found - using root for '.$mail_config['dkim_path'], LOGLEVEL_WARNING); } } else { @@ -166,12 +184,15 @@ class mail_plugin_dkim { /** * This function restarts amavis */ - function restart_amavis() { + private function restart_amavis() { global $app; + $output = null; $initcommand = $app->system->getinitcommand(array('amavis', 'amavisd'), 'restart'); $app->log('Restarting amavis: '.$initcommand.'.', LOGLEVEL_DEBUG); exec($initcommand, $output); - foreach($output as $logline) $app->log($logline, LOGLEVEL_DEBUG); + foreach($output as $logline) { + $app->log($logline, LOGLEVEL_DEBUG); + } } /** @@ -181,8 +202,8 @@ class mail_plugin_dkim { * @param string $key_domain mail-domain * @return bool - true when the private key was written to disk */ - function write_dkim_key($key_file, $key_value, $key_domain) { - global $app, $mailconfig; + private function write_dkim_key($key_file, $key_value, $key_domain) { + global $app; $success=false; if ($key_file == '' || $key_value == '' || $key_domain == '') { $app->log('DKIM internal error for domain '.$key_domain, LOGLEVEL_ERROR); @@ -191,14 +212,21 @@ class mail_plugin_dkim { if ( $app->system->file_put_contents($key_file.'.private', $key_value) ) { $app->log('Saved DKIM Private-key to '.$key_file.'.private', LOGLEVEL_DEBUG); $success=true; + $pubkey = null; + $result = 0; /* now we get the DKIM Public-key */ - exec('cat '.escapeshellarg($key_file.'.private').'|openssl rsa -pubout 2> /dev/null', $pubkey, $result); + $app->system->exec_safe('cat ?|openssl rsa -pubout 2> /dev/null', $key_file.'.private'); + $pubkey = $app->system->last_exec_out(); $public_key=''; - foreach($pubkey as $values) $public_key=$public_key.$values."\n"; + foreach($pubkey as $values) { + $public_key = $public_key . $values . "\n"; + } /* save the DKIM Public-key in dkim-dir */ - if ( $app->system->file_put_contents($key_file.'.public', $public_key) ) + if($app->system->file_put_contents($key_file.'.public', $public_key)) { $app->log('Saved DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); - else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); + } } else { $app->log('Unable to save DKIM Private-key to '.$key_file.'.private', LOGLEVEL_ERROR); } @@ -210,26 +238,32 @@ class mail_plugin_dkim { * @param string $key_file full path to the key-file * @param string $key_domain mail-domain */ - function remove_dkim_key($key_file, $key_domain) { + private function remove_dkim_key($key_file, $key_domain) { global $app; if (file_exists($key_file.'.private')) { $app->system->unlink($key_file.'.private'); $app->log('Deleted the DKIM Private-key for '.$key_domain.'.', LOGLEVEL_DEBUG); - } else $app->log('Unable to delete the DKIM Private-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to delete the DKIM Private-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } if (file_exists($key_file.'.public')) { $app->system->unlink($key_file.'.public'); $app->log('Deleted the DKIM Public-key for '.$key_domain.'.', LOGLEVEL_DEBUG); - } else $app->log('Unable to delete the DKIM Public-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to delete the DKIM Public-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } } /** * This function adds the entry to the amavisd-config * @param string $key_domain mail-domain */ - function add_to_amavis($key_domain, $selector, $old_selector) { + private function add_to_amavis($key_domain, $selector, $old_selector) { global $app, $mail_config; - if (empty($selector)) $selector = 'default'; + if (empty($selector)) { + $selector = 'default'; + } $restart = false; $amavis_configfile = $this->get_amavis_config(); @@ -267,7 +301,7 @@ class mail_plugin_dkim { * This function removes the entry from the amavisd-config * @param string $key_domain mail-domain */ - function remove_from_amavis($key_domain) { + private function remove_from_amavis($key_domain) { global $app; $restart = false; @@ -305,14 +339,20 @@ class mail_plugin_dkim { * This function controlls new key-files and amavisd-entries * @param array $data mail-settings */ - function add_dkim($data) { - global $app; + private function add_dkim($data) { + global $app, $conf; if ($data['new']['active'] == 'y') { $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } if ($this->write_dkim_key($mail_config['dkim_path']."/".$data['new']['domain'], $data['new']['dkim_private'], $data['new']['domain'])) { - if ($this->add_to_amavis($data['new']['domain'], $data['new']['dkim_selector'], $data['old']['dkim_selector'] )) { + if($mail_config['content_filter'] == 'rspamd') { + $app->system->replaceLine('/etc/rspamd/local.d/dkim_domains.map', 'REGEX:/^' . preg_quote($data['new']['domain'], '/') . ' /', $data['new']['domain'] . ' ' . $mail_config['dkim_path']."/".$data['new']['domain'] . '.private'); + $app->system->replaceLine('/etc/rspamd/local.d/dkim_selectors.map', 'REGEX:/^' . preg_quote($data['new']['domain'], '/') . ' /', $data['new']['domain'] . ' ' . $data['new']['dkim_selector']); + + $app->services->restartServiceDelayed('rspamd', 'reload'); + } elseif ($this->add_to_amavis($data['new']['domain'], $data['new']['dkim_selector'], $data['old']['dkim_selector'] )) { $this->restart_amavis(); } else { $this->remove_dkim_key($mail_config['dkim_path']."/".$data['new']['domain'], $data['new']['domain']); @@ -326,86 +366,91 @@ class mail_plugin_dkim { /** * This function controlls the removement of keyfiles (public and private) * and the entry in the amavisd-config - * @param array $data mail-settings + * @param array $_data mail-settings */ - function remove_dkim($_data) { - global $app; + private function remove_dkim($_data) { + global $app, $conf; $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } $this->remove_dkim_key($mail_config['dkim_path']."/".$_data['domain'], $_data['domain']); - if ($this->remove_from_amavis($_data['domain'])) + + if($mail_config['content_filter'] == 'rspamd') { + $app->system->removeLine('/etc/rspamd/local.d/dkim_domains.map', 'REGEX:/^' . preg_quote($_data['domain'], '/') . ' /'); + $app->system->removeLine('/etc/rspamd/local.d/dkim_selectors.map', 'REGEX:/^' . preg_quote($_data['domain'], '/') . ' /'); + $app->services->restartServiceDelayed('rspamd', 'reload'); + } elseif ($this->remove_from_amavis($_data['domain'])) { $this->restart_amavis(); + } } /** * Function called by onLoad * deletes dkim-keys */ - function domain_dkim_delete($event_name, $data) { - if (isset($data['old']['dkim']) && $data['old']['dkim'] == 'y' && $data['old']['active'] == 'y') + public function domain_dkim_delete($event_name, $data) { + if (isset($data['old']['dkim']) && $data['old']['dkim'] == 'y' && $data['old']['active'] == 'y') { $this->remove_dkim($data['old']); + } } /** * Function called by onLoad * insert dkim-keys */ - function domain_dkim_insert($event_name, $data) { - if (isset($data['new']['dkim']) && $data['new']['dkim']=='y' && $this->check_system($data)) + public function domain_dkim_insert($event_name, $data) { + if (isset($data['new']['dkim']) && $data['new']['dkim']=='y' && $this->check_system()) { $this->add_dkim($data); + } } /** * Function called by onLoad * chang dkim-settings */ - function domain_dkim_update($event_name, $data) { + public function domain_dkim_update($event_name, $data) { global $app; if($data['new']['dkim'] == 'y' || $data['old']['dkim'] == 'y'){ - if ($this->check_system($data)) { + if ($this->check_system()) { /* maildomain disabled */ if ($data['new']['active'] == 'n' && $data['old']['active'] == 'y' && $data['new']['dkim']=='y') { $app->log('Maildomain '.$data['new']['domain'].' disabled - remove DKIM-settings', LOGLEVEL_DEBUG); $this->remove_dkim($data['new']); } /* maildomain re-enabled */ - if ($data['new']['active'] == 'y' && $data['old']['active'] == 'n' && $data['new']['dkim']=='y') + if ($data['new']['active'] == 'y' && $data['old']['active'] == 'n' && $data['new']['dkim']=='y') { $this->add_dkim($data); - + } + /* maildomain active - only dkim changes */ if ($data['new']['active'] == 'y' && $data['old']['active'] == 'y') { /* dkim disabled */ if ($data['new']['dkim'] != $data['old']['dkim'] && $data['new']['dkim'] == 'n') { $this->remove_dkim($data['new']); } - /* dkim enabled */ - elseif ($data['new']['dkim'] != $data['old']['dkim'] && $data['new']['dkim'] == 'y') { - $this->add_dkim($data); - } - /* new private-key */ - if ($data['new']['dkim_private'] != $data['old']['dkim_private'] && $data['new']['dkim'] == 'y') { - $this->add_dkim($data); - } - /* new selector */ - if ($data['new']['dkim_selector'] != $data['old']['dkim_selector'] && $data['new']['dkim'] == 'y') { + /* dkim enabled + * or new private-key + * or new selector + * or new domain-name + */ + elseif ( + ($data['new']['dkim'] != $data['old']['dkim'] && $data['new']['dkim'] == 'y') + || ($data['new']['dkim_private'] != $data['old']['dkim_private'] && $data['new']['dkim'] == 'y') + || ($data['new']['dkim_selector'] != $data['old']['dkim_selector'] && $data['new']['dkim'] == 'y') + || ($data['new']['domain'] != $data['old']['domain']) + ) { + if ($data['new']['domain'] != $data['old']['domain']) { + $this->remove_dkim($data['old']); + } $this->add_dkim($data); } - /* new domain-name */ - if ($data['new']['domain'] != $data['old']['domain']) { - $this->remove_dkim($data['old']); + /* resync */ + elseif($data['new'] == $data['old'] && $data['new']['dkim']=='y') { $this->add_dkim($data); } } - - /* resync */ - if ($data['new']['active'] == 'y' && $data['new'] == $data['old'] && $data['new']['dkim']=='y') { - $this->add_dkim($data); - } } } } - } - -?> diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index 2c16601f5024d8d74242b4fb25b29f43e13b918c..130d0a7f187ccfe6baea029754e0501c5cbfc589 100644 --- a/server/plugins-available/maildeliver_plugin.inc.php +++ b/server/plugins-available/maildeliver_plugin.inc.php @@ -98,142 +98,142 @@ class maildeliver_plugin { $app->log("Mailfilter config has been changed", LOGLEVEL_DEBUG); $sieve_file = $data["new"]["maildir"].'/.sieve'; - $sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve'; - if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); - if(is_file($sieve_file_isp)) unlink($sieve_file_isp) or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN); + $sieve_file_svbin = $data["new"]["maildir"].'/.sieve.svbin'; + $old_sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve'; + $sieve_file_isp_before = $data["new"]["maildir"].'/.ispconfig-before.sieve'; + $sieve_file_isp_before_svbin = $data["new"]["maildir"].'/.ispconfig-before.svbin'; + $sieve_file_isp_after = $data["new"]["maildir"].'/.ispconfig.sieve'; + $sieve_file_isp_after_svbin = $data["new"]["maildir"].'/.ispconfig.svbin'; + + if(is_file($old_sieve_file_isp)) unlink($old_sieve_file_isp) or $app->log("Unable to delete file: $old_sieve_file_isp", LOGLEVEL_WARN); + // cleanup .sieve file if it is now a broken link + if(is_link($sieve_file) && !file_exists($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); + if(is_file($sieve_file_svbin)) unlink($sieve_file_svbin) or $app->log("Unable to delete file: $sieve_file_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before)) unlink($sieve_file_isp_before) or $app->log("Unable to delete file: $sieve_file_isp_before", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before_svbin)) unlink($sieve_file_isp_before_svbin) or $app->log("Unable to delete file: $sieve_file_isp_before_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after)) unlink($sieve_file_isp_after) or $app->log("Unable to delete file: $sieve_file_isp_after", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after_svbin)) unlink($sieve_file_isp_after_svbin) or $app->log("Unable to delete file: $sieve_file_isp_after_svbin", LOGLEVEL_WARN); $app->load('tpl'); - //* Select sieve filter file for dovecot version - exec('dovecot --version', $tmp); - if(substr($tmp[0], 0, 3) == '1.0') { - $filter_file_template = "sieve_filter.master"; - } elseif(substr($tmp[0], 0, 3) == '1.2') { - $filter_file_template = "sieve_filter_1.2.master"; - } elseif(substr($tmp[0], 0, 1) == '2') { - $filter_file_template = "sieve_filter_1.2.master"; - } else { - $filter_file_template = "sieve_filter.master"; - } - unset($tmp); - - //* Create new filter file based on template - $tpl = new tpl(); - $tpl->newTemplate($filter_file_template); + foreach ( array('before', 'after') as $sieve_script ) { + //* Create new filter file based on template + $tpl = new tpl(); + $tpl->newTemplate("sieve_filter.master"); - // cc Field - $tmp_mails_arr = explode(',',$data["new"]["cc"]); - $tmp_addresses_arr = array(); - foreach($tmp_mails_arr as $address) { - if(trim($address) != '') $tmp_addresses_arr[] = array('address' => trim($address)); - } + // cc Field + $tmp_mails_arr = explode(',',$data["new"]["cc"]); + $tmp_addresses_arr = array(); + foreach($tmp_mails_arr as $address) { + if(trim($address) != '') $tmp_addresses_arr[] = array('address' => trim($address)); + } - $tpl->setVar('cc', $data["new"]["cc"]); - $tpl->setLoop('ccloop', $tmp_addresses_arr); - - // Custom filters - if($data["new"]["custom_mailfilter"] == 'NULL') $data["new"]["custom_mailfilter"] = ''; - $tpl->setVar('custom_mailfilter', str_replace("\r\n","\n",$data["new"]["custom_mailfilter"])); - - // Move junk - $tpl->setVar('move_junk', $data["new"]["move_junk"]); - - // Check autoresponder dates - if((!$data['new']['autoresponder_start_date'] || $data["new"]["autoresponder_start_date"] == '0000-00-00 00:00:00') && (!$data['new']['autoresponder_end_date'] || $data["new"]["autoresponder_end_date"] == '0000-00-00 00:00:00')) { - $tpl->setVar('autoresponder_date_limit', 0); - } else { - $tpl->setVar('autoresponder_date_limit', 1); - } - - - // Set autoresponder start date - $data["new"]["autoresponder_start_date"] = str_replace(" ", "T", $data["new"]["autoresponder_start_date"]); - $tpl->setVar('start_date', $data["new"]["autoresponder_start_date"]); - - // Set autoresponder end date - $data["new"]["autoresponder_end_date"] = str_replace(" ", "T", $data["new"]["autoresponder_end_date"]); - $tpl->setVar('end_date', $data["new"]["autoresponder_end_date"]); - - // Autoresponder - $tpl->setVar('autoresponder', $data["new"]["autoresponder"]); - - // Autoresponder Subject - $data["new"]["autoresponder_subject"] = str_replace("\"", "'", $data["new"]["autoresponder_subject"]); - $tpl->setVar('autoresponder_subject', $data["new"]["autoresponder_subject"]); - - // Autoresponder Text - $data["new"]["autoresponder_text"] = str_replace("\"", "'", $data["new"]["autoresponder_text"]); - $tpl->setVar('autoresponder_text', $data["new"]["autoresponder_text"]); + $tpl->setVar('cc', $data["new"]["cc"]); + $tpl->setLoop('ccloop', $tmp_addresses_arr); + + // Custom filters + if($data["new"]["custom_mailfilter"] == 'NULL') $data["new"]["custom_mailfilter"] = ''; + $tpl->setVar('custom_mailfilter', str_replace("\r\n","\n",$data["new"]["custom_mailfilter"])); + + // Move junk + $tpl->setVar('move_junk', $data["new"]["move_junk"]); + + // Set autoresponder start date + $data["new"]["autoresponder_start_date"] = str_replace(" ", "T", $data["new"]["autoresponder_start_date"]); + $tpl->setVar('start_date', $data["new"]["autoresponder_start_date"]); + + // Set autoresponder end date + $data["new"]["autoresponder_end_date"] = str_replace(" ", "T", $data["new"]["autoresponder_end_date"]); + $tpl->setVar('end_date', $data["new"]["autoresponder_end_date"]); + + // Autoresponder + $tpl->setVar('autoresponder', $data["new"]["autoresponder"]); + + // Autoresponder Subject + $data["new"]["autoresponder_subject"] = str_replace("\"", "'", $data["new"]["autoresponder_subject"]); + $tpl->setVar('autoresponder_subject', $data["new"]["autoresponder_subject"]); + + // Autoresponder Text + $data["new"]["autoresponder_text"] = str_replace("\"", "'", $data["new"]["autoresponder_text"]); + $tpl->setVar('autoresponder_text', $data["new"]["autoresponder_text"]); + + if (! defined($address_str)) { + //* Set alias addresses for autoresponder + $sql = "SELECT * FROM mail_forwarding WHERE type = 'alias' AND destination = ?"; + $records = $app->db->queryAllRecords($sql, $data["new"]["email"]); + + $addresses = array(); + $addresses[] = $data["new"]["email"]; + if(is_array($records) && count($records) > 0) { + foreach($records as $rec) { + $addresses[] = $rec['source']; + } + } - //* Set alias addresses for autoresponder - $sql = "SELECT * FROM mail_forwarding WHERE type = 'alias' AND destination = ?"; - $records = $app->db->queryAllRecords($sql, $data["new"]["email"]); + $app->log("Found " . count($addresses) . " addresses.", LOGLEVEL_DEBUG); + + $alias_addresses = array(); + + $email_parts = explode('@', $data["new"]["email"]); + $sql = "SELECT * FROM mail_forwarding WHERE type = 'aliasdomain' AND destination = ?"; + $records = $app->db->queryAllRecords($sql, '@'.$email_parts[1]); + if(is_array($records) && count($records) > 0) { + $app->log("Found " . count($records) . " records (aliasdomains).", LOGLEVEL_DEBUG); + foreach($records as $rec) { + $aliasdomain = substr($rec['source'], 1); + foreach($addresses as $email) { + $email_parts = explode('@', $email); + $alias_addresses[] = $email_parts[0].'@'.$aliasdomain; + } + } + } - $addresses = array(); - $addresses[] = $data["new"]["email"]; - if(is_array($records) && count($records) > 0) { - foreach($records as $rec) { - $addresses[] = $rec['source']; - } - } + $app->log("Found " . count($addresses) . " addresses at all.", LOGLEVEL_DEBUG); - $app->log("Found " . count($addresses) . " addresses.", LOGLEVEL_DEBUG); + $addresses = array_unique(array_merge($addresses, $alias_addresses)); - $alias_addresses = array(); + $app->log("Found " . count($addresses) . " unique addresses at all.", LOGLEVEL_DEBUG); - $email_parts = explode('@', $data["new"]["email"]); - $sql = "SELECT * FROM mail_forwarding WHERE type = 'aliasdomain' AND destination = ?"; - $records = $app->db->queryAllRecords($sql, '@'.$email_parts[1]); - if(is_array($records) && count($records) > 0) { - $app->log("Found " . count($records) . " records (aliasdomains).", LOGLEVEL_DEBUG); - foreach($records as $rec) { - $aliasdomain = substr($rec['source'], 1); - foreach($addresses as $email) { - $email_parts = explode('@', $email); - $alias_addresses[] = $email_parts[0].'@'.$aliasdomain; + $address_str = ''; + if(is_array($addresses) && count($addresses) > 0) { + $address_str .= ':addresses ['; + foreach($addresses as $rec) { + $address_str .= '"'.$rec.'",'; + } + $address_str = substr($address_str, 0, -1); + $address_str .= ']'; } } - } - - $app->log("Found " . count($addresses) . " addresses at all.", LOGLEVEL_DEBUG); - $addresses = array_unique(array_merge($addresses, $alias_addresses)); + $tpl->setVar('addresses', $address_str); - $app->log("Found " . count($addresses) . " unique addresses at all.", LOGLEVEL_DEBUG); + if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) { + $app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + } - $address_str = ''; - if(is_array($addresses) && count($addresses) > 0) { - $address_str .= ':addresses ['; - foreach($addresses as $rec) { - $address_str .= '"'.$rec.'",'; + $tpl->setVar('sieve_script', $sieve_script); + if ($sieve_script == 'before') { + $sieve_file_isp = $sieve_file_isp_before; + $sieve_file_isp_svbin = $sieve_file_isp_before_svbin; + } elseif ($sieve_script == 'after') { + $sieve_file_isp = $sieve_file_isp_after; + $sieve_file_isp_svbin = $sieve_file_isp_after_svbin; } - $address_str = substr($address_str, 0, -1); - $address_str .= ']'; - } + file_put_contents($sieve_file_isp, $tpl->grab()) or $app->log("Unable to write sieve filter file " . $sieve_file_isp, LOGLEVEL_WARN); + if ( is_file($sieve_file_isp) ) { + $app->system->chown($sieve_file_isp,$mail_config['mailuser_name'],false); + $app->system->chgrp($sieve_file_isp,$mail_config['mailuser_group'],false); - $tpl->setVar('addresses', $address_str); + $app->system->exec_safe("sievec ?", "$sieve_file_isp"); + if ( is_file($sieve_file_isp_svbin) ) { + $app->system->chown($sieve_file_isp_svbin,$mail_config['mailuser_name'],false); + $app->system->chgrp($sieve_file_isp_svbin,$mail_config['mailuser_group'],false); + } + } - if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) { - $app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); - } + unset($tpl); - file_put_contents($sieve_file_isp, $tpl->grab()) or $app->log("Unable to write sieve filter file", LOGLEVEL_WARN); - if ( is_file($sieve_file_isp) ) { - $app->system->chown($sieve_file_isp,$mail_config['mailuser_name'],false); - $app->system->chgrp($sieve_file_isp,$mail_config['mailuser_group'],false); } - chdir($data["new"]["maildir"]); - //* create symlink to activate sieve script - symlink("sieve/ispconfig.sieve", ".sieve") or $app->log("Unable to create symlink to active sieve filter", LOGLEVEL_WARN); - if (is_link(".sieve")) { - $app->system->chown(".sieve",$mail_config['mailuser_name'],true); - $app->system->chgrp(".sieve",$mail_config['mailuser_group'],true); - } - $app->system->chown($sieve_file,$mail_config['mailuser_name'],true); - $app->system->chgrp($sieve_file,$mail_config['mailuser_group'],true); - - unset($tpl); - } } @@ -241,9 +241,21 @@ class maildeliver_plugin { global $app, $conf; $sieve_file = $data["old"]["maildir"].'/.sieve'; - $sieve_file_isp = $data["old"]["maildir"].'/sieve/ispconfig.sieve'; - if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); - if(is_file($sieve_file_isp)) unlink($sieve_file_isp) or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN); + $sieve_file_svbin = $data["old"]["maildir"].'/.sieve.svbin'; + $old_sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve'; + $sieve_file_isp_before = $data["old"]["maildir"].'/.ispconfig-before.sieve'; + $sieve_file_isp_before_svbin = $data["old"]["maildir"].'/.ispconfig-before.svbin'; + $sieve_file_isp_after = $data["old"]["maildir"].'/.ispconfig.sieve'; + $sieve_file_isp_after_svbin = $data["old"]["maildir"].'/.ispconfig.svbin'; + + if(is_file($old_sieve_file_isp)) unlink($old_sieve_file_isp) or $app->log("Unable to delete file: $old_sieve_file_isp", LOGLEVEL_WARN); + // cleanup .sieve file if it is now a broken link + if(is_link($sieve_file) && !file_exists($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); + if(is_file($sieve_file_svbin)) unlink($sieve_file_svbin) or $app->log("Unable to delete file: $sieve_file_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before)) unlink($sieve_file_isp_before) or $app->log("Unable to delete file: $sieve_file_isp_before", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before_svbin)) unlink($sieve_file_isp_before_svbin) or $app->log("Unable to delete file: $sieve_file_isp_before_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after)) unlink($sieve_file_isp_after) or $app->log("Unable to delete file: $sieve_file_isp_after", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after_svbin)) unlink($sieve_file_isp_after_svbin) or $app->log("Unable to delete file: $sieve_file_isp_after_svbin", LOGLEVEL_WARN); } diff --git a/server/plugins-available/maildrop_plugin.inc.php b/server/plugins-available/maildrop_plugin.inc.php index 2fefa26cfc95cfc697dc456278f136258543628b..00777a1662e7c9a7dea5deddbf70ee6ac563a1a6 100644 --- a/server/plugins-available/maildrop_plugin.inc.php +++ b/server/plugins-available/maildrop_plugin.inc.php @@ -146,9 +146,12 @@ class maildrop_plugin { if ($data['new']['autoresponder_start_date'] && $data["new"]["autoresponder_start_date"] != '0000-00-00 00:00:00') { // Dates have been set $tpl = str_replace('{start_date}', strtotime($data["new"]["autoresponder_start_date"]), $tpl); - $tpl = str_replace('{end_date}', strtotime($data["new"]["autoresponder_end_date"]), $tpl); } else { $tpl = str_replace('{start_date}', -7200, $tpl); + } + if ($data['new']['autoresponder_end_date'] && $data["new"]["autoresponder_end_date"] != '0000-00-00 00:00:00') { // Dates have been set + $tpl = str_replace('{end_date}', strtotime($data["new"]["autoresponder_end_date"]), $tpl); + } else { $tpl = str_replace('{end_date}', 2147464800, $tpl); } @@ -204,7 +207,7 @@ class maildrop_plugin { $app->log("Added CC address ".$data["new"]["cc"].' to mailfilter file.', LOGLEVEL_DEBUG); } - if($data["new"]["move_junk"] == 'y') { + if($data["new"]["move_junk"] != 'n') { if(file_exists($conf["rootpath"].'/conf-custom/mailfilter_move_junk.master')) { $mailfilter_content .= file_get_contents($conf["rootpath"].'/conf-custom/mailfilter_move_junk.master')."\n"; } else { diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php index 99ac9db7d23d8add4c1a0f5d94f447c265e282b9..da033b80ccfc846e9f82a7f54e97ea99393408d7 100644 --- a/server/plugins-available/mailman_plugin.inc.php +++ b/server/plugins-available/mailman_plugin.inc.php @@ -71,9 +71,12 @@ class mailman_plugin { function insert($event_name, $data) { global $app, $conf; + $global_config = $app->getconf->get_global_config('mail'); + $opt_quiet = ($global_config['enable_welcome_mail'] == 'n') ? "-q" : ""; + $this->update_config(); - $pid = exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 & echo $!;"); + $pid = $app->system->exec_safe("nohup /usr/lib/mailman/bin/newlist ? -u ? -e ? ? ? ? >/dev/null 2>&1 & echo $!;", $opt_quiet, $data["new"]["domain"], $data["new"]["domain"], $data["new"]["listname"], $data["new"]["email"], $data["new"]["password"]); // wait for /usr/lib/mailman/bin/newlist-call $running = true; do { @@ -87,11 +90,11 @@ class mailman_plugin { } if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); - + exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); - + // Fix list URL - exec('/usr/sbin/withlist -l -r fix_url '.escapeshellcmd($data["new"]["listname"])); + $app->system->exec_safe('/usr/sbin/withlist -l -r fix_url ?', $data["new"]["listname"]); $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ?", $data["new"]['mailinglist_id']); @@ -100,15 +103,15 @@ class mailman_plugin { // The purpose of this plugin is to rewrite the main.cf file function update($event_name, $data) { global $app, $conf; - + $this->update_config(); if($data["new"]["password"] != $data["old"]["password"] && $data["new"]["password"] != '') { - exec("nohup /usr/lib/mailman/bin/change_pw -l ".escapeshellcmd($data["new"]["listname"])." -p ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &"); + $app->system->exec_safe("nohup /usr/lib/mailman/bin/change_pw -l ? -p ? >/dev/null 2>&1 &", $data["new"]["listname"], $data["new"]["password"]); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ?", $data["new"]['mailinglist_id']); } - + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); } @@ -118,10 +121,10 @@ class mailman_plugin { $this->update_config(); - exec("nohup /usr/lib/mailman/bin/rmlist -a ".escapeshellcmd($data["old"]["listname"])." >/dev/null 2>&1 &"); + $app->system->exec_safe("nohup /usr/lib/mailman/bin/rmlist -a ? >/dev/null 2>&1 &", $data["old"]["listname"]); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); - + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index efe7142c8d68e953942839652b98cb90d5665a92..72f602f9dae2e7ac46da32d4aaf72803e9c979b6 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -108,9 +108,9 @@ class mysql_clientdb_plugin { $result->free(); } } - + $app->log("Calling $action for $database_name with access $user_access_mode and hosts " . implode(', ', $host_list), LOGLEVEL_DEBUG); - + // loop through hostlist foreach($host_list as $db_host) { $db_host = trim($db_host); @@ -137,22 +137,24 @@ class mysql_clientdb_plugin { $app->log("Invalid host " . $db_host . " for GRANT to " . $database_name, LOGLEVEL_DEBUG); continue; } - + $grants = 'ALL PRIVILEGES'; if($user_access_mode == 'r') $grants = 'SELECT'; elseif($user_access_mode == 'rd') $grants = 'SELECT, DELETE, ALTER, DROP'; - + + $database_name = str_replace('_', '\\_', $link->escape_string($database_name)); + if($action == 'GRANT') { if($user_access_mode == 'r' || $user_access_mode == 'rd') { - if(!$link->query("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; - $app->log("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host' success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); + if(!$link->query("REVOKE ALL PRIVILEGES ON `".$database_name."`.* FROM '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; + $app->log("REVOKE ALL PRIVILEGES ON `".$database_name."`.* FROM '".$link->escape_string($database_user)."'@'$db_host' success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); $success = true; } - - if(!$link->query("GRANT " . $grants . " ON `".$link->escape_string($database_name)."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."'")) $success = false; - $app->log("GRANT " . $grants . " ON `".$link->escape_string($database_name)."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."' success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); + + if(!$link->query("GRANT " . $grants . " ON `".$database_name."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."'")) $success = false; + $app->log("GRANT " . $grants . " ON `".$database_name."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."' success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); } elseif($action == 'REVOKE') { - if(!$link->query("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; + if(!$link->query("REVOKE ALL PRIVILEGES ON `".$database_name."`.* FROM '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; } elseif($action == 'DROP') { if(!$link->query("DROP USER '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; } elseif($action == 'RENAME') { @@ -293,7 +295,7 @@ class mysql_clientdb_plugin { $app->log('Unable to connect to the database: '.$link->connect_error, LOGLEVEL_ERROR); return; } - + // check if the database exists if($data['new']['database_name'] == $data['old']['database_name']) { $result = $link->query("SHOW DATABASES LIKE '".$link->escape_string($data['new']['database_name'])."'"); @@ -344,15 +346,15 @@ class mysql_clientdb_plugin { $triggers_array[] = $row; } $app->log('Dumping triggers from '.$old_name, LOGLEVEL_DEBUG); - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$old_name." -d -t -R -E > ".$timestamp.$old_name.'.triggers'; - exec($command, $out, $ret); + $command = "mysqldump -h ? -u ? -p? ? -d -t -R -E > ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $old_name, $timestamp.$old_name.'.triggers'); + $ret = $app->system->last_exec_retcode(); $app->system->chmod($timestamp.$old_name.'.triggers', 0600); if ($ret != 0) { unset($triggers_array); $app->system->unlink($timestamp.$old_name.'.triggers'); $app->log('Unable to dump triggers from '.$old_name, LOGLEVEL_ERROR); } - unset($out); } //* save views @@ -366,15 +368,15 @@ class mysql_clientdb_plugin { } $app->log('Dumping views from '.$old_name, LOGLEVEL_DEBUG); $temp_views = implode(' ', $temp); - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$old_name." ".$temp_views." > ".$timestamp.$old_name.'.views'; - exec($command, $out, $ret); + $command = "mysqldump -h ? -u ? -p? ? ? > ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $old_name, $temp_views, $timestamp.$old_name.'.views'); + $ret = $app->system->last_exec_retcode(); $app->system->chmod($timestamp.$old_name.'.views', 0600); if ($ret != 0) { unset($views_array); $app->system->unlink($timestamp.$old_name.'.views'); $app->log('Unable to dump views from '.$old_name, LOGLEVEL_ERROR); } - unset($out); unset($temp); unset($temp_views); } @@ -405,8 +407,9 @@ class mysql_clientdb_plugin { unset($_trigger); } //* update triggers, routines and events - $command = "mysql -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$new_name." < ".$timestamp.$old_name.'.triggers'; - exec($command, $out, $ret); + $command = "mysql -h ? -u ? -p? ? < ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $new_name, $timestamp.$old_name.'.triggers'); + $ret = $app->system->last_exec_retcode(); if ($ret != 0) { $app->log('Unable to import triggers for '.$new_name, LOGLEVEL_ERROR); } else { @@ -416,8 +419,9 @@ class mysql_clientdb_plugin { //* loading views if (@is_array($views_array)) { - $command = "mysql -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$new_name." < ".$timestamp.$old_name.'.views'; - exec($command, $out, $ret); + $command = "mysql -h ? -u ? -p? ? < ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $new_name, $timestamp.$old_name.'.views'); + $ret = $app->system->last_exec_retcode(); if ($ret != 0) { $app->log('Unable to import views for '.$new_name, LOGLEVEL_ERROR); } else { diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php index 5ce6f934b810c64148b997690f57fc4263b41f9c..1ed12f3a1c5a87bcc792f64274a332e6dd08b14f 100644 --- a/server/plugins-available/network_settings_plugin.inc.php +++ b/server/plugins-available/network_settings_plugin.inc.php @@ -280,8 +280,8 @@ class network_settings_plugin { //* Executing the postconf commands foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - exec($command); + $command = "postconf -e ?"; + $app->system->exec_safe($command, $cmd); } $app->log('Changed changed myhostname and mydestination in postfix main.cf to '.$new_hostname, LOGLEVEL_DEBUG); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index adac20c78ab4a1a0d2429c53fa922de316f2eb29..e4d59a02bbec26a0fcc9fcd25704121584e80f31 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -88,6 +88,35 @@ class nginx_plugin { $app->plugins->registerEvent('web_folder_update', $this->plugin_name, 'web_folder_update'); $app->plugins->registerEvent('web_folder_delete', $this->plugin_name, 'web_folder_delete'); + + $app->plugins->registerEvent('directive_snippets_update', $this->plugin_name, 'directive_snippets'); + } + + function directive_snippets($event_name, $data) { + global $app, $conf; + + $snippet = $data['new']; + + if($snippet['active'] == 'y' && $snippet['update_sites'] == 'y') { + if($snippet['type'] == 'php') { + $rlike = $snippet['directive_snippets_id'].'|,'.$snippet['directive_snippets_id'].'|'.$snippet['directive_snippets_id'].','; + $affected_snippets = $app->db->queryAllRecords('SELECT directive_snippets_id FROM directive_snippets WHERE required_php_snippets RLIKE(?) AND type = ?', $rlike, 'nginx'); + if(is_array($affected_snippets) && !empty($affected_snippets)) { + foreach($affected_snippets as $snippet) $sql_in[] = $snippet['directive_snippets_id']; + $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id IN ?', $conf['server_id'], $sql_in); + } + } + if($snippet['type'] == 'nginx') $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id = ?', $conf['server_id'], $snippet['directive_snippets_id']); + + if(is_array($affected_sites) && !empty($affected_sites)) { + foreach($affected_sites as $site) { + $website = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = ?', $site['domain_id']); + $new_data['old'] = $website; + $new_data['new'] = $website; + $this->update('web_domain_update', $new_data); + } + } + } } // Handle the creation of SSL certificates @@ -105,7 +134,6 @@ class nginx_plugin { //* Only vhosts can have a ssl cert if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain" && $data["new"]["type"] != "vhostalias") return; - // if(!is_dir($data['new']['document_root'].'/ssl')) exec('mkdir -p '.$data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/ssl') && !is_dir($data['old']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); $ssl_dir = $data['new']['document_root'].'/ssl'; @@ -167,39 +195,47 @@ class nginx_plugin { [ req_attributes ] ";//challengePassword = A challenge password"; + $ext_cnf = " + subjectAltName = @alt_names + + [alt_names] + DNS.1 = .$domain"; + $ssl_cnf_file = $ssl_dir.'/openssl.conf'; $app->system->file_put_contents($ssl_cnf_file, $ssl_cnf); + $ssl_ext_file = $ssl_dir.'/v3.ext'; + $app->system->file_put_contents($ssl_ext_file, $ext_cnf); - $rand_file = escapeshellcmd($rand_file); - $key_file2 = escapeshellcmd($key_file2); + $rand_file = $rand_file; + $key_file2 = $key_file2; $openssl_cmd_key_file2 = $key_file2; if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate - $key_file = escapeshellcmd($key_file); + $key_file = $key_file; $openssl_cmd_key_file = $key_file; if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate $ssl_days = 3650; - $csr_file = escapeshellcmd($csr_file); + $csr_file = $csr_file; $openssl_cmd_csr_file = $csr_file; if(substr($domain, 0, 2) == '*.' && strpos($csr_file, '/ssl/\*.') !== false) $csr_file = str_replace('/ssl/\*.', '/ssl/*.', $csr_file); // wildcard certificate - $config_file = escapeshellcmd($ssl_cnf_file); - $crt_file = escapeshellcmd($crt_file); + $config_file = $ssl_cnf_file; + $crt_file = $crt_file; $openssl_cmd_crt_file = $crt_file; if(substr($domain, 0, 2) == '*.' && strpos($crt_file, '/ssl/\*.') !== false) $crt_file = str_replace('/ssl/\*.', '/ssl/*.', $crt_file); // wildcard certificate if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file2 2048"); - exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); - exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file2 -out $openssl_cmd_key_file"); + $app->system->exec_safe("openssl genrsa -des3 -rand ? -passout pass:? -out ? 2048", $rand_file, $ssl_password, $openssl_cmd_key_file2); + $app->system->exec_safe("openssl req -new -sha256 -passin pass:? -passout pass:? -key ? -out ? -days ? -config ?", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $ssl_days, $config_file); + $app->system->exec_safe("openssl rsa -passin pass:? -in ? -out ?", $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_key_file); if(file_exists($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file"); + $app->system->exec_safe("openssl ca -batch -out ? -config ? -passin pass:? -in ? -extfile ?", $openssl_cmd_crt_file, $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $openssl_cmd_csr_file, $ssl_ext_file); $app->log("Creating CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); - if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); + if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file -extfile $ssl_ext_file", LOGLEVEL_ERROR); }; if (@filesize($crt_file)==0 || !file_exists($crt_file)){ - exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file "); + $app->system->exec_safe("openssl req -x509 -passin pass:? -passout pass:? -key ? -in ? -out ? -days ? -config ?", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $openssl_cmd_crt_file, $ssl_days, $config_file); $app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; @@ -209,6 +245,7 @@ class nginx_plugin { $app->system->chmod($key_file, 0400); @$app->system->unlink($config_file); @$app->system->unlink($rand_file); + @$app->system->unlink($ssl_ext_file); $ssl_request = $app->system->file_get_contents($csr_file); $ssl_cert = $app->system->file_get_contents($crt_file); $ssl_key = $app->system->file_get_contents($key_file); @@ -219,15 +256,15 @@ class nginx_plugin { $app->dbmaster->query("UPDATE web_domain SET ssl_request = ?, ssl_cert = ?, ssl_key = ? WHERE domain = ?", $ssl_request, $ssl_cert, $ssl_key, $data['new']['domain']); $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); } - + //* Check that the SSL key is not password protected if($data["new"]["ssl_action"] == 'save') { if(stristr($data["new"]["ssl_key"],'Proc-Type: 4,ENCRYPTED')) { $data["new"]["ssl_action"] = ''; - + $app->log('SSL Certificate not saved. The SSL key is encrypted.', LOGLEVEL_WARN); $app->dbmaster->datalogError('SSL Certificate not saved. The SSL key is encrypted.'); - + /* Update the DB of the (local) Server */ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); @@ -235,19 +272,20 @@ class nginx_plugin { $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); } } - + //* and check that SSL cert does not contain subdomain of domain acme.invalid if($data["new"]["ssl_action"] == 'save') { $tmp = array(); $crt_data = ''; - exec('openssl x509 -noout -text -in '.escapeshellarg($crt_file),$tmp); + $app->system->exec_safe('openssl x509 -noout -text -in ?', $crt_file); + $tmp = $app->system->last_exec_out(); $crt_data = implode("\n",$tmp); if(stristr($crt_data,'.acme.invalid')) { $data["new"]["ssl_action"] = ''; - + $app->log('SSL Certificate not saved. The SSL cert contains domain acme.invalid.', LOGLEVEL_WARN); $app->dbmaster->datalogError('SSL Certificate not saved. The SSL cert contains domain acme.invalid.'); - + /* Update the DB of the (local) Server */ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); @@ -303,7 +341,7 @@ class nginx_plugin { if($data['new']['ssl_action'] == 'del') { if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file)); + $app->system->exec_safe("openssl ca -batch -config ? -passin pass:? -revoke ?", $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $crt_file); $app->log("Revoking CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; $app->system->unlink($csr_file); @@ -400,7 +438,7 @@ class nginx_plugin { if(substr($data['new']['web_folder'],-1) == '/') $data['new']['web_folder'] = substr($data['new']['web_folder'],0,-1); } $web_folder .= '/'.$data['new']['web_folder']; - + if($data['old']['web_folder'] != ''){ if(substr($data['old']['web_folder'],0,1) == '/') $data['old']['web_folder'] = substr($data['old']['web_folder'],1); if(substr($data['old']['web_folder'],-1) == '/') $data['old']['web_folder'] = substr($data['old']['web_folder'],0,-1); @@ -415,7 +453,12 @@ class nginx_plugin { $web_folder = $data['new']['web_folder']; $log_folder .= '/' . $subdomain_host; unset($tmp); - + + if($app->system->is_blacklisted_web_path($web_folder)) { + $app->log('Vhost ' . $subdomain_host . ' is using a blacklisted web folder: ' . $web_folder, LOGLEVEL_ERROR); + return 0; + } + if(isset($data['old']['parent_domain_id'])) { // old one $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $data['old']['parent_domain_id']); @@ -439,31 +482,31 @@ class nginx_plugin { //* Check if a ispconfigend user and group exists and create them if(!$app->system->is_group('ispconfigend')) { - exec('groupadd --gid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('groupadd --gid ? ispconfigend', $connect_userid_to_webid_start + 10000); } if(!$app->system->is_user('ispconfigend')) { - exec('useradd -g ispconfigend -d /usr/local/ispconfig --uid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('useradd -g ispconfigend -d /usr/local/ispconfig --uid ? ispconfigend', $connect_userid_to_webid_start + 10000); } } else { $fixed_uid_param = ''; $fixed_gid_param = ''; } - $groupname = escapeshellcmd($data['new']['system_group']); + $groupname = $data['new']['system_group']; if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) { - exec('groupadd '.$fixed_gid_param.' '.$groupname); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname); + $app->system->exec_safe('groupadd ' . $fixed_gid_param . ' ?', $groupname); + if($nginx_chrooted) $app->system->exec_safe('chroot ? groupadd ?', $web_config['website_basedir'], $groupname); $app->log('Adding the group: '.$groupname, LOGLEVEL_DEBUG); } - $username = escapeshellcmd($data['new']['system_user']); + $username = $data['new']['system_user']; if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) { if($web_config['add_web_users_to_sshusers_group'] == 'y') { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } else { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } $app->log('Adding the user: '.$username, LOGLEVEL_DEBUG); } @@ -486,7 +529,7 @@ class nginx_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // create the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -508,14 +551,14 @@ class nginx_plugin { $app->system->rename($data['new']['document_root'], $data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s')); $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'), LOGLEVEL_DEBUG); } - + //* Unmount the old log directory bfore we move the log dir - exec('umount '.escapeshellcmd($old_dir.'/log')); + $app->system->exec_safe('umount ?', $old_dir.'/log'); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); $app->system->web_folder_protection($data['old']['document_root'], false); - exec('mv '.escapeshellarg($data['old']['document_root']).' '.escapeshellarg($new_dir)); + $app->system->exec_safe('mv ? ?', $data['old']['document_root'], $new_dir); //$app->system->rename($data['old']['document_root'],$new_dir); $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir, LOGLEVEL_DEBUG); @@ -523,17 +566,17 @@ class nginx_plugin { $data['new']['php_open_basedir'] = str_replace($data['old']['document_root'], $data['new']['document_root'], $data['old']['php_open_basedir']); //* Change the owner of the website files to the new website owner - exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); + $app->system->exec_safe('chown --recursive --from=?:? ?:? ?', $data['old']['system_user'], $data['old']['system_group'], $data['new']['system_user'], $data['new']['system_group'], $new_dir); //* Change the home directory and group of the website user - $command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' ; usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['document_root']); - $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - exec($command); + $command = 'killall -u ? ; usermod'; + $command .= ' --home ?'; + $command .= ' --gid ?'; + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user'], $data['new']['document_root'], $data['new']['system_group'], $data['new']['system_user']); } - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + if($nginx_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* Change the log mount /* @@ -544,9 +587,9 @@ class nginx_plugin { $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind,nobootwait'; $app->system->removeLine('/etc/fstab', $fstab_line); */ - + $fstab_line_old = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind'; - + if($web_config['network_filesystem'] == 'y') { $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nofail,_netdev 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); @@ -554,8 +597,8 @@ class nginx_plugin { $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nofail 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); } - - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); } @@ -564,22 +607,26 @@ class nginx_plugin { // Check if the directories are there and create them if necessary. $app->system->web_folder_protection($data['new']['document_root'], false); - if(!is_dir($data['new']['document_root'].'/' . $web_folder)) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + if(!is_dir($data['new']['document_root'].'/' . $web_folder)) { + if($web_folder !== 'web') { //vhost sub/alias + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder, 0755, $username, $groupname); + } else { + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + } + } if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/error') and $data['new']['errordocs']) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/error'); if($data['new']['stats_type'] != '' && !is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/stats'); - //if(!is_dir($data['new']['document_root'].'/'.$log_folder)) exec('mkdir -p '.$data['new']['document_root'].'/'.$log_folder); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin'); if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp'); - //if(!is_dir($data['new']['document_root'].'/webdav')) $app->system->mkdirpath($data['new']['document_root'].'/webdav'); - + if(!is_dir($data['new']['document_root'].'/.ssh')) { $app->system->mkdirpath($data['new']['document_root'].'/.ssh'); $app->system->chmod($data['new']['document_root'].'/.ssh', 0700); $app->system->chown($data['new']['document_root'].'/.ssh', $username); $app->system->chgrp($data['new']['document_root'].'/.ssh', $groupname); } - + //* Create the new private directory if(!is_dir($data['new']['document_root'].'/private')) { $app->system->mkdirpath($data['new']['document_root'].'/private'); @@ -591,7 +638,7 @@ class nginx_plugin { // Remove the symlink for the site, if site is renamed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/httpd/'.$data['old']['domain']); + if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) $app->system->exec_safe('rm -rf ?', '/var/log/ispconfig/httpd/'.$data['old']['domain']); if(is_link($data['old']['document_root'].'/'.$old_log_folder)) $app->system->unlink($data['old']['document_root'].'/'.$old_log_folder); //* remove old log mount @@ -599,21 +646,20 @@ class nginx_plugin { $app->system->removeLine('/etc/fstab', $fstab_line); //* Unmount log directory - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); + $app->system->exec_safe('umount ?', $data['old']['document_root'].'/'.$old_log_folder); } //* Create the log dir if nescessary and mount it if(!is_dir($data['new']['document_root'].'/'.$log_folder) || !is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain']) || is_link($data['new']['document_root'].'/'.$log_folder)) { if(is_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder); - if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']); + if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) $app->system->exec_safe('mkdir -p ?', '/var/log/ispconfig/httpd/'.$data['new']['domain']); $app->system->mkdirpath($data['new']['document_root'].'/'.$log_folder); $app->system->chown($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chgrp($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chmod($data['new']['document_root'].'/'.$log_folder, 0755); - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); //* add mountpoint to fstab - $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait'; + $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nofail'; $fstab_line .= @($web_config['network_filesystem'] == 'y')?',_netdev 0 0':' 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); } @@ -636,7 +682,7 @@ class nginx_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // remove the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -657,11 +703,10 @@ class nginx_plugin { } // create the symlinks, if not exist if(!is_link($tmp_symlink)) { - // exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); if ($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($data["new"]["document_root"]), escapeshellcmd($tmp_symlink)); + $app->system->create_relative_link($data["new"]["document_root"], $tmp_symlink); } else { - exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); + $app->system->exec_safe("ln -s ? ?", $data["new"]["document_root"]."/", $tmp_symlink); } $app->log('Creating symlink: ln -s '.$data['new']['document_root'].'/ '.$tmp_symlink, LOGLEVEL_DEBUG); @@ -681,69 +726,65 @@ class nginx_plugin { // Copy the error pages if($data['new']['errordocs']) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp '. $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); } - + //* Copy the web skeleton files only when there is no index.ph or index.html file yet if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) { - if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2))) { + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { - // exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); - //} } else { if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html', $data['new']['document_root'].'/' . $web_folder . '/index.html'); } else { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); } } } - exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + $app->system->exec_safe('chmod -R a+r ?', $data['new']['document_root'].'/' . $web_folder . '/'); //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); - exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); + $app->system->exec_safe('chown -R ?:? ?', $data['new']['system_user'], $data['new']['system_group'], $error_page_path); } // end copy error docs // Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias @@ -758,39 +799,39 @@ class nginx_plugin { } // get the primitive folder for document_root and the filesystem, will need it later. - $df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'")); + $df_output=explode(" ", $app->system->exec_safe("df -T ?|awk 'END{print \$2,\$NF}'", $data['new']['document_root'])); $file_system = $df_output[0]; $primitive_root = $df_output[1]; if($file_system == 'xfs') { - exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username) . " " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username, $primitive_root); // xfs only supports timers globally, not per user. - exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c 'timer -bir -i 604800' ?", $primitive_root); unset($project_uid, $username_position, $xfs_projects); unset($primitive_root, $df_output, $mb_hard, $mb_soft); } else { if($app->system->is_installed('setquota')) { - exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); - exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); + $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); + $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } } } if($this->action == 'insert' || $data["new"]["system_user"] != $data["old"]["system_user"]) { // Chown and chmod the directories below the document root - $app->system->_exec('chown -R '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); // The document root itself has to be owned by root in normal level and by the web owner in security level 20 if($web_config['security_level'] == 20) { - $app->system->_exec('chown '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); } else { - $app->system->_exec('chown root:root '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown root:root ?', $data['new']['document_root'].'/' . $web_folder); } } //* add the nginx user to the client group if this is a vhost and security level is set to high, no matter if this is an insert or update and regardless of set_folder_permissions_on_update - if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); + if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, $web_config['nginx_user']); //* If the security level is set to high if(($this->action == 'insert' && $data['new']['type'] == 'vhost') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhost') or ($web_folder != $old_web_folder && $data['new']['type'] == 'vhost')) { @@ -820,18 +861,18 @@ class nginx_plugin { if($web_config['add_web_users_to_sshusers_group'] == 'y') { $command = 'usermod'; $command .= ' --groups sshusers'; - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - $app->system->_exec($command); + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user']); } //* if we have a chrooted nginx environment if($nginx_chrooted) { - $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* add the nginx user to the client group in the chroot environment $tmp_groupfile = $app->system->server_conf['group_datei']; $app->system->server_conf['group_datei'] = $web_config['website_basedir'].'/etc/group'; - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); + $app->system->add_user_to_group($groupname, $web_config['nginx_user']); $app->system->server_conf['group_datei'] = $tmp_groupfile; unset($tmp_groupfile); } @@ -861,7 +902,7 @@ class nginx_plugin { //$app->system->chgrp($data['new']['document_root'].'/webdav',$groupname); $app->system->chown($data['new']['document_root'].'/private', $username); $app->system->chgrp($data['new']['document_root'].'/private', $groupname); - + if($web_folder != 'web'){ $app->system->chown($data['new']['document_root'].'/'.$web_folder, $username); $app->system->chgrp($data['new']['document_root'].'/'.$web_folder, $groupname); @@ -908,7 +949,7 @@ class nginx_plugin { } //$app->system->chown($data['new']['document_root'].'/webdav',$username); //$app->system->chgrp($data['new']['document_root'].'/webdav',$groupname); - + if($web_folder != 'web'){ $app->system->chown($data['new']['document_root'].'/'.$web_folder, $username); $app->system->chgrp($data['new']['document_root'].'/'.$web_folder, $groupname); @@ -945,11 +986,11 @@ class nginx_plugin { if($data['new']['type'] == 'vhost') { // Change the ownership of the error log to the root user - if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) exec('touch '.escapeshellcmd('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')); + if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) $app->system->exec_safe('touch ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log'); $app->system->chown('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); $app->system->chgrp('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); } - + //* Create the vhost config file $app->load('tpl'); @@ -991,45 +1032,45 @@ class nginx_plugin { } } } + if($data['new']['ip_address'] == '*' && $data['new']['ipv6_address'] == '') $tpl->setVar('ipv6_wildcard', 1); - // PHP-FPM - // Support for multiple PHP versions - /* - if(trim($data['new']['fastcgi_php_version']) != ''){ - $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir,-1) != '/') $custom_php_fpm_ini_dir .= '/'; - } else { - $default_php_fpm = true; - } - */ if($data['new']['php'] == 'php-fpm' || $data['new']['php'] == 'hhvm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] != 'no'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } $pool_dir = trim($pool_dir); if(substr($pool_dir, -1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; - $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); + $socket_dir = $web_config['php_fpm_socket_dir']; if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; if($data['new']['php_fpm_use_socket'] == 'y'){ @@ -1192,31 +1233,34 @@ class nginx_plugin { $nginx_directives = $data['new']['nginx_directives']; // $vhost_data['enable_pagespeed'] = false; } - + if(!$nginx_directives) { + $nginx_directives = ''; // ensure it is not null + } + // folder_directive_snippets if(trim($data['new']['folder_directive_snippets']) != ''){ $data['new']['folder_directive_snippets'] = trim($data['new']['folder_directive_snippets']); $data['new']['folder_directive_snippets'] = str_replace("\r\n", "\n", $data['new']['folder_directive_snippets']); $data['new']['folder_directive_snippets'] = str_replace("\r", "\n", $data['new']['folder_directive_snippets']); $folder_directive_snippets_lines = explode("\n", $data['new']['folder_directive_snippets']); - + if(is_array($folder_directive_snippets_lines) && !empty($folder_directive_snippets_lines)){ foreach($folder_directive_snippets_lines as $folder_directive_snippets_line){ list($folder_directive_snippets_folder, $folder_directive_snippets_snippets_id) = explode(':', $folder_directive_snippets_line); - + $folder_directive_snippets_folder = trim($folder_directive_snippets_folder); $folder_directive_snippets_snippets_id = trim($folder_directive_snippets_snippets_id); - + if($folder_directive_snippets_folder != '' && intval($folder_directive_snippets_snippets_id) > 0 && preg_match('@^((?!(.*\.\.)|(.*\./)|(.*//))[^/][\w/_\.\-]{1,100})?$@', $folder_directive_snippets_folder)){ if(substr($folder_directive_snippets_folder, -1) != '/') $folder_directive_snippets_folder .= '/'; if(substr($folder_directive_snippets_folder, 0, 1) == '/') $folder_directive_snippets_folder = substr($folder_directive_snippets_folder, 1); - + $master_snippet = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ? AND type = 'nginx' AND active = 'y' AND customer_viewable = 'y'", intval($folder_directive_snippets_snippets_id)); if(isset($master_snippet['snippet'])){ $folder_directive_snippets_trans = array('{FOLDER}' => $folder_directive_snippets_folder, '{FOLDERMD5}' => md5($folder_directive_snippets_folder)); $master_snippet['snippet'] = strtr($master_snippet['snippet'], $folder_directive_snippets_trans); $nginx_directives .= "\n\n".$master_snippet['snippet']; - + // create folder it it does not exist if(!is_dir($data['new']['document_root'].'/' . $web_folder.$folder_directive_snippets_folder)){ $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder.$folder_directive_snippets_folder); @@ -1228,7 +1272,7 @@ class nginx_plugin { } } } - + // use vLib for template logic if(trim($nginx_directives) != '') { $nginx_directives_new = ''; @@ -1245,7 +1289,7 @@ class nginx_plugin { if($nginx_directives_new != '') $nginx_directives = $nginx_directives_new; unset($nginx_directives_new); } - + // Make sure we only have Unix linebreaks $nginx_directives = str_replace("\r\n", "\n", $nginx_directives); $nginx_directives = str_replace("\r", "\n", $nginx_directives); @@ -1514,19 +1558,20 @@ class nginx_plugin { 'use_proxy' => ($data['new']['redirect_type'] == 'proxy' ? true:false)); } } - - // http2 or spdy? - $vhost_data['enable_http2'] = 'n'; - if($vhost_data['enable_spdy'] == 'y'){ - // check if nginx support http_v2; if so, use that instead of spdy - exec("2>&1 nginx -V | tr -- - '\n' | grep http_v2_module", $tmp_output, $tmp_retval); - if($tmp_retval == 0){ - $vhost_data['enable_http2'] = 'y'; - $vhost_data['enable_spdy'] = 'n'; - } - unset($tmp_output, $tmp_retval); + + //proxy protocol settings + if($web_config['vhost_proxy_protocol_enabled'] == "y"){ + if((int)$web_config['vhost_proxy_protocol_https_port'] > 0) { + $vhost_data['use_proxy_protocol'] = $data['new']['proxy_protocol']; + $vhost_data['proxy_protocol_http'] = (int)$web_config['vhost_proxy_protocol_http_port']; + $vhost_data['proxy_protocol_https'] = (int)$web_config['vhost_proxy_protocol_https_port']; + } else { + $vhost_data['use_proxy_protocol'] = "n"; + } + }else{ + $vhost_data['use_proxy_protocol'] = "n"; } - + // set logging variable $vhost_data['logging'] = $web_config['logging']; @@ -1805,7 +1850,7 @@ class nginx_plugin { } elseif($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') { $stats_web_folder = $data['new']['web_folder']; } - + //* Create basic http auth for website statistics $tpl->setVar('stats_auth_passwd_file', $data['new']['document_root']."/" . $stats_web_folder . "/stats/.htpasswd_stats"); @@ -1813,7 +1858,7 @@ class nginx_plugin { $basic_auth_locations = $this->_create_web_folder_auth_configuration($data['new']); if(is_array($basic_auth_locations) && !empty($basic_auth_locations)) $tpl->setLoop('basic_auth_locations', $basic_auth_locations); - $vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_file = $web_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'; //* Make a backup copy of vhost file if(file_exists($vhost_file)) copy($vhost_file, $vhost_file.'~'); @@ -1824,17 +1869,17 @@ class nginx_plugin { //* Set the symlink to enable the vhost //* First we check if there is a old type of symlink and remove it - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) $app->system->unlink($vhost_symlink); //* Remove old or changed symlinks if($data['new']['subdomain'] != $data['old']['subdomain'] or $data['new']['active'] == 'n') { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -1843,9 +1888,9 @@ class nginx_plugin { //* New symlink if($data['new']['subdomain'] == '*') { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; } else { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; } if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { symlink($vhost_file, $vhost_symlink); @@ -1854,22 +1899,22 @@ class nginx_plugin { // remove old symlink and vhost file, if domain name of the site has changed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; $app->system->unlink($vhost_file); $app->log('Removing file: '.$vhost_file, LOGLEVEL_DEBUG); } @@ -1889,6 +1934,16 @@ class nginx_plugin { $this->awstats_update($data, $web_config); } + //* Create GoAccess configuration + if($data['new']['stats_type'] == 'goaccess' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + $this->goaccess_update($data, $web_config); + } + + //* Remove Stats-Folder when Statistics set to none + if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + $app->file->removeDirectory($data['new']['document_root'].'/web/stats'); + } + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); @@ -2056,18 +2111,14 @@ class nginx_plugin { if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } } else { - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } - + // remove letsencrypt if it exists (renew will always fail otherwise) - + $old_domain = $data['old']['domain']; if(substr($old_domain, 0, 2) === '*.') { // wildcard domain not yet supported by letsencrypt! @@ -2103,19 +2154,19 @@ class nginx_plugin { } else { //* This is a website // Deleting the vhost file, symlink and the data directory - $vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -2125,11 +2176,11 @@ class nginx_plugin { $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { - $docroot = escapeshellcmd($data['old']['document_root']); + $docroot = $data['old']['document_root']; if($docroot != '' && !stristr($docroot, '..')) { if($data['old']['type'] == 'vhost') { // this is a vhost - we delete everything in here. - exec('rm -rf '.$docroot); + $app->system->exec_safe('rm -rf ?', $docroot); } elseif(!stristr($data['old']['web_folder'], '..')) { // this is a vhost subdomain // IMPORTANT: do some folder checks before we delete this! @@ -2179,7 +2230,7 @@ class nginx_plugin { unset($used_paths); } - if($do_delete === true && $delete_folder !== '') exec('rm -rf '.$docroot.'/'.$delete_folder); + if($do_delete === true && $delete_folder !== '') $app->system->exec_safe('rm -rf ?', $docroot.'/'.$delete_folder); unset($delete_folder); unset($path_elements); @@ -2192,12 +2243,14 @@ class nginx_plugin { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $web_config['fastcgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($fastcgi_starter_path)) { - exec('rm -rf '.$fastcgi_starter_path); + $app->system->set_immutable($fastcgi_starter_path, false, true); + $app->system->exec_safe('rm -rf ?', $fastcgi_starter_path); } } else { $fcgi_starter_script = $fastcgi_starter_path.$web_config['fastcgi_starter_script'].'_web'.$data['old']['domain_id']; if (file_exists($fcgi_starter_script)) { - exec('rm -f '.$fcgi_starter_script); + $app->system->set_immutable($fcgi_starter_script, false); + $app->system->exec_safe('rm -f ?', $fcgi_starter_script); } } } @@ -2218,12 +2271,14 @@ class nginx_plugin { $cgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $web_config['cgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($cgi_starter_path)) { - exec('rm -rf '.$cgi_starter_path); + $app->system->set_immutable($cgi_starter_path, false, true); + $app->system->exec_safe('rm -rf ?', $cgi_starter_path); } } else { $cgi_starter_script = $cgi_starter_path.'php-cgi-starter_web'.$data['old']['domain_id']; if (file_exists($cgi_starter_script)) { - exec('rm -f '.$cgi_starter_script); + $app->system->set_immutable($cgi_starter_script, false); + $app->system->exec_safe('rm -f ?', $cgi_starter_script); } } } @@ -2252,16 +2307,16 @@ class nginx_plugin { } // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/httpd/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) exec('rm -rf '.$vhost_logfile_dir); + $vhost_logfile_dir = '/var/log/ispconfig/httpd/'.$data['old']['domain']; + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) $app->system->exec_safe('rm -rf ?', $vhost_logfile_dir); $app->log('Removing website logfile directory: '.$vhost_logfile_dir, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost') { //delete the web user - $command = 'killall -u '.escapeshellcmd($data['old']['system_user']).' ; userdel'; - $command .= ' '.escapeshellcmd($data['old']['system_user']); - exec($command); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $command = 'killall -u ? ; userdel'; + $command .= ' ?'; + $app->system->exec_safe($command, $data['old']['system_user'], $data['old']['system_user']); + if($nginx_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); } @@ -2270,6 +2325,11 @@ class nginx_plugin { $this->awstats_delete($data, $web_config); } + //* Remove the GoAccess configuration file + if($data['old']['stats_type'] == 'goaccess') { + $this->goaccess_delete($data, $web_config); + } + //* Delete the web-backups if($data['old']['type'] == 'vhost') { $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); @@ -2282,7 +2342,7 @@ class nginx_plugin { if($mount_backup){ $web_backup_dir = $backup_dir.'/web'.$data_old['domain_id']; //** do not use rm -rf $web_backup_dir because database(s) may exits - exec(escapeshellcmd('rm -f '.$web_backup_dir.'/web'.$data_old['domain_id'].'_').'*'); + $app->system->exec_safe('rm -f ?*', $web_backup_dir.'/web'.$data_old['domain_id'].'_'); //* cleanup database $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename LIKE ?"; $app->db->query($sql, $conf['server_id'], $data_old['domain_id'], "web".$data_old['domain_id']."_%"); @@ -2332,7 +2392,7 @@ class nginx_plugin { //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); if(substr($folder['path'], -1) == '/') $folder['path'] = substr($folder['path'], 0, -1); - $folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$folder['path']); + $folder_path = $website['document_root'].'/' . $web_folder . '/'.$folder['path']; if(substr($folder_path, -1) != '/') $folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2438,7 +2498,7 @@ class nginx_plugin { if(substr($data['new']['path'], 0, 1) == '/') $data['new']['path'] = substr($data['new']['path'], 1); if(substr($data['new']['path'], -1) == '/') $data['new']['path'] = substr($data['new']['path'], 0, -1); - $new_folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$data['new']['path']); + $new_folder_path = $website['document_root'].'/' . $web_folder . '/'.$data['new']['path']; if(substr($new_folder_path, -1) != '/') $new_folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2485,7 +2545,7 @@ class nginx_plugin { //* Create the domain.auth file which is included in the vhost configuration file $app->uses('getconf'); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - $basic_auth_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$website['domain'].'.auth'); + $basic_auth_file = $web_config['nginx_vhost_conf_dir'].'/'.$website['domain'].'.auth'; //$app->load('tpl'); //$tpl = new tpl(); //$tpl->newTemplate('nginx_http_authentication.auth.master'); @@ -2510,6 +2570,89 @@ class nginx_plugin { //$app->services->restartServiceDelayed('httpd','reload'); } + + + //* Update the GoAccess configuration file + private function goaccess_update ($data, $web_config) { + global $app; + + $web_folder = $data['new']['web_folder']; + if($data['new']['type'] == 'vhost') $web_folder = 'web'; + + $goaccess_conf_locs = array('/etc/goaccess.conf', '/etc/goaccess/goaccess.conf'); + $count = 0; + + foreach($goaccess_conf_locs as $goa_loc) { + if(is_file($goa_loc) && (filesize($goa_loc) > 0)) { + $goaccess_conf_main = $goa_loc; + break; + } else { + $count++; + if($count == 2) { + $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_WARN); + } + } + } + + if(!is_dir($data['new']['document_root']."/" . $web_folder . "/stats/.db")) $app->system->mkdirpath($data['new']['document_root'] . "/" . $web_folder . "/stats/.db"); + $goaccess_conf = $data['new']['document_root'].'/log/goaccess.conf'; + + /* + In case that you use a different log format, you should use a custom goaccess.conf which you'll have to put into /usr/local/ispconfig/server/conf-custom/. + By default the originaly with GoAccess shipped goaccess.conf from /etc/ will be used along with the log-format value COMBINED. + */ + + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $goaccess_conf); + + } elseif(!file_exists($goaccess_conf)) { + + /* + By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf as the base conf. + */ + + $app->system->copy($goaccess_conf_main, $goaccess_conf); + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?log-format COMBINED/m', "log-format COMBINED", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(file_exists($goaccess_conf)) { + $domain = $data['new']['domain']; + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?html-report-title(.*)/m', "html-report-title $domain", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(is_file($goaccess_conf) && (filesize($goaccess_conf) > 0)) { + $app->log('Created GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); + } + + if(is_file($data['new']['document_root']."/" . $web_folder . "/stats/index.html")) $app->system->unlink($data['new']['document_root']."/" . $web_folder . "/stats/index.html"); + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } + } + + //* Delete the GoAccess configuration file + private function goaccess_delete ($data, $web_config) { + global $app; + + $goaccess_conf = $data['old']['document_root'] . "/log/goaccess.conf"; + + if ( @is_file($goaccess_conf) ) { + $app->system->unlink($goaccess_conf); + $app->log('Removed GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); + } + } + //* Update the awstats configuration file private function awstats_update ($data, $web_config) { global $app; @@ -2565,7 +2708,7 @@ class nginx_plugin { private function hhvm_update($data, $web_config) { global $app, $conf; - + if(file_exists($conf['rootpath'] . '/conf-custom/hhvm_starter.master')) { $content = file_get_contents($conf['rootpath'] . '/conf-custom/hhvm_starter.master'); } else { @@ -2576,7 +2719,7 @@ class nginx_plugin { } else { $monit_content = file_get_contents($conf['rootpath'] . '/conf/hhvm_monit.master'); } - + if($data['new']['php'] == 'hhvm' && $data['old']['php'] != 'hhvm' || ($data['new']['php'] == 'hhvm' && isset($data['old']['custom_php_ini']) && isset($data['new']['custom_php_ini']) && $data['new']['custom_php_ini'] != $data['old']['custom_php_ini'])) { // Custom php.ini settings @@ -2610,25 +2753,25 @@ class nginx_plugin { $content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $content); file_put_contents('/etc/init.d/hhvm_' . $data['new']['system_user'], $content); - exec('chmod +x /etc/init.d/hhvm_' . $data['new']['system_user'] . ' >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['new']['system_user'] . ' defaults >/dev/null 2>&1'); - exec('/etc/init.d/hhvm_' . $data['new']['system_user'] . ' restart >/dev/null 2>&1'); - + $app->system->exec_safe('chmod +x ? >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('/usr/sbin/update-rc.d ? defaults >/dev/null 2>&1', 'hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('/etc/init.d/hhvm_' . $data['new']['system_user'] . ' restart >/dev/null 2>&1'); + if(is_dir('/etc/monit/conf.d')){ $monit_content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $monit_content); file_put_contents('/etc/monit/conf.d/00-hhvm_' . $data['new']['system_user'], $monit_content); if(is_file('/etc/monit/conf.d/hhvm_' . $data['new']['system_user'])) unlink('/etc/monit/conf.d/hhvm_' . $data['new']['system_user']); exec('/etc/init.d/monit restart >/dev/null 2>&1'); } - + } elseif($data['new']['php'] != 'hhvm' && $data['old']['php'] == 'hhvm') { if($data['old']['system_user'] != ''){ exec('/etc/init.d/hhvm_' . $data['old']['system_user'] . ' stop >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['old']['system_user'] . ' remove >/dev/null 2>&1'); + $app->system->exec_safe('/usr/sbin/update-rc.d remove >/dev/null 2>&1', 'hhvm_' . $data['old']['system_user']); unlink('/etc/init.d/hhvm_' . $data['old']['system_user']); if(is_file('/etc/hhvm/'.$data['old']['system_user'].'.ini')) unlink('/etc/hhvm/'.$data['old']['system_user'].'.ini'); } - + if(is_file('/etc/monit/conf.d/hhvm_' . $data['old']['system_user']) || is_file('/etc/monit/conf.d/00-hhvm_' . $data['old']['system_user'])){ if(is_file('/etc/monit/conf.d/hhvm_' . $data['old']['system_user'])){ unlink('/etc/monit/conf.d/hhvm_' . $data['old']['system_user']); @@ -2646,21 +2789,31 @@ class nginx_plugin { global $app, $conf; $pool_dir = trim($pool_dir); $rh_releasefiles = array('/etc/centos-release', '/etc/redhat-release'); - + // HHVM => PHP-FPM-Fallback if($data['new']['php'] == 'php-fpm' || $data['new']['php'] == 'hhvm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] != 'no'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -2707,12 +2860,12 @@ class nginx_plugin { $tpl->setVar('fpm_pool', $pool_name); $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1); $tpl->setVar('fpm_user', $data['new']['system_user']); - + //Red Hat workaround for group ownership of socket files foreach($rh_releasefiles as $rh_file) { if(file_exists($rh_file) && (filesize($rh_file) > 0)) { $tmp = file_get_contents($rh_file); - if(preg_match('/[67]+\.[0-9]+/m', $tmp)) { + if(preg_match('/[678]+\.[0-9]+/m', $tmp)) { $tpl->setVar('fpm_group', $data['new']['system_group']); $tpl->setVar('fpm_listen_group', $data['new']['system_group']); } @@ -2724,7 +2877,7 @@ class nginx_plugin { } break; } - + $tpl->setVar('fpm_listen_user', $data['new']['system_user']); $tpl->setVar('fpm_domain', $data['new']['domain']); $tpl->setVar('pm', $data['new']['pm']); @@ -2737,7 +2890,7 @@ class nginx_plugin { $tpl->setVar('document_root', $data['new']['document_root']); $tpl->setVar('security_level', $web_config['security_level']); $tpl->setVar('domain', $data['new']['domain']); - $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($data['new']['php_open_basedir']); + $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $tpl->setVar('php_open_basedir', $php_open_basedir); if($php_open_basedir != ''){ $tpl->setVar('enable_php_open_basedir', ''); @@ -2757,7 +2910,7 @@ class nginx_plugin { // Custom php.ini settings $final_php_ini_settings = array(); $custom_php_ini_settings = trim($data['new']['custom_php_ini']); - + if(intval($data['new']['directive_snippets_id']) > 0){ $snippet = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ? AND type = 'nginx' AND active = 'y' AND customer_viewable = 'y'", intval($data['new']['directive_snippets_id'])); if(isset($snippet['required_php_snippets']) && trim($snippet['required_php_snippets']) != ''){ @@ -2776,7 +2929,7 @@ class nginx_plugin { } } } - + $custom_session_save_path = false; if($custom_php_ini_settings != ''){ // Make sure we only have Unix linebreaks @@ -2784,6 +2937,7 @@ class nginx_plugin { $custom_php_ini_settings = str_replace("\r", "\n", $custom_php_ini_settings); $ini_settings = explode("\n", $custom_php_ini_settings); if(is_array($ini_settings) && !empty($ini_settings)){ + $ini_settings = str_replace('{WEBROOT}', $data['new']['document_root'].'/web', $ini_settings); foreach($ini_settings as $ini_setting){ $ini_setting = trim($ini_setting); if(substr($ini_setting, 0, 1) == ';') continue; @@ -2824,7 +2978,7 @@ class nginx_plugin { unset($tpl); // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { @@ -2860,16 +3014,21 @@ class nginx_plugin { private function php_fpm_pool_delete ($data, $web_config) { global $app, $conf; - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] != 'no'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } @@ -2884,7 +3043,7 @@ class nginx_plugin { } // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { @@ -3087,7 +3246,7 @@ class nginx_plugin { } if($app->system->is_group('client'.$client_id)){ - $app->system->_exec('groupdel client'.$client_id); + $app->system->exec_safe('groupdel ?', 'client'.$client_id); $app->log('Removed group client'.$client_id, LOGLEVEL_DEBUG); } } diff --git a/server/plugins-available/nginx_reverseproxy_plugin.inc.php b/server/plugins-available/nginx_reverseproxy_plugin.inc.php index b5881dbf240886b5cc6127847a84f1e2dfa954de..f35f40d34a2fd638de9532da7b7e30717c0c6e6b 100644 --- a/server/plugins-available/nginx_reverseproxy_plugin.inc.php +++ b/server/plugins-available/nginx_reverseproxy_plugin.inc.php @@ -111,7 +111,9 @@ class nginx_reverseproxy_plugin { $crt_file = $ssl_dir.'/'.$domain.'.crt'; $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; - $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']); + if($vhost_data['nginx_directives']) { + $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']); + } if($data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file)) { @@ -176,7 +178,7 @@ class nginx_reverseproxy_plugin { } - $vhost_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_file = $nginx_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'; //* Make a backup copy of vhost file copy($vhost_file, $vhost_file.'~'); @@ -187,7 +189,7 @@ class nginx_reverseproxy_plugin { // Set the symlink to enable the vhost - $vhost_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'; if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { symlink($vhost_file, $vhost_symlink); $app->log('Creating symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -199,18 +201,18 @@ class nginx_reverseproxy_plugin { $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/nginx/'.$data['new']['domain']); + if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) $app->system->exec_safe('mkdir -p ?', '/var/log/ispconfig/nginx/'.$data['new']['domain']); // remove old symlink and vhost file, if domain name of the site has changed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_file); $app->log('Removing file: '.$vhost_file, LOGLEVEL_DEBUG); - if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/nginx/'.$data['old']['domain']); + if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) $app->system->exec_safe('rm -rf ?', '/var/log/ispconfig/nginx/'.$data['old']['domain']); } // request a httpd reload when all records have been processed @@ -232,7 +234,7 @@ class nginx_reverseproxy_plugin { function ssl($event_name, $data) { global $app, $conf; - if(!is_dir($conf['nginx']['config_dir'].'/ssl')) exec('mkdir -p '.$conf['nginx']['config_dir'].'/ssl'); + if(!is_dir($conf['nginx']['config_dir'].'/ssl')) $app->system->exec_safe('mkdir -p ?', $conf['nginx']['config_dir'].'/ssl'); $ssl_dir = $conf['nginx']['config_dir'].'/ssl'; $domain = $data['new']['ssl_domain']; $key_file = $ssl_dir.'/'.$domain.'.key.org'; @@ -250,7 +252,7 @@ class nginx_reverseproxy_plugin { //$csr_file = $ssl_dir.'/'.$domain.".csr"; //$crt_file = $ssl_dir.'/'.$domain.".crt"; //$bundle_file = $ssl_dir.'/'.$domain.".bundle"; - $this->_exec('rsync -v -e ssh root@'.$web['ip_address'].':~/$src_ssl_dir '.$ssl_dir); + $app->system->exec_safe('rsync -v -e ssh root@?:? ?', $web['ip_address'], '~/'.$src_ssl_dir, $ssl_dir); $app->log('Syncing SSL Cert for: '.$domain, LOGLEVEL_DEBUG); } @@ -284,31 +286,24 @@ class nginx_reverseproxy_plugin { //* This is a website // Deleting the vhost file, symlink and the data directory - $vhost_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_file); $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/nginx/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) exec('rm -rf '.$vhost_logfile_dir); + $vhost_logfile_dir = '/var/log/ispconfig/nginx/'.$data['old']['domain']; + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) $app->system->exec_safe('rm -rf ?', $vhost_logfile_dir); $app->log('Removing website logfile directory: '.$vhost_logfile_dir, LOGLEVEL_DEBUG); } } - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command, LOGLEVEL_DEBUG); - exec($command); - } - function rewrite_insert($event_name, $data) { global $app, $conf; @@ -329,7 +324,7 @@ class nginx_reverseproxy_plugin { $tpl->newTemplate("nginx_reverseproxy_rewrites.conf.master"); if (!empty($rules))$tpl->setLoop('nginx_rewrite_rules', $rules); - $rewrites_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/default.rewrites.conf'); + $rewrites_file = $nginx_config['nginx_vhost_conf_dir'].'/default.rewrites.conf'; //* Make a backup copy of vhost file copy($rewrites_file, $rewrites_file.'~'); @@ -340,7 +335,7 @@ class nginx_reverseproxy_plugin { // Set the symlink to enable the vhost - $rewrite_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/default.rewrites.conf'); + $rewrite_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/default.rewrites.conf'; if(!is_link($rewrite_symlink)) { symlink($rewrites_file, $rewrite_symlink); diff --git a/server/plugins-available/openvz_plugin.inc.php b/server/plugins-available/openvz_plugin.inc.php index 5cc4bf6522aaf1a64ab8d375b96ed8b6f89de18a..f17edb7b8c1882844b26eb6afb147eba9416075f 100644 --- a/server/plugins-available/openvz_plugin.inc.php +++ b/server/plugins-available/openvz_plugin.inc.php @@ -86,11 +86,11 @@ class openvz_plugin { } $tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ?", $data['new']['ostemplate_id']); - $ostemplate = escapeshellcmd($tmp['template_file']); + $ostemplate = $tmp['template_file']; unset($tmp); //* Create the virtual machine - exec("vzctl create $veid --ostemplate $ostemplate"); + $app->system->exec_safe("vzctl create ? --ostemplate ?", $veid, $ostemplate); $app->log("Create OpenVZ VM: vzctl create $veid --ostemplate $ostemplate", LOGLEVEL_DEBUG); //* Write the configuration of the VM @@ -103,7 +103,7 @@ class openvz_plugin { } //* Set the root password in the virtual machine - exec("vzctl set $veid --userpasswd root:".escapeshellcmd($data['new']['vm_password'])); + $app->system->exec_safe("vzctl set ? --userpasswd root:?", $veid, $data['new']['vm_password']); } @@ -123,7 +123,7 @@ class openvz_plugin { //* new diskspace for ploop-containers requieres "vzctl set" if($data['new']['diskspace'] != $data['old']['diskspace']) { - exec("vzctl set ".$veid." --diskspace ".$data['new']['diskspace']."G --save"); + escapeshell("vzctl set ? --diskspace ? --save", $veid, $data['new']['diskspace']."G"); } //* Apply config changes to the VM @@ -140,7 +140,7 @@ class openvz_plugin { //* Set the root password in the virtual machine if($data['new']['vm_password'] != $data['old']['vm_password']) { - exec("vzctl set $veid --userpasswd root:".escapeshellcmd($data['new']['vm_password'])); + $app->system->exec_safe("vzctl set ? --userpasswd root:?", $veid, $data['new']['vm_password']); } @@ -193,12 +193,12 @@ class openvz_plugin { $parts = explode(':', $data); $veid = intval($parts[0]); $template_cache_dir = '/vz/template/cache/'; - $template_name = escapeshellcmd($parts[1]); + $template_name = $parts[1]; if($veid > 0 && $template_name != '' && is_dir($template_cache_dir)) { - $command = "vzdump --suspend --compress --stdexcludes --dumpdir $template_cache_dir $veid"; - exec($command); - exec("mv ".$template_cache_dir."vzdump-openvz-".$veid."*.tgz ".$template_cache_dir.$template_name.".tar.gz"); - exec("rm -f ".$template_cache_dir."vzdump-openvz-".$veid."*.log"); + $command = "vzdump --suspend --compress --stdexcludes --dumpdir ? ?"; + $app->system->exec_safe($command, $template_cache_dir, $veid); + $app->system->exec_safe("mv ?*.tgz ?", $template_cache_dir."vzdump-openvz-".$veid, $template_cache_dir.$template_name.".tar.gz"); + $app->system->exec_safe("rm -f ?*.log", $template_cache_dir."vzdump-openvz-".$veid); } $app->log("Created OpenVZ OStemplate $template_name from VM $veid", LOGLEVEL_DEBUG); return 'ok'; diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 2b0b1ba67b584f9e640e6a5a26e22e2aeee1adf8..5a0b222a2491bb62125adbaa096d887ed28aee85 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -33,9 +33,6 @@ class postfix_server_plugin { var $plugin_name = 'postfix_server_plugin'; var $class_name = 'postfix_server_plugin'; - - var $postfix_config_dir = '/etc/postfix'; - //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. function onInstall() { @@ -60,15 +57,11 @@ class postfix_server_plugin { Register for the events */ - $app->plugins->registerEvent('server_insert', 'postfix_server_plugin', 'insert'); - $app->plugins->registerEvent('server_update', 'postfix_server_plugin', 'update'); - - - + $app->plugins->registerEvent('server_insert', $this->plugin_name, 'insert'); + $app->plugins->registerEvent('server_update', $this->plugin_name, 'update'); } function insert($event_name, $data) { - global $app, $conf; $this->update($event_name, $data); @@ -83,11 +76,16 @@ class postfix_server_plugin { $old_ini_data = $app->ini_parser->parse_ini_string($data['old']['config']); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + // Get postfix version + exec('postconf -d mail_version 2>&1', $out); + $postfix_version = preg_replace('/.*=\s*/', '', $out[0]); + unset($out); + copy('/etc/postfix/main.cf', '/etc/postfix/main.cf~'); - + if ($mail_config['relayhost'].$mail_config['relayhost_user'].$mail_config['relayhost_password'] != $old_ini_data['mail']['relayhost'].$old_ini_data['mail']['relayhost_user'].$old_ini_data['mail']['relayhost_password']) { $content = file_exists('/etc/postfix/sasl_passwd') ? file_get_contents('/etc/postfix/sasl_passwd') : ''; - $content = preg_replace('/^'.preg_quote($old_ini_data['email']['relayhost']).'\s+[^\n]*(:?\n|)/m','',$content); + $content = preg_replace('/^'.preg_quote($old_ini_data['email']['relayhost'], '/').'\s+[^\n]*(:?\n|)/m','',$content); if (!empty($mail_config['relayhost_user']) || !empty($mail_config['relayhost_password'])) { $content .= "\n".$mail_config['relayhost'].' '.$mail_config['relayhost_user'].':'.$mail_config['relayhost_password']; @@ -99,7 +97,7 @@ class postfix_server_plugin { exec("postconf -e 'smtp_sasl_auth_enable = no'"); } - exec("postconf -e 'relayhost = ".$mail_config['relayhost']."'"); + $app->system->exec_safe("postconf -e ?", 'relayhost = '.$mail_config['relayhost']); file_put_contents('/etc/postfix/sasl_passwd', $content); chmod('/etc/postfix/sasl_passwd', 0600); chown('/etc/postfix/sasl_passwd', 'root'); @@ -116,17 +114,19 @@ class postfix_server_plugin { if($rbl_hosts != ''){ $rbl_hosts = explode(",", $rbl_hosts); } - $options = explode(", ", exec("postconf -h smtpd_recipient_restrictions")); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); $new_options = array(); foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; if (!preg_match('/reject_rbl_client/', $value)) { $new_options[] = $value; } else { if(is_array($rbl_hosts) && !empty($rbl_hosts) && !$rbl_updated){ $rbl_updated = true; - foreach ($rbl_hosts as $key => $value) { - $value = trim($value); - if($value != '') $new_options[] = "reject_rbl_client ".$value; + foreach ($rbl_hosts as $key2 => $value2) { + $value2 = trim($value2); + if($value2 != '') $new_options[] = "reject_rbl_client ".$value2; } } } @@ -138,12 +138,12 @@ class postfix_server_plugin { if($value != '') $new_options[] = "reject_rbl_client ".$value; } } - exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); exec('postfix reload'); } if($mail_config['reject_sender_login_mismatch'] != $old_ini_data['mail']['reject_sender_login_mismatch']) { - $options = explode(", ", exec("postconf -h smtpd_sender_restrictions")); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_sender_restrictions")); $new_options = array(); foreach ($options as $key => $value) { if (!preg_match('/reject_authenticated_sender_login_mismatch/', $value)) { @@ -157,37 +157,139 @@ class postfix_server_plugin { while (isset($new_options[$i]) && substr($new_options[$i], 0, 19) == 'check_sender_access') ++$i; array_splice($new_options, $i, 0, array('reject_authenticated_sender_login_mismatch')); } - exec("postconf -e 'smtpd_sender_restrictions = ".implode(", ", $new_options)."'"); + $app->system->exec_safe("postconf -e ?", 'smtpd_sender_restrictions = '.implode(", ", $new_options)); exec('postfix reload'); } if($app->system->is_installed('dovecot')) { - $temp = exec("postconf -n virtual_transport", $out); - if ($mail_config["mailbox_virtual_uidgid_maps"] == 'y') { - // If dovecot switch to lmtp - if($out[0] != "virtual_transport = lmtp:unix:private/dovecot-lmtp") { - exec("postconf -e 'virtual_transport = lmtp:unix:private/dovecot-lmtp'"); - exec('postfix reload'); - $app->system->replaceLine("/etc/dovecot/dovecot.conf", "protocols = imap pop3", "protocols = imap pop3 lmtp"); - exec($conf['init_scripts'] . '/' . 'dovecot restart'); - } - } else { - // If dovecot switch to dovecot - if($out[0] != "virtual_transport = dovecot") { - exec("postconf -e 'virtual_transport = dovecot'"); - exec('postfix reload'); - $app->system->replaceLine("/etc/dovecot/dovecot.conf", "protocols = imap pop3 lmtp", "protocols = imap pop3"); - exec($conf['init_scripts'] . '/' . 'dovecot restart'); + $virtual_transport = 'dovecot'; + $configure_lmtp = false; + $dovecot_protocols = 'imap pop3'; + + //* dovecot-lmtpd + if( ($configure_lmtp = is_file('/usr/lib/dovecot/lmtp')) || + ($mail_config["mailbox_virtual_uidgid_maps"] == 'y') ) + { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $dovecot_protocols .= ' lmtp'; + } + + //* dovecot-managesieved + if(is_file('/usr/lib/dovecot/managesieve')) { + $dovecot_protocols .= ' sieve'; + } + + $out = null; + exec("postconf -n virtual_transport", $out); + if($out[0] != "virtual_transport = $virtual_transport") { + exec("postconf -e 'virtual_transport = $virtual_transport'"); + exec('postfix reload'); + } + + $out = null; + exec("grep '^protocols\s' /etc/dovecot/dovecot.conf", $out); + if($out[0] != "protocols = $dovecot_protocols") { + $app->system->replaceLine("/etc/dovecot/dovecot.conf", 'REGEX:/^protocols\s=/', "protocols = $dovecot_protocols"); + exec($conf['init_scripts'] . '/' . 'dovecot restart'); + } + } + + $quoted_postfix_config_dir = preg_quote($conf['postfix']['config_dir'], '|'); + $new_options = array(); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match("|check_recipient_access\s+proxy:mysql:${quoted_postfix_config_dir}/mysql-verify_recipients.cf|", $value)) { + continue; + } + $new_options[] = $value; + } + if (defined($configure_lmtp) && $configure_lmtp) { + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'reject_unlisted_recipient') { + array_splice($new_options, $i+1, 0, array("check_recipient_access proxy:mysql:${postfix_config_dir}/mysql-verify_recipients.cf")); + break; } } + # postfix < 3.3 needs this when using reject_unverified_recipient: + if(version_compare($postfix_version, 3.3, '<')) { + exec("postconf -e 'enable_original_recipient = yes'"); + } } + exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); - exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); //TODO : no reload? - exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); //TODO : no reload? + if($mail_config['content_filter'] != $old_ini_data['mail']['content_filter']) { + if($mail_config['content_filter'] == 'rspamd'){ + exec("postconf -X 'receive_override_options'"); + exec("postconf -X 'content_filter'"); + + exec("postconf -e 'smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'non_smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'milter_protocol = 6'"); + exec("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}'"); + exec("postconf -e 'milter_default_action = accept'"); + + exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, permit_mynetworks, permit_sasl_authenticated'"); + + $new_options = array(); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { + continue; + } + $new_options[] = $value; + } + exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + + // get all domains that have dkim enabled + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { + $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } + $dkim_domains = $app->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM `mail_domain` WHERE `dkim` = ? ORDER BY `domain` ASC', 'y'); + $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); + $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); + foreach($dkim_domains as $dkim_domain) { + fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); + fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector'] . "\n"); + } + fclose($fpp); + fclose($fps); + unset($dkim_domains); + } else { + exec("postconf -X 'smtpd_milters'"); + exec("postconf -X 'milter_protocol'"); + exec("postconf -X 'milter_mail_macros'"); + exec("postconf -X 'milter_default_action'"); + + exec("postconf -e 'receive_override_options = no_address_mappings'"); + exec("postconf -e 'content_filter = " . ($configure_lmtp ? "lmtp" : "amavis" ) . ":[127.0.0.1]:10024'"); + + exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access regexp:/etc/postfix/tag_as_foreign.re'"); + } + } + if($mail_config['content_filter'] == 'rspamd' && ($mail_config['rspamd_password'] != $old_ini_data['mail']['rspamd_password'] || $mail_config['content_filter'] != $old_ini_data['mail']['content_filter'])) { + $app->load('tpl'); - } + $rspamd_password = $mail_config['rspamd_password']; + $crypted_password = trim(exec('rspamadm pw -p ' . escapeshellarg($rspamd_password))); + if($crypted_password) { + $rspamd_password = $crypted_password; + } + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_worker-controller.inc.master'); + $tpl->setVar('rspamd_password', $rspamd_password); + $app->system->file_put_contents('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); + chmod('/etc/rspamd/local.d/worker-controller.inc', 0644); + $app->services->restartServiceDelayed('rspamd', 'reload'); + } + exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); + exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); + $app->services->restartServiceDelayed('postfix', 'reload'); + } } // end class - -?> diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php index 1ecdfaf50174825e6817631434b8c6c287cda9de..7ab23ec5494cd57d6f877e8a1afcbd864f48926f 100644 --- a/server/plugins-available/powerdns_plugin.inc.php +++ b/server/plugins-available/powerdns_plugin.inc.php @@ -448,16 +448,20 @@ class powerdns_plugin { } function notifySlave($data) { + global $app; + $pdns_control = $this->find_pdns_control(); if ( $pdns_control != false ) { - exec($pdns_control . ' notify ' . rtrim($data["new"]["origin"],".")); + $app->system->exec_safe($pdns_control . ' notify ?', rtrim($data["new"]["origin"],".")); } } function fetchFromMaster($data) { + global $app; + $pdns_control = $this->find_pdns_control(); if ( $pdns_control != false ) { - exec($pdns_control . ' retrieve ' . rtrim($data["new"]["origin"],".")); + $app->system->exec_safe($pdns_control . ' retrieve ?', rtrim($data["new"]["origin"],".")); } } @@ -532,14 +536,14 @@ class powerdns_plugin { $log[] = sprintf("\r\n%s %s", date('c'), 'Running set-nsec3 command...'); exec($cmd_set_nsec3, $log); - $pubkeys = []; + $pubkeys = array(); $cmd_show_zone = sprintf('%s show-zone %s 2>&1', $pdns_pdnssec, $zone); $log[] = sprintf("\r\n%s %s", date('c'), 'Running show-zone command...'); exec($cmd_show_zone, $pubkeys); $log = array_merge($log, $pubkeys); - $dnssec_info = array_merge($this->format_dnssec_pubkeys($pubkeys), ['', '== Raw log ============================'], $log); + $dnssec_info = array_merge($this->format_dnssec_pubkeys($pubkeys), array('', '== Raw log ============================'), $log); $dnssec_info = implode("\r\n", $dnssec_info); if ($app->dbmaster !== $app->db) { @@ -549,7 +553,7 @@ class powerdns_plugin { } function format_dnssec_pubkeys($lines) { - $formatted = []; + $formatted = array(); // We don't care about the first two lines about presigning and NSEC array_shift($lines); @@ -570,7 +574,7 @@ class powerdns_plugin { $key_type = $matches_key_type[1]; // We only care about the KSK or CSK - if (!in_array($key_type, ['KSK', 'CSK'], true)) { + if (!in_array($key_type, array('KSK', 'CSK'), true)) { break; } @@ -673,7 +677,7 @@ class powerdns_plugin { exec($cmd_disable_dnssec, $log); - $dnssec_info = array_merge(['== Raw log ============================'], $log); + $dnssec_info = array_merge(array('== Raw log ============================'), $log); $dnssec_info = implode("\r\n", $dnssec_info); if ($app->dbmaster !== $app->db) { @@ -693,11 +697,11 @@ class powerdns_plugin { if ( $pdns_pdnssec != false ) { if (isset($data["new"]["origin"])) { //* data has origin field only for SOA recordtypes - exec($pdns_pdnssec . ' rectify-zone ' . rtrim($data["new"]["origin"],".")); + $app->system->exec_safe($pdns_pdnssec . ' rectify-zone ?', rtrim($data["new"]["origin"],".")); } else { // get origin from DB for all other recordtypes $zn = $app->db->queryOneRecord("SELECT d.name AS name FROM powerdns.domains d, powerdns.records r WHERE r.ispconfig_id=? AND r.domain_id = d.id", $data["new"]["id"]); - exec($pdns_pdnssec . ' rectify-zone ' . trim($zn["name"])); + $app->system->exec_safe($pdns_pdnssec . ' rectify-zone ?', trim($zn["name"])); } } } diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..e9a6cdd633a07d17e9fb3bfd1af4974262ebea9f --- /dev/null +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -0,0 +1,491 @@ +<?php + +/* +Copyright (c) 2018, Falko Timme, Timme Hosting GmbH & Co. KG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class rspamd_plugin { + + var $plugin_name = 'rspamd_plugin'; + var $class_name = 'rspamd_plugin'; + var $users_config_dir = '/etc/rspamd/local.d/users/'; + + //* This function is called during ispconfig installation to determine + // if a symlink shall be created for this plugin. + function onInstall() { + global $conf; + + if($conf['services']['mail'] == true) { + return true; + } else { + return false; + } + } + + private function isValidEmail($email) { + $atIndex = strrpos($email, '@'); + if($atIndex === false) { + return false; + } + + $domain = substr($email, $atIndex + 1); + $local = substr($email, 0, $atIndex); + $localLen = strlen($local); + $domainLen = strlen($domain); + if($localLen > 64) { + return false; + } elseif($domainLen < 1 || $domainLen > 255) { + return false; + } elseif(substr($local, 0, 1) == '.' || substr($local, -1, 1) == '.') { + return false; // first or last sign is dot + } elseif(strpos($local, '..') !== false) { + return false; // two dots not allowed + } elseif(!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { + return false; // invalid character + } elseif(strpos($domain, '..') !== false) { + return false; // two dots not allowed + } elseif($local && !preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\", "", $local))) { + // character not valid in local part unless + // local part is quoted + if(!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\", "", $local))) { + return false; + } + } + + $domain_array = explode('.', $domain); + for($i = 0; $i < count($domain_array); $i++) { + if(!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $domain_array[$i])) { + return false; + } + } + + if(!preg_match("/^\[?[0-9\.]+\]?$/", $domain)) { + $domain_array = explode('.', $domain); + if(count($domain_array) < 2) { + return false; // Not enough parts to domain + } + + for($i = 0; $i < count($domain_array); $i++) { + if(!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) { + return false; + } + } + } + + return true; + } + + /* + This function is called when the plugin is loaded + */ + + function onLoad() { + global $app; + + /* + Register for the events + */ + + //* spamfilter_wblist + $app->plugins->registerEvent('spamfilter_wblist_insert', $this->plugin_name, 'spamfilter_wblist_insert'); + $app->plugins->registerEvent('spamfilter_wblist_update', $this->plugin_name, 'spamfilter_wblist_update'); + $app->plugins->registerEvent('spamfilter_wblist_delete', $this->plugin_name, 'spamfilter_wblist_delete'); + + //* global mail access filters + $app->plugins->registerEvent('mail_access_insert', $this->plugin_name, 'spamfilter_wblist_insert'); + $app->plugins->registerEvent('mail_access_update', $this->plugin_name, 'spamfilter_wblist_update'); + $app->plugins->registerEvent('mail_access_delete', $this->plugin_name, 'spamfilter_wblist_delete'); + + //* server ip + $app->plugins->registerEvent('server_ip_insert', $this->plugin_name, 'server_ip'); + $app->plugins->registerEvent('server_ip_update', $this->plugin_name, 'server_ip'); + $app->plugins->registerEvent('server_ip_delete', $this->plugin_name, 'server_ip'); + + //* spamfilter_users + $app->plugins->registerEvent('spamfilter_users_insert', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('spamfilter_users_update', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('spamfilter_users_delete', $this->plugin_name, 'user_settings_update'); + + //* mail user / fwd / catchall changed (greylisting) + $app->plugins->registerEvent('mail_user_insert', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_user_update', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_user_delete', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_forwarding_insert', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_forwarding_update', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_forwarding_delete', $this->plugin_name, 'user_settings_update'); + } + + function user_settings_update($event_name, $data) { + global $app, $conf; + + if(!is_dir('/etc/rspamd')) { + return; + } + + $use_data = 'new'; + if(substr($event_name, -7) === '_delete') { + $mode = 'delete'; + $use_data = 'old'; + } elseif(substr($event_name, -7) === '_insert') { + $mode = 'insert'; + } else { + $mode = 'update'; + } + + // get the config + $app->uses('getconf,system,functions'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + $type = false; + $identifier = false; + $entry_id = false; + if(substr($event_name, 0, 17) === 'spamfilter_users_') { + $identifier = 'email'; + $type = 'spamfilter_user'; + $entry_id = $data[$use_data]['id']; + } elseif(substr($event_name, 0, 16) === 'mail_forwarding_') { + $identifier = 'source'; + $type = 'mail_forwarding'; + $entry_id = $data[$use_data]['forwarding_id']; + } elseif(substr($event_name, 0, 10) === 'mail_user_') { + $identifier = 'email'; + $type = 'mail_user'; + $entry_id = $data[$use_data]['mailuser_id']; + } else { + // invalid event + $app->log('Invalid event name for rspamd_plugin: ' . $event_name, LOGLEVEL_WARN); + return; + } + + $is_domain = false; + $email_address = $data[$use_data][$identifier]; + $settings_name = $email_address; + if($email_address === '*@' || $email_address === '@') { + // we will ignore those global targets + $app->log('Ignoring @ spamfilter_user as rspamd does not support it this way.', LOGLEVEL_DEBUG); + return; + } elseif(!$email_address) { + // problem reading identifier + $app->log('Empty email address in rspamd_plugin from identifier: ' . $use_data . '/' . $identifier, LOGLEVEL_WARN); + return; + } elseif(substr($email_address, 0, 1) === '@') { + $settings_name = substr($email_address, 1); + $is_domain = true; + } elseif(strpos($email_address, '@') === false) { + $email_address = '@' . $email_address; + $is_domain = true; + } + + if($settings_name == '') { + // missing settings file name + $app->log('Empty rspamd identifier in rspamd_plugin from identifier: ' . $use_data . '/' . $identifier, LOGLEVEL_WARN); + return; + } + + $old_settings_name = $settings_name; + $settings_name = $app->functions->idn_encode($settings_name); + + if($old_settings_name !== $settings_name) { + // we changed naming to idn-encoded form due to path check issues. Delete old file if existing. + $old_settings_file = $this->users_config_dir . str_replace('@', '_', $old_settings_name) . '.conf'; + if(is_file($old_settings_file)) { + unlink($old_settings_file); + } + } + + $settings_file = $this->users_config_dir . str_replace('@', '_', $settings_name) . '.conf'; + //$app->log('Settings file for rspamd is ' . $settings_file, LOGLEVEL_WARN); + if($mode === 'delete') { + if(is_file($settings_file)) { + unlink($settings_file); + } + } else { + $settings_priority = 20; + if(isset($data[$use_data]['priority'])) { + $settings_priority = intval($data[$use_data]['priority']); + } elseif($is_domain === true) { + $settings_priority = 18; + } + + // get policy for entry + if($type === 'spamfilter_user') { + $policy = $app->db->queryOneRecord("SELECT * FROM spamfilter_policy WHERE id = ?", intval($data['new']['policy_id'])); + + $check = $app->db->queryOneRecord('SELECT `greylisting` FROM `mail_user` WHERE `server_id` = ? AND `email` = ? UNION SELECT `greylisting` FROM `mail_forwarding` WHERE `server_id` = ? AND `source` = ? ORDER BY (`greylisting` = ?) DESC', $conf['server_id'], $email_address, $conf['server_id'], $email_address, 'y'); + if($check) { + $greylisting = $check['greylisting']; + } else { + $greylisting = 'n'; + } + } else { + $search_for_policy[] = $email_address; + $search_for_policy[] = substr($email_address, strpos($email_address, '@')); + + $policy = $app->db->queryOneRecord("SELECT p.* FROM spamfilter_users as u INNER JOIN spamfilter_policy as p ON (p.id = u.policy_id) WHERE u.server_id = ? AND u.email IN ? ORDER BY u.priority DESC", $conf['server_id'], $search_for_policy); + + $greylisting = $data[$use_data]['greylisting']; + } + + if(!is_dir($this->users_config_dir)){ + $app->system->mkdirpath($this->users_config_dir); + } + + if(!$this->isValidEmail($app->functions->idn_encode($email_address))) { + if(is_file($settings_file)) { + unlink($settings_file); + } + } else { + + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.inc.conf.master'); + + $tpl->setVar('record_identifier', 'ispc_' . $type . '_' . $entry_id); + $tpl->setVar('priority', $settings_priority); + + if($type === 'spamfilter_user') { + if($data[$use_data]['local'] === 'Y') { + $tpl->setVar('to_email', $app->functions->idn_encode($email_address)); + } else { + $tpl->setVar('from_email', $app->functions->idn_encode($email_address)); + } + $spamfilter = $data[$use_data]; + } else { + $tpl->setVar('to_email', $app->functions->idn_encode($email_address)); + + // need to get matching spamfilter user if any + $spamfilter = $app->db->queryOneRecord('SELECT * FROM spamfilter_users WHERE `email` = ?', $email_address); + } + + if(!isset($policy['rspamd_spam_tag_level'])) { + $policy['rspamd_spam_tag_level'] = 6.0; + } + if(!isset($policy['rspamd_spam_tag_method'])) { + $policy['rspamd_spam_tag_method'] = 'add_header'; + } + if(!isset($policy['rspamd_spam_kill_level'])) { + $policy['rspamd_spam_kill_level'] = 15.0; + } + if(!isset($policy['rspamd_virus_kill_level'])) { + $policy['rspamd_virus_kill_level'] = floatval($policy['rspamd_spam_kill_level']) + 1000; + } + + $tpl->setVar('rspamd_spam_tag_level', floatval($policy['rspamd_spam_tag_level'])); + $tpl->setVar('rspamd_spam_tag_method', $policy['rspamd_spam_tag_method']); + $tpl->setVar('rspamd_spam_kill_level', floatval($policy['rspamd_spam_kill_level'])); + $tpl->setVar('rspamd_virus_kill_level', floatval($policy['rspamd_spam_kill_level']) + 1000); + + if(isset($policy['spam_lover']) && $policy['spam_lover'] == 'Y') { + $tpl->setVar('spam_lover', true); + } + if(isset($policy['virus_lover']) && $policy['virus_lover'] == 'Y') { + $tpl->setVar('virus_lover', true); + } + + $tpl->setVar('greylisting', $greylisting); + + if(isset($policy['rspamd_spam_greylisting_level'])) { + $tpl->setVar('greylisting_level', floatval($policy['rspamd_spam_greylisting_level'])); + } else { + $tpl->setVar('greylisting_level', 0.1); + } + + $app->system->file_put_contents($settings_file, $tpl->grab()); + } + } + + if($mail_config['content_filter'] == 'rspamd'){ + $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + + function spamfilter_wblist_insert($event_name, $data) { + $this->action = 'insert'; + // just run the spamfilter_wblist_update function + $this->spamfilter_wblist_update($event_name, $data); + } + + function spamfilter_wblist_update($event_name, $data) { + global $app, $conf; + + $app->uses('getconf,system,functions'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + $global_filter = false; + //* Create the config file + $filter = null; + if($event_name === 'mail_access_insert' || $event_name === 'mail_access_update') { + $global_filter = true; + $record_id = intval($data['new']['access_id']); + $wblist_file = $this->users_config_dir.'global_wblist_'.$record_id.'.conf'; + $filter = array( + 'wb' => ($data['new']['access'] === 'OK' ? 'W' : 'B'), + 'from' => ($data['new']['type'] === 'sender' ? $app->functions->idn_encode($data['new']['source']) : ''), + 'rcpt' => ($data['new']['type'] === 'recipient' ? $app->functions->idn_encode($data['new']['source']) : ''), + 'ip' => ($data['new']['type'] === 'client' && $this->_is_valid_ip_address($data['new']['source']) ? $data['new']['source'] : ''), + 'hostname' => ($data['new']['type'] === 'client' && !$this->_is_valid_ip_address($data['new']['source']) ? $data['new']['source'] : '') + ); + } else { + $record_id = intval($data['new']['wblist_id']); + $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.$record_id.'.conf'; + $tmp = $app->db->queryOneRecord("SELECT email FROM spamfilter_users WHERE id = ?", intval($data['new']['rid'])); + if($tmp && !empty($tmp)) { + $filter = array( + 'wb' => $data['new']['wb'], + 'from' => $app->functions->idn_encode($data['new']['email']), + 'rcpt' => $app->functions->idn_encode($tmp['email']), + 'ip' => '', + 'hostname' => '' + ); + } + } + + if($data['new']['active'] == 'y' && is_array($filter) && !empty($filter)){ + if(!is_dir($this->users_config_dir)){ + $app->system->mkdirpath($this->users_config_dir); + } + + $app->load('tpl'); + + $filter_from = $filter['from']; + if($filter_from != '') { + if(strpos($filter_from, '@') === false) { + $filter_from = '@' . $filter_from; + } elseif(substr($filter_from, 0, 2) === '*@') { + $filter_from = substr($filter_from, 1); + } + } + $filter_rcpt = $filter['rcpt']; + if($filter_rcpt != '') { + if(strpos($filter_rcpt, '@') === false) { + $filter_rcpt = '@' . $filter_rcpt; + } elseif(substr($filter_rcpt, 0, 2) === '*@') { + $filter_rcpt = substr($filter_rcpt, 1); + } + } + + if(!$this->isValidEmail($filter_from)) { + $filter_from = ''; + } + if(!$this->isValidEmail($filter_rcpt)) { + $filter_rcpt = ''; + } + if(($global_filter === true && !$filter_from && !$filter_rcpt) || ($global_filter === false && (!$filter_from || !$filter_rcpt))) { + if(is_file($wblist_file)) { + unlink($wblist_file); + } + } else { + $tpl = new tpl(); + $tpl->newTemplate('rspamd_wblist.inc.conf.master'); + $tpl->setVar('list_scope', ($global_filter ? 'global' : 'spamfilter')); + $tpl->setVar('record_id', $record_id); + // we need to add 10 to priority to avoid mailbox/domain spamfilter settings overriding white/blacklists + $tpl->setVar('priority', intval($data['new']['priority']) + ($global_filter ? 10 : 20)); + $tpl->setVar('from', $filter_from); + $tpl->setVar('recipient', $filter_rcpt); + $tpl->setVar('hostname', $filter['hostname']); + $tpl->setVar('ip', $filter['ip']); + $tpl->setVar('wblist', $filter['wb']); + + $app->system->file_put_contents($wblist_file, $tpl->grab()); + } + } elseif(is_file($wblist_file)) { + unlink($wblist_file); + } + + if($mail_config['content_filter'] == 'rspamd' && is_file('/etc/init.d/rspamd')) { + $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + + function spamfilter_wblist_delete($event_name, $data) { + global $app, $conf; + + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + //* delete the config file + if($event_name === 'mail_access_delete') { + $wblist_file = $this->users_config_dir.'global_wblist_'.intval($data['old']['access_id']).'.conf'; + } else { + $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.intval($data['old']['wblist_id']).'.conf'; + } + if(is_file($wblist_file)) { + unlink($wblist_file); + } + + if($mail_config['content_filter'] == 'rspamd'){ + if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + + function server_ip($event_name, $data) { + global $app, $conf; + + // get the config + $app->uses("getconf,system"); + $app->load('tpl'); + + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.conf.master'); + + $whitelist_ips = array(); + $ips = $app->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ?", $conf['server_id']); + if(is_array($ips) && !empty($ips)){ + foreach($ips as $ip){ + $whitelist_ips[] = array('ip' => $ip['ip_address']); + } + } + $tpl->setLoop('whitelist_ips', $whitelist_ips); + $app->system->file_put_contents('/etc/rspamd/local.d/users.conf', $tpl->grab()); + + if($mail_config['content_filter'] == 'rspamd'){ + $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + + private function _is_valid_ip_address($ip) { + if(function_exists('filter_var')) { + if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) { + return false; + } else { + return true; + } + } else { + return false; + } + } +} // end class diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 9c4568901deef3e73b8051929ca94247070e6fd2..e3276755bed03a99f0faa84d9e8983bed48f4e20 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -58,20 +58,20 @@ class shelluser_base_plugin { /* Register for the events */ - + $app->plugins->registerEvent('shell_user_insert', $this->plugin_name, 'insert'); $app->plugins->registerEvent('shell_user_update', $this->plugin_name, 'update'); $app->plugins->registerEvent('shell_user_delete', $this->plugin_name, 'delete'); - + } function insert($event_name, $data) { global $app, $conf; - + $app->uses('system,getconf'); - + $security_config = $app->getconf->get_security_config('permissions'); if($security_config['allow_shell_user'] != 'yes') { $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); @@ -88,7 +88,7 @@ class shelluser_base_plugin { $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN); return false; } - + if(!$app->system->is_allowed_user($data['new']['username'], false, false) || !$app->system->is_allowed_user($data['new']['puser'], true, true) || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { @@ -96,8 +96,8 @@ class shelluser_base_plugin { return false; } - if($data['new']['active'] != 'y') $data['new']['shell'] = '/bin/false'; - + if($data['new']['active'] != 'y' || $data['new']['chroot'] == "jailkit") $data['new']['shell'] = '/bin/false'; + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user @@ -105,45 +105,43 @@ class shelluser_base_plugin { if($uid > $this->min_uid) { //* Remove webfolder protection $app->system->web_folder_protection($web['document_root'], false); - + //* Home directory of the new shell user - if($data['new']['chroot'] == 'jailkit') { - $homedir = $data['new']['dir']; - } else { - $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; - } - + $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; + // Create home base directory if it does not exist if(!is_dir($data['new']['dir'].'/home')){ - $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0755'); + $app->file->mkdirs($data['new']['dir'].'/home', '0755'); } - + // Change ownership of home base dir to root user - $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),'root'); - $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),'root'); - $app->system->chmod(escapeshellcmd($data['new']['dir'].'/home'),0755); - + $app->system->chown($data['new']['dir'].'/home','root'); + $app->system->chgrp($data['new']['dir'].'/home','root'); + $app->system->chmod($data['new']['dir'].'/home',0755); + if(!is_dir($homedir)){ - $app->file->mkdirs(escapeshellcmd($homedir), '0750'); - $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser']),false); - $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup']),false); + $app->file->mkdirs($homedir, '0750'); + $app->system->chown($homedir,$data['new']['puser'],false); + $app->system->chgrp($homedir,$data['new']['pgroup'],false); } - $command = 'useradd'; - $command .= ' -d '.escapeshellcmd($homedir); - $command .= ' -g '.escapeshellcmd($data['new']['pgroup']); - $command .= ' -o '; // non unique - if($data['new']['password'] != '') $command .= ' -p '.escapeshellcmd($data['new']['password']); - $command .= ' -s '.escapeshellcmd($data['new']['shell']); - $command .= ' -u '.escapeshellcmd($uid); - $command .= ' '.escapeshellcmd($data['new']['username']); - - exec($command); + $command = 'useradd -d ? -g ? -o'; // non unique + $command .= ' -s ? -u ? ?'; + $app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['shell'], $uid, $data['new']['username']); $app->log("Executed command: ".$command, LOGLEVEL_DEBUG); $app->log("Added shelluser: ".$data['new']['username'], LOGLEVEL_DEBUG); - - $app->system->chown(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['username']),false); - $app->system->chgrp(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['pgroup']),false); - + + if($data['new']['password'] != '') { + $retval = null; + $stderr = ''; + $app->system->pipe_exec('chpasswd -e ' . escapeshellarg($data['new']['username']), $data['new']['username'] . ':' . $data['new']['password'], $retval, $stderr); + if($retval != 0) { + $app->log("Command chpasswd failed for user ".$data['new']['username'] . ' with code ' . $retval . ': ' . $stderr, LOGLEVEL_WARN); + } + } + + $app->system->chown($data['new']['dir'],$data['new']['username'],false); + $app->system->chgrp($data['new']['dir'],$data['new']['pgroup'],false); + // call the ssh-rsa update function $app->uses("getconf"); @@ -152,21 +150,21 @@ class shelluser_base_plugin { $this->_setup_ssh_rsa(); //* Create .bash_history file - $app->system->touch(escapeshellcmd($homedir).'/.bash_history'); - $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0750); - $app->system->chown(escapeshellcmd($homedir).'/.bash_history', $data['new']['username']); - $app->system->chgrp(escapeshellcmd($homedir).'/.bash_history', $data['new']['pgroup']); + $app->system->touch($homedir.'/.bash_history'); + $app->system->chmod($homedir.'/.bash_history', 0750); + $app->system->chown($homedir.'/.bash_history', $data['new']['username']); + $app->system->chgrp($homedir.'/.bash_history', $data['new']['pgroup']); //* Create .profile file - $app->system->touch(escapeshellcmd($homedir).'/.profile'); - $app->system->chmod(escapeshellcmd($homedir).'/.profile', 0644); - $app->system->chown(escapeshellcmd($homedir).'/.profile', $data['new']['username']); - $app->system->chgrp(escapeshellcmd($homedir).'/.profile', $data['new']['pgroup']); + $app->system->touch($homedir.'/.profile'); + $app->system->chmod($homedir.'/.profile', 0644); + $app->system->chown($homedir.'/.profile', $data['new']['username']); + $app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']); //* Disable shell user temporarily if we use jailkit if($data['new']['chroot'] == 'jailkit') { - $command = 'usermod -s /bin/false -L '.escapeshellcmd($data['new']['username']).' 2>/dev/null'; - exec($command); + $command = 'usermod -s /bin/false -L ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['username']); $app->log("Disabling shelluser temporarily: ".$command, LOGLEVEL_DEBUG); } @@ -184,7 +182,7 @@ class shelluser_base_plugin { global $app, $conf; $app->uses('system,getconf'); - + $security_config = $app->getconf->get_security_config('permissions'); if($security_config['allow_shell_user'] != 'yes') { $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); @@ -197,7 +195,7 @@ class shelluser_base_plugin { $app->log('Directory of the shell user is outside of website docroot.',LOGLEVEL_WARN); return false; } - + if(strpos($data['new']['dir'], '/../') !== false || substr($data['new']['dir'],-3) == '/..') { $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN); return false; @@ -209,14 +207,14 @@ class shelluser_base_plugin { $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); return false; } - + if($data['new']['active'] != 'y') $data['new']['shell'] = '/bin/false'; - + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); if($uid > $this->min_uid) { - + //* Home directory of the shell user if($data['new']['chroot'] == 'jailkit') { $homedir = $data['new']['dir']; @@ -225,63 +223,40 @@ class shelluser_base_plugin { $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; $homedir_old = $data['old']['dir'].'/home/'.$data['old']['username']; } - + $app->log("Homedir New: ".$homedir, LOGLEVEL_DEBUG); $app->log("Homedir Old: ".$homedir_old, LOGLEVEL_DEBUG); - + // Check if the user that we want to update exists, if not, we insert it if($app->system->is_user($data['old']['username'])) { //* Remove webfolder protection $app->system->web_folder_protection($web['document_root'], false); - - /* - $command = 'usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['dir']); - $command .= ' --gid '.escapeshellcmd($data['new']['pgroup']); - // $command .= ' --non-unique '; - $command .= ' --password '.escapeshellcmd($data['new']['password']); - if($data['new']['chroot'] != 'jailkit') $command .= ' --shell '.escapeshellcmd($data['new']['shell']); - // $command .= ' --uid '.escapeshellcmd($uid); - $command .= ' --login '.escapeshellcmd($data['new']['username']); - $command .= ' '.escapeshellcmd($data['old']['username']); - - exec($command); - $app->log("Executed command: $command ",LOGLEVEL_DEBUG); - */ - //$groupinfo = $app->system->posix_getgrnam($data['new']['pgroup']); + if($homedir != $homedir_old){ $app->system->web_folder_protection($web['document_root'], false); // Rename dir, in case the new directory exists already. if(is_dir($homedir)) { $app->log("New Homedir exists, renaming it to ".$homedir.'_bak', LOGLEVEL_DEBUG); - $app->system->rename(escapeshellcmd($homedir),escapeshellcmd($homedir.'_bak')); + $app->system->rename($homedir,$homedir.'_bak'); } - /*if(!is_dir($data['new']['dir'].'/home')){ - $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0750'); - $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['puser'])); - $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['pgroup'])); - } - $app->file->mkdirs(escapeshellcmd($homedir), '0755'); - $app->system->chown(escapeshellcmd($homedir),'root'); - $app->system->chgrp(escapeshellcmd($homedir),'root');*/ - + // Move old directory to new path - $app->system->rename(escapeshellcmd($homedir_old),escapeshellcmd($homedir)); - $app->file->mkdirs(escapeshellcmd($homedir), '0750'); - $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser'])); - $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup'])); + $app->system->rename($homedir_old,$homedir); + $app->file->mkdirs($homedir, '0750'); + $app->system->chown($homedir,$data['new']['puser']); + $app->system->chgrp($homedir,$data['new']['pgroup']); $app->system->web_folder_protection($web['document_root'], true); } else { if(!is_dir($homedir)){ $app->system->web_folder_protection($web['document_root'], false); if(!is_dir($data['new']['dir'].'/home')){ - $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0755'); - $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),'root'); - $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),'root'); + $app->file->mkdirs($data['new']['dir'].'/home', '0755'); + $app->system->chown($data['new']['dir'].'/home','root'); + $app->system->chgrp($data['new']['dir'].'/home','root'); } - $app->file->mkdirs(escapeshellcmd($homedir), '0750'); - $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser'])); - $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup'])); + $app->file->mkdirs($homedir, '0750'); + $app->system->chown($homedir,$data['new']['puser']); + $app->system->chgrp($homedir,$data['new']['pgroup']); $app->system->web_folder_protection($web['document_root'], true); } } @@ -296,18 +271,18 @@ class shelluser_base_plugin { //* Create .bash_history file if(!is_file($data['new']['dir']).'/.bash_history') { - $app->system->touch(escapeshellcmd($homedir).'/.bash_history'); - $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0750); - $app->system->chown(escapeshellcmd($homedir).'/.bash_history', escapeshellcmd($data['new']['username'])); - $app->system->chgrp(escapeshellcmd($homedir).'/.bash_history', escapeshellcmd($data['new']['pgroup'])); + $app->system->touch($homedir.'/.bash_history'); + $app->system->chmod($homedir.'/.bash_history', 0750); + $app->system->chown($homedir.'/.bash_history', $data['new']['username']); + $app->system->chgrp($homedir.'/.bash_history', $data['new']['pgroup']); } - + //* Create .profile file if(!is_file($data['new']['dir']).'/.profile') { - $app->system->touch(escapeshellcmd($homedir).'/.profile'); - $app->system->chmod(escapeshellcmd($homedir).'/.profile', 0644); - $app->system->chown(escapeshellcmd($homedir).'/.profile', escapeshellcmd($data['new']['username'])); - $app->system->chgrp(escapeshellcmd($homedir).'/.profile', escapeshellcmd($data['new']['pgroup'])); + $app->system->touch($homedir.'/.profile'); + $app->system->chmod($homedir.'/.profile', 0644); + $app->system->chown($homedir.'/.profile', $data['new']['username']); + $app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']); } //* Add webfolder protection again @@ -328,7 +303,7 @@ class shelluser_base_plugin { global $app, $conf; $app->uses('system,getconf,services'); - + $security_config = $app->getconf->get_security_config('permissions'); if($security_config['allow_shell_user'] != 'yes') { $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); @@ -340,21 +315,21 @@ class shelluser_base_plugin { $userid = intval($app->system->getuid($data['old']['username'])); if($userid > $this->min_uid) { $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['old']['parent_domain_id'])); - + // check if we have to delete the dir $check = $app->db->queryOneRecord('SELECT shell_user_id FROM `shell_user` WHERE `dir` = ?', $data['old']['dir']); if(!$check && is_dir($data['old']['dir'])) { - + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['old']['parent_domain_id']); $app->system->web_folder_protection($web['document_root'], false); - + // delete dir if($data['new']['chroot'] == 'jailkit') { $homedir = $data['old']['dir']; } else { $homedir = $data['old']['dir'].'/home/'.$data['old']['username']; } - + if(substr($homedir, -1) !== '/') $homedir .= '/'; $files = array('.bash_logout', '.bash_history', '.bashrc', '.profile'); $dirs = array('.ssh', '.cache'); @@ -362,7 +337,7 @@ class shelluser_base_plugin { if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); } foreach($dirs as $deldir) { - if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) exec('rm -rf ' . escapeshellarg($homedir . $deldir)); + if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) $app->system->exec_safe('rm -rf ?', $homedir . $deldir); } $empty = true; $dirres = opendir($homedir); @@ -380,17 +355,22 @@ class shelluser_base_plugin { } unset($files); unset($dirs); - + $app->system->web_folder_protection($web['document_root'], true); } - + // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. if ($data['old']['chroot'] != "jailkit") { // if this web uses PHP-FPM, that PPH-FPM service must be stopped before we can delete this user if($web['php'] == 'php-fpm'){ - if(trim($web['fastcgi_php_version']) != ''){ + if($web['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($web['fastcgi_php_version'])); + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $web['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -401,9 +381,8 @@ class shelluser_base_plugin { $app->services->restartService('php-fpm', 'stop:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } - $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f'; - $command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null'; - exec($command); + $command = 'killall -u ? ; userdel -f ? &> /dev/null'; + $app->system->exec_safe($command, $data['old']['username'], $data['old']['username']); $app->log("Deleted shelluser: ".$data['old']['username'], LOGLEVEL_DEBUG); // start PHP-FPM again if($web['php'] == 'php-fpm'){ @@ -447,12 +426,10 @@ class shelluser_base_plugin { } } $sshrsa = trim($sshrsa); - $usrdir = escapeshellcmd($this->data['new']['dir']); + $usrdir = $this->data['new']['dir']; //* Home directory of the new shell user - if($this->data['new']['chroot'] == 'jailkit') { - $usrdir = escapeshellcmd($this->data['new']['dir']); - } else { - $usrdir = escapeshellcmd($this->data['new']['dir'].'/home/'.$this->data['new']['username']); + if($this->data['new']['chroot'] != 'jailkit') { + $usrdir = $this->data['new']['dir'].'/home/'.$this->data['new']['username']; } $sshdir = $usrdir.'/.ssh'; $sshkeys= $usrdir.'/.ssh/authorized_keys'; @@ -528,8 +505,8 @@ class shelluser_base_plugin { $this->app->log("ssh-rsa key updated in ".$sshkeys, LOGLEVEL_DEBUG); // set proper file permissions - exec("chown -R ".escapeshellcmd($this->data['new']['puser']).":".escapeshellcmd($this->data['new']['pgroup'])." ".$sshdir); - exec("chmod 600 '$sshkeys'"); + $app->system->exec_safe("chown -R ?:? ?", $this->data['new']['puser'], $this->data['new']['pgroup'], $sshdir); + $app->system->exec_safe("chmod 600 ?", $sshkeys); } diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index c7112c497a1b2355d4d13fd298383a3b899630e9..43d636500808fdc59fc9637a8c1128a73c985b68 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -121,13 +121,11 @@ class shelluser_jailkit_plugin { //* call the ssh-rsa update function $this->_setup_ssh_rsa(); - //$command .= 'usermod -s /usr/sbin/jk_chrootsh -U '.escapeshellcmd($data['new']['username']); - //exec($command); $app->system->usermod($data['new']['username'], 0, 0, '', '/usr/sbin/jk_chrootsh', '', ''); //* Unlock user - $command = 'usermod -U '.escapeshellcmd($data['new']['username']).' 2>/dev/null'; - exec($command); + $command = 'usermod -U ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['username']); $this->_update_website_security_level(); $app->system->web_folder_protection($web['document_root'], true); @@ -242,15 +240,12 @@ class shelluser_jailkit_plugin { $jailkit_chroot_userhome = $this->_get_home_dir($data['old']['username']); - //commented out proved to be dangerous on config errors - //exec('rm -rf '.$data['old']['dir'].$jailkit_chroot_userhome); - $app->system->web_folder_protection($web['document_root'], false); $userid = intval($app->system->getuid($data['old']['username'])); - $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; '; - $command .= 'userdel -f '.escapeshellcmd($data['old']['username']).' &> /dev/null'; - exec($command); + $command = 'killall -u ? ; '; + $command .= 'userdel -f ? &> /dev/null'; + $app->system->exec_safe($command, $data['old']['username'], $data['old']['username']); // Remove the jailed user from passwd and shadow file inside the jail $app->system->removeLine($data['old']['dir'].'/etc/passwd', $data['old']['username']); @@ -278,12 +273,8 @@ class shelluser_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->data['new']['dir'].'/etc/jailkit')) { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command.' 2>/dev/null'); - - $this->app->log("Added jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_chroot($this->data['new']['dir'], $this->jailkit_config['jailkit_chroot_app_sections']); + $this->app->log("Added jailkit chroot", LOGLEVEL_DEBUG); $this->_add_jailkit_programs(); @@ -300,7 +291,7 @@ class shelluser_jailkit_plugin { $tpl->setVar('domain', $web['domain']); $tpl->setVar('home_dir', $this->_get_home_dir("")); - $bashrc = escapeshellcmd($this->data['new']['dir']).'/etc/bash.bashrc'; + $bashrc = $this->data['new']['dir'].'/etc/bash.bashrc'; if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); file_put_contents($bashrc, $tpl->grab()); @@ -313,7 +304,7 @@ class shelluser_jailkit_plugin { $tpl->setVar('domain', $web['domain']); - $motd = escapeshellcmd($this->data['new']['dir']).'/var/run/motd'; + $motd = $this->data['new']['dir'].'/var/run/motd'; if(@is_file($motd) || @is_link($motd)) unlink($motd); $app->system->file_put_contents($motd, $tpl->grab()); @@ -323,18 +314,15 @@ class shelluser_jailkit_plugin { function _add_jailkit_programs() { + global $app; $jailkit_chroot_app_programs = preg_split("/[\s,]+/", $this->jailkit_config['jailkit_chroot_app_programs']); if(is_array($jailkit_chroot_app_programs) && !empty($jailkit_chroot_app_programs)){ foreach($jailkit_chroot_app_programs as $jailkit_chroot_app_program){ $jailkit_chroot_app_program = trim($jailkit_chroot_app_program); if(is_file($jailkit_chroot_app_program) || is_dir($jailkit_chroot_app_program)){ //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' '.$jailkit_chroot_app_program; - exec($command.' 2>/dev/null'); - - $this->app->log("Added programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_programs($this->data['new']['dir'], $jailkit_chroot_app_program); + $this->app->log("Added programs to jailkit chroot", LOGLEVEL_DEBUG); } } } @@ -342,7 +330,7 @@ class shelluser_jailkit_plugin { function _get_home_dir($username) { - return str_replace("[username]", escapeshellcmd($username), $this->jailkit_config['jailkit_chroot_home']); + return str_replace("[username]", $username, $this->jailkit_config['jailkit_chroot_home']); } function _add_jailkit_user() @@ -365,36 +353,7 @@ class shelluser_jailkit_plugin { // ALWAYS create the user. Even if the user was created before // if we check if the user exists, then a update (no shell -> jailkit) will not work // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['username']); - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd($this->data['new']['shell']); - $command .= ' '.$this->data['new']['puser']; - $command .= ' '.$jailkit_chroot_puserhome; - exec($command.' 2>/dev/null'); - - //* Change the homedir of the shell user and parent user - //* We have to do this manually as the usermod command fails - //* when the user is logged in or a command is running under that user - /* - $passwd_file_array = file('/etc/passwd'); - $passwd_out = ''; - if(is_array($passwd_file_array)) { - foreach($passwd_file_array as $line) { - $line = trim($line); - $parts = explode(':',$line); - if($parts[0] == $this->data['new']['username']) { - $parts[5] = escapeshellcmd($this->data['new']['dir'].'/.'.$jailkit_chroot_userhome); - $parts[6] = escapeshellcmd('/usr/sbin/jk_chrootsh'); - $new_line = implode(':',$parts); - copy('/etc/passwd','/etc/passwd~'); - chmod('/etc/passwd~',0600); - $app->uses('system'); - $app->system->replaceLine('/etc/passwd',$line,$new_line,1,0); - } - } - }*/ + $app->system->create_jailkit_user($this->data['new']['username'], $this->data['new']['dir'], $jailkit_chroot_userhome, $this->data['new']['shell'], $this->data['new']['puser'], $jailkit_chroot_puserhome); $shell = '/usr/sbin/jk_chrootsh'; if($this->data['new']['active'] != 'y') $shell = '/bin/false'; @@ -402,23 +361,21 @@ class shelluser_jailkit_plugin { $app->system->usermod($this->data['new']['username'], 0, 0, $this->data['new']['dir'].'/.'.$jailkit_chroot_userhome, $shell); $app->system->usermod($this->data['new']['puser'], 0, 0, $this->data['new']['dir'].'/.'.$jailkit_chroot_puserhome, '/usr/sbin/jk_chrootsh'); - $this->app->log("Added jailkit user to chroot with command: ".$command, LOGLEVEL_DEBUG); - if(!is_dir($this->data['new']['dir'].$jailkit_chroot_userhome)) { if(is_dir($this->data['old']['dir'].$jailkit_chroot_userhome_old)) { - $app->system->rename(escapeshellcmd($this->data['old']['dir'].$jailkit_chroot_userhome_old),escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome)); + $app->system->rename($this->data['old']['dir'].$jailkit_chroot_userhome_old,$this->data['new']['dir'].$jailkit_chroot_userhome); } else { - mkdir(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome), 0750, true); + mkdir($this->data['new']['dir'].$jailkit_chroot_userhome, 0750, true); } } - $app->system->chown(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome), $this->data['new']['username']); - $app->system->chgrp(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome), $this->data['new']['pgroup']); + $app->system->chown($this->data['new']['dir'].$jailkit_chroot_userhome, $this->data['new']['username']); + $app->system->chgrp($this->data['new']['dir'].$jailkit_chroot_userhome, $this->data['new']['pgroup']); $this->app->log("Added created jailkit user home in : ".$this->data['new']['dir'].$jailkit_chroot_userhome, LOGLEVEL_DEBUG); - if(!is_dir($this->data['new']['dir'].$jailkit_chroot_puserhome)) mkdir(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome), 0750, true); - $app->system->chown(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome), $this->data['new']['puser']); - $app->system->chgrp(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome), $this->data['new']['pgroup']); + if(!is_dir($this->data['new']['dir'].$jailkit_chroot_puserhome)) mkdir($this->data['new']['dir'].$jailkit_chroot_puserhome, 0750, true); + $app->system->chown($this->data['new']['dir'].$jailkit_chroot_puserhome, $this->data['new']['puser']); + $app->system->chgrp($this->data['new']['dir'].$jailkit_chroot_puserhome, $this->data['new']['pgroup']); $this->app->log("Added jailkit parent user home in : ".$this->data['new']['dir'].$jailkit_chroot_puserhome, LOGLEVEL_DEBUG); @@ -447,13 +404,6 @@ class shelluser_jailkit_plugin { } - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command, LOGLEVEL_DEBUG); - exec($command); - } - private function _setup_ssh_rsa() { global $app; $this->app->log("ssh-rsa setup shelluser_jailkit", LOGLEVEL_DEBUG); @@ -469,7 +419,7 @@ class shelluser_jailkit_plugin { // ssh-rsa authentication variables $sshrsa = $this->data['new']['ssh_rsa']; - $usrdir = escapeshellcmd($this->data['new']['dir']).'/'.$this->_get_home_dir($this->data['new']['username']); + $usrdir = $this->data['new']['dir'].'/'.$this->_get_home_dir($this->data['new']['username']); $sshdir = $usrdir.'/.ssh'; $sshkeys= $usrdir.'/.ssh/authorized_keys'; @@ -545,9 +495,9 @@ class shelluser_jailkit_plugin { $this->app->log("ssh-rsa key updated in ".$sshkeys, LOGLEVEL_DEBUG); // set proper file permissions - exec("chown -R ".escapeshellcmd($this->data['new']['puser']).":".escapeshellcmd($this->data['new']['pgroup'])." ".$sshdir); - exec("chmod 700 ".$sshdir); - exec("chmod 600 '$sshkeys'"); + $app->system->exec_safe("chown -R ?:? ?", $this->data['new']['puser'], $this->data['new']['pgroup'], $sshdir); + $app->system->exec_safe("chmod 700 ?", $sshdir); + $app->system->exec_safe("chmod 600 ?", $sshkeys); } @@ -569,7 +519,7 @@ class shelluser_jailkit_plugin { if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); } foreach($dirs as $deldir) { - if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) exec('rm -rf ' . escapeshellarg($homedir . $deldir)); + if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) $app->system->exec_safe('rm -rf ?', $homedir . $deldir); } $empty = true; $dirres = opendir($homedir); diff --git a/server/plugins-available/software_update_plugin.inc.php b/server/plugins-available/software_update_plugin.inc.php index 587bd4f09a610c3ec496e1fa1edffe1e17e76b94..2626d1e75695bcefb79605ed7ae77e211a1755dd 100644 --- a/server/plugins-available/software_update_plugin.inc.php +++ b/server/plugins-available/software_update_plugin.inc.php @@ -111,11 +111,12 @@ class software_update_plugin { $software_update["update_url"] = str_replace('{key}', $software_package['package_key'], $software_update["update_url"]); //* Download the update package - $cmd = "cd $temp_dir && wget ".$software_update["update_url"]; if($installuser == '') { - exec($cmd); + $cmd = "cd ? && wget ?"; + $app->system->exec_safe($cmd, $temp_dir, $software_update["update_url"]); } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); + $cmd = "cd $temp_dir && wget ".$software_update["update_url"]; + $app->system->exec_safe("su -c ? ?", $cmd, $installuser); } $app->log("Downloading the update file from: ".$software_update["update_url"], LOGLEVEL_DEBUG); @@ -135,7 +136,7 @@ class software_update_plugin { if($update_filename == '') { $app->log("No package file found. Download failed? Installation aborted.", LOGLEVEL_WARN); - exec("rm -rf $temp_dir"); + $app->system->exec_safe("rm -rf ?", $temp_dir); $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); return false; @@ -148,7 +149,7 @@ class software_update_plugin { //* Checking the md5sum if(md5_file($temp_dir.'/'.$update_filename) != $software_update["update_md5"]) { $app->log("The md5 sum of the downloaded file is incorrect. Update aborted.", LOGLEVEL_WARN); - exec("rm -rf $temp_dir"); + $app->system->exec_safe("rm -rf ", $temp_dir); $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); return false; @@ -158,11 +159,13 @@ class software_update_plugin { //* unpacking the update - $cmd = "cd $temp_dir && unzip $update_filename"; + if($installuser == '') { - exec($cmd); + $cmd = "cd ? && unzip ?"; + $app->system->exec_safe($cmd, $temp_dir, $update_filename); } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); + $cmd = "cd $temp_dir && unzip $update_filename"; + $app->system->exec_safe("su -c ? ?", $cmd, $installuser); } //* Create a database, if the package requires one @@ -181,7 +184,7 @@ class software_update_plugin { $db_config['database_password'] != '' && $db_config['database_name'] != '' && $db_config['database_host'] != '') { - system("mysql --default-character-set=utf8 --force -h '".$db_config['database_host']."' -u '".$db_config['database_user']."' ".$db_config['database_name']." < ".escapeshellcmd($temp_dir.'/setup.sql')); + $app->system->exec_safe("mysql --default-character-set=utf8 --force -h ? -u ? ? < ?", $db_config['database_host'], $db_config['database_user'], $db_config['database_name'], $temp_dir.'/setup.sql'); $app->log("Loading setup.sql dump into the app db.", LOGLEVEL_DEBUG); } } @@ -196,13 +199,15 @@ class software_update_plugin { if(is_file($temp_dir.'/setup.sh')) { // Execute the setup script - exec('chmod +x '.$temp_dir.'/setup.sh'); + $app->system->exec_safe('chmod +x ?', $temp_dir.'/setup.sh'); $app->log("Executing setup.sh file in directory $temp_dir", LOGLEVEL_DEBUG); - $cmd = 'cd '.$temp_dir.' && ./setup.sh > package_install.log'; + if($installuser == '') { - exec($cmd); + $cmd = 'cd ? && ./setup.sh > package_install.log'; + $app->system->exec_safe($cmd, $temp_dir); } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); + $cmd = 'cd '.$temp_dir.' && ./setup.sh > package_install.log'; + $app->system->exec_safe("su -c ? ?", $cmd, $installuser); } $log_data = @file_get_contents("{$temp_dir}/package_install.log"); @@ -223,7 +228,7 @@ class software_update_plugin { $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); } - if($temp_dir != '' && $temp_dir != '/') exec("rm -rf $temp_dir"); + if($temp_dir != '' && $temp_dir != '/') $app->system->exec_safe("rm -rf ?", $temp_dir); $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); } diff --git a/server/plugins-available/webserver_plugin.inc.php b/server/plugins-available/webserver_plugin.inc.php index cca339ace01a5f123e6dd9167c568343d1906eed..3dae9216fa9371f9fac93c648441bfeaa11aeda7 100644 --- a/server/plugins-available/webserver_plugin.inc.php +++ b/server/plugins-available/webserver_plugin.inc.php @@ -89,20 +89,20 @@ class webserver_plugin { //** add default php.ini files to check $check_files[] = array('file' => $web_config['php_ini_path_apache'], 'mode' => 'mod', - 'php_version' => ''); // default; + 'php_version' => 0); // default; $check_files[] = array('file' => $web_config['php_ini_path_cgi'], 'mode' => '', // all but 'mod' and 'fast-cgi' - 'php_version' => ''); // default; + 'php_version' => 0); // default; if($fastcgi_config["fastcgi_phpini_path"] && $fastcgi_config["fastcgi_phpini_path"] != $web_config['php_ini_path_cgi']) { $check_files[] = array('file' => $fastcgi_config["fastcgi_phpini_path"], 'mode' => 'fast-cgi', - 'php_version' => ''); // default; + 'php_version' => 0); // default; } else { $check_files[] = array('file' => $web_config['php_ini_path_cgi'], 'mode' => 'fast-cgi', // all but 'mod' - 'php_version' => ''); // default; + 'php_version' => 0); // default; } @@ -112,11 +112,11 @@ class webserver_plugin { if($php['php_fastcgi_ini_dir'] && $php['php_fastcgi_ini_dir'] . '/php.ini' != $web_config['php_ini_path_cgi']) { $check_files[] = array('file' => $php['php_fastcgi_ini_dir'] . '/php.ini', 'mode' => 'fast-cgi', - 'php_version' => $php['php_fastcgi_ini_dir']); + 'php_version' => $php['server_php_id']); } elseif($php['php_fpm_ini_dir'] && $php['php_fpm_ini_dir'] . '/php.ini' != $web_config['php_ini_path_cgi']) { $check_files[] = array('file' => $php['php_fpm_ini_dir'] . '/php.ini', 'mode' => 'php-fpm', - 'php_version' => $php['php_fpm_ini_dir']); + 'php_version' => $php['server_php_id']); } } unset($php_versions); diff --git a/server/plugins-available/xmpp_plugin.inc.php b/server/plugins-available/xmpp_plugin.inc.php index 128a88ebb47e76d9ce51dc1b05f578fc15a9ab2b..c680e62f0ed5e51f5ccf7b634b8321984942d808 100644 --- a/server/plugins-available/xmpp_plugin.inc.php +++ b/server/plugins-available/xmpp_plugin.inc.php @@ -240,8 +240,8 @@ class xmpp_plugin { $app->system->unlink("/etc/metronome/certs/$domain.csr"); // Remove all stored data var_dump('rm -rf /var/lib/metronome/'.$folder); - exec('rm -rf /var/lib/metronome/'.$folder); - exec('rm -rf /var/lib/metronome/*%2e'.$folder); + $app->system->exec_safe('rm -rf ?', '/var/lib/metronome/'.$folder); + $app->system->exec_safe('rm -rf ?*?', '/var/lib/metronome/', '%2e'.$folder); $app->services->restartServiceDelayed('metronome', 'reload'); } @@ -264,7 +264,7 @@ class xmpp_plugin { // Don't allow manual user deletion for mailaccount controlled domains // Remove account from metronome - exec('metronomectl deluser '.$data['old']['jid']); + $app->system->exec_safe('metronomectl deluser ?', $data['old']['jid']); } // Handle the creation of SSL certificates @@ -311,9 +311,9 @@ class xmpp_plugin { $app->system->file_put_contents($cnf_file, $tpl->grab()); // Generate new key, csr and cert - exec("(cd /etc/metronome/certs && make $domain.key)"); - exec("(cd /etc/metronome/certs && make $domain.csr)"); - exec("(cd /etc/metronome/certs && make $domain.cert)"); + $app->system->exec_safe("(cd /etc/metronome/certs && make ?)", "$domain.key"); + $app->system->exec_safe("(cd /etc/metronome/certs && make ?)", "$domain.csr"); + $app->system->exec_safe("(cd /etc/metronome/certs && make ?)", "$domain.cert"); $ssl_key = $app->system->file_get_contents($key_file); $app->system->chmod($key_file, 0400); diff --git a/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php index bc88f4a198eda74c61b3ae8990f3ba21c4e8deb3..b2dd92265e8f638aae2addf1f34942fbb31e0448 100644 --- a/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php +++ b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php @@ -17,7 +17,7 @@ class z_php_fpm_incron_reload_plugin { function onInstall() { global $conf; - return $conf['services']['web'] === true; + return $conf['services']['web'] == true; } function onLoad() { @@ -45,8 +45,8 @@ class z_php_fpm_incron_reload_plugin { function incronUpdate($eventName, $data) { global $app; - if ($data['new']['document_root'] === $data['old']['document_root']) { - $app->log('Document root unchanged. Not updating incron configuration.', LOGLEVEL_DEBUG); + if ($this->documentRootUnchanged($data) && $this->phpVersionUnchanged($data)) { + $app->log('Document root and PHP version unchanged. Not updating incron configuration.', LOGLEVEL_DEBUG); return; } @@ -59,6 +59,16 @@ class z_php_fpm_incron_reload_plugin { $this->teardown($data['old']); } + private function documentRootUnchanged($data) + { + return $data['new']['document_root'] === $data['old']['document_root']; + } + + private function phpVersionUnchanged($data) + { + return $data['new']['server_php_id'] === $data['old']['server_php_id']; + } + private function setup($data) { $triggerFile = $this->getTriggerFilePath($data['document_root']); @@ -67,7 +77,7 @@ class z_php_fpm_incron_reload_plugin { $this->createIncronConfiguration( $triggerFile, $data['system_user'], - $data['fastcgi_php_version'] + $data['server_php_id'] ); $this->restartIncronService(); @@ -163,12 +173,14 @@ class z_php_fpm_incron_reload_plugin { } private function getPhpService($fastcgiPhpVersion) { - $phpInfo = explode(':', $fastcgiPhpVersion); + global $app; + + $phpInfo = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $fastcgiPhpVersion); if (empty($phpInfo)) { return null; } - $phpService = $phpInfo[1]; + $phpService = $phpInfo['php_fpm_init_script']; if (empty($phpService)) { return null; } diff --git a/server/scripts/create_jailkit_user.sh b/server/scripts/create_jailkit_user.sh index 5e1060be2503bc713842d3ef83910e675cf8d2d7..efefafe3ea808210639dd15021988a78221087dd 100755 --- a/server/scripts/create_jailkit_user.sh +++ b/server/scripts/create_jailkit_user.sh @@ -21,6 +21,12 @@ CHROOT_SHELL=$4 CHROOT_P_USER=$5 CHROOT_P_USER_HOMEDIR=$6 +### Check if USERHOMEDIR already exists ### +if [ ! -d $CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR ]; then + mkdir -p $CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR + chown -R $CHROOT_USERNAME $CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR +fi + ### Reconfigure the chroot home directory for the user ### usermod --home=$CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR $CHROOT_USERNAME 2>/dev/null diff --git a/server/scripts/ispconfig_patch b/server/scripts/ispconfig_patch index 6ed2a3f5aebb078e787f726d95c1e10565025416..4470552c137e7c5fc5c0ee62178c8492a2a463a4 100644 --- a/server/scripts/ispconfig_patch +++ b/server/scripts/ispconfig_patch @@ -79,7 +79,9 @@ function simple_query($query, $answers, $default) } function is_installed($appname) { - exec('which '.escapeshellcmd($appname).' 2> /dev/null',$out,$returncode); + $out = array(); + $returncode = null; + exec('which '.escapeshellarg($appname).' 2> /dev/null',$out,$returncode); if(isset($out[0]) && stristr($out[0],$appname) && $returncode == 0) { return true; } else { @@ -87,6 +89,13 @@ function is_installed($appname) { } } +$cmd_opt = getopt('', array('patch_id::')); +$auto = false; +if(isset($cmd_opt['patch_id'])) { + $patch_id = $cmd_opt['patch_id']; + $auto = true; +} + echo "\n\n".str_repeat('-',80)."\n"; echo " _____ ___________ _____ __ _ |_ _/ ___| ___ \ / __ \ / _(_) @@ -98,14 +107,18 @@ echo " _____ ___________ _____ __ _ |___/ "; echo "\n".str_repeat('-',80)."\n"; echo "\n\n>> Patch tool \n\n"; -echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n"; +if(!$auto) { + echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n"; +} if(!is_installed('patch')) { swriteln("The program 'patch' is missing on your server. Please install it and try again."); exit; } -$patch_id = simple_query('Enter patch id', false, ''); +if(!$auto) { + $patch_id = simple_query('Enter patch id', false, ''); +} if($patch_id == '') { swriteln("Patch terminated by user.\n"); die(); @@ -122,8 +135,12 @@ if(!$patch_data) { $patch_text = @file_get_contents('http://ispconfig.org/downloads/patches/' . $patch_id . '.txt'); if($patch_text) { - $ok = simple_query("Patch description:\n".str_repeat("-", 80)."\n".$patch_text."\n".str_repeat("-", 80)."\nDo you really want to apply this patch now?", array('y','n'), 'y'); - if($ok != 'y') { + if($auto) { + $ok = 'y'; + } else { + $ok = simple_query("Patch description:\n" . str_repeat("-", 80) . "\n" . $patch_text . "\n" . str_repeat("-", 80) . "\nDo you really want to apply this patch now?", array('y', 'n'), 'y'); + } + if($ok != 'y') { swriteln("Patch terminated by user.\n"); die(); } @@ -139,5 +156,3 @@ passthru('patch -p0 < ' . escapeshellarg($temp_file)); unlink($temp_file); exit; - -?> \ No newline at end of file diff --git a/server/scripts/ispconfig_update.php b/server/scripts/ispconfig_update.php index 0c2d3789e8e801ac93a97d71be21f8ba8db23180..2c77607b6576a44bf8fb0a6ca70c9a4f3d94d214 100644 --- a/server/scripts/ispconfig_update.php +++ b/server/scripts/ispconfig_update.php @@ -91,7 +91,7 @@ echo "Please choose the update method. For production systems select 'stable'. \ $method = simple_query('Select update method', array('stable', 'git-stable', 'git-master'), 'stable'); if($method == 'stable') { - $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); + $new_version = @file_get_contents('https://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); $new_version = trim($new_version); if(version_compare($new_version, ISPC_APP_VERSION, '>')) { passthru('/usr/local/ispconfig/server/scripts/update_stable.sh'); diff --git a/server/server.php b/server/server.php index 106d3edc654f4dd9974b76fca0f183d1dd2d56cd..164451babe0c8dd69c5aa82bbaed114d2e5c1a56 100644 --- a/server/server.php +++ b/server/server.php @@ -217,5 +217,5 @@ if ($needStartCore) { $app->log('Remove Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock', LOGLEVEL_DEBUG); -die("finished.\n"); +die("finished server.php.\n"); ?>