From 9d27652fc5778a54864da67b7f34f0a62a686ad6 Mon Sep 17 00:00:00 2001 From: Herman van Rink <rink@initfour.nl> Date: Mon, 17 Apr 2023 21:18:27 +0200 Subject: [PATCH] Merge origin/develop between 941b192a829f9b1d7b5c95a0d28253bd96d5faa8...510ace7666d68e105316dfe5fd6572b5fed23db5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://git.ispconfig.org/helmo/ispconfig3/-/compare/941b192a829f9b1d7b5c95a0d28253bd96d5faa8...510ace7666d68e105316dfe5fd6572b5fed23db5?from_project_id=427&straight=false Squashed commit of the following: commit 510ace7666d68e105316dfe5fd6572b5fed23db5 Merge: 835302e99 2bbbc5d85 Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Apr 17 15:08:15 2023 +0000 Merge branch '6480-db-operator' into 'develop' Resolve "wrong databases are shown when selecting a server." Closes #6480 See merge request ispconfig/ispconfig3!1712 commit 2bbbc5d8557510997ee0b6dc43e810d5b820da0c Author: Herman van Rink <rink@initfour.nl> Date: Sun Apr 16 23:24:02 2023 +0200 Fix db field operator in all other list files, #6480 commit 925dac26bbfd685b5e9db1a56376f3a65a5362c5 Author: Tom <tom@unknown> Date: Fri Apr 14 14:13:59 2023 +0200 Fix db field operator, #6480 commit 835302e99578530c499708cb11ea1a7fdfaf2d54 Merge: f8923da03 03bce8232 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 14:53:27 2023 +0000 Merge branch '6484-Add-Simplified-Chinese-language' into 'develop' Add Simplified Chinese translations for ISPConfig Closes #6484 See merge request ispconfig/ispconfig3!1707 commit f8923da030949444985c2e951490dd68e018a0b5 Merge: ba91d9141 3ddebfe99 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 09:32:29 2023 +0000 Merge branch '2558-two-factor-authentication-followup' into 'develop' Extend Two-factor authentication Closes #2558 See merge request ispconfig/ispconfig3!1594 commit ba91d9141ad8fb2b02a7758d9dc14c777fd9b67d Merge: 694612e3c ace15083a Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:49:27 2023 +0000 Merge branch '6431-rspamd-user-config-deleted-on-mail-user-changes' into 'develop' fixes #6431 // make sure config file is deleted only during spamfilter_user event. Closes #6431 See merge request ispconfig/ispconfig3!1674 commit 694612e3ca4e27185624c53e1a6aa9a2041e0cca Merge: f4fe95443 bc0347285 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:41:23 2023 +0000 Merge branch '6294-paste-email' into 'develop' Paste email address to select mail domain Closes #6294 See merge request ispconfig/ispconfig3!1571 commit f4fe9544321e9a41fed73f329e9a4677dac96084 Merge: 0b34b06dd 39d95d164 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:34:40 2023 +0000 Merge branch '6446-le-warning' into 'develop' Early return when no LE domains remain, #6446 Closes #6446 See merge request ispconfig/ispconfig3!1685 commit 0b34b06ddbebceb0f04f5916b2dee5c17ff7f741 Merge: 8efadcb51 9b603507d Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:22:28 2023 +0000 Merge branch '6485-nginx-php-fpm-workaround' into 'develop' simplify redhat os detection for the Nginx EL workaround Closes #6485 See merge request ispconfig/ispconfig3!1708 commit 9b603507d20bcc77fd1f7d4e4e0abac88e0ced48 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:14:24 2023 +0000 Update nginx_plugin.inc.php commit 8efadcb51273836cb3b2efd0b3d6e13f0cf775c6 Merge: 0e1b36adc 19a7aaeca Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:10:32 2023 +0000 Merge branch 'develop' into 'develop' Improve client circle page See merge request ispconfig/ispconfig3!1710 commit 0e1b36adc59326121e617b4996d83b83fe9b77a3 Merge: ab87ccdfd c7a6bddfb Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:04:00 2023 +0000 Merge branch '6416-undefined-constant-loglevel_warning-in-usr-local-ispconfig-server-plugins-available' into 'develop' Resolve "Undefined constant "LOGLEVEL_WARNING" in /usr/local/ispconfig/server/plugins-available/mysql_clientdb_plugin.inc.php:283" Closes #6416 See merge request ispconfig/ispconfig3!1667 commit ab87ccdfd18b8f05e1bdde34192582bf6c39b886 Merge: f512e03c8 4d2b2f5d1 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 06:02:52 2023 +0000 Merge branch 'feature/use-php-from-path-in-server-sh' into 'develop' Use PHP from path in server.sh See merge request ispconfig/ispconfig3!1676 commit c7a6bddfb2aa9096808f64c5d5ed8f5b0b5ecbe2 Author: Till <t.brehm@ispconfig.org> Date: Fri Apr 14 07:55:21 2023 +0200 Replaced LOGLEVEL_WARNING with LOGLEVEL_WARN commit f512e03c85d3d059f9f5267c837b9c28ab7dfcb3 Merge: e35532a64 502a66bbf Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Apr 14 05:31:41 2023 +0000 Merge branch 'develop' into 'develop' gentoo specific updates See merge request ispconfig/ispconfig3!1664 commit e35532a6499f1c4a22e89b9e393a78e574f1a3bb Merge: 6524493de 62a6d04f0 Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 11:04:35 2023 +0000 Merge branch '6471-use-mod-remoteip-in-new-apache-versions' into 'develop' Include minor number in apache version for vhost.conf.master, #6471 Closes #6471 See merge request ispconfig/ispconfig3!1700 commit 6524493debc02ffa1f4bd855cbdeebe82f1a8045 Merge: 3aeea7edb 07d37a4a8 Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 11:02:50 2023 +0000 Merge branch '6462-root-owner' into 'develop' account root should be owned by root, #6462 Closes #6462 See merge request ispconfig/ispconfig3!1693 commit 3aeea7edb3af5295a94a2198ae016c52f8182a3f Merge: a2f2eb3ee 27fea5f28 Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 09:59:09 2023 +0000 Merge branch '6438-php81-deprecation' into 'develop' Fix php 8.1 deprecation warnings Closes #6438 See merge request ispconfig/ispconfig3!1682 commit a2f2eb3eefd9994515c61e097b2bd5ef76403fd4 Merge: 7009315e5 2e8f525e5 Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 09:57:33 2023 +0000 Merge branch '6444-php82' into 'develop' Fix php 8.2 deprecation warnings, #6444 Closes #6444 See merge request ispconfig/ispconfig3!1684 commit 7009315e55f3e917eee014752e6dc92245de6edf Merge: 03346dbb0 a8d78f68d Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 09:56:44 2023 +0000 Merge branch '6435-slave-root-master' into 'develop' Move asking to sql root to the place where its needed, Closes #6435 See merge request ispconfig/ispconfig3!1680 commit 03346dbb01c23bdb8cb49753bd41dd57227e9246 Merge: 291809c43 cc39cc617 Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 09:55:03 2023 +0000 Merge branch '6424-Notifications-to-reseller-and-clients-not-working' into 'develop' FIX: Notifications to reseller and clients not working Issue #6424 Closes #6424 See merge request ispconfig/ispconfig3!1672 commit 291809c435c6a35d49f8a96c9919ccda1c4fb27e Merge: 5055c5373 bb0880560 Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 09:53:31 2023 +0000 Merge branch 'xxxx-cleanup' into 'develop' Collection of minor cleanup commits See merge request ispconfig/ispconfig3!1679 commit 5055c537391cd5830f9bf72d4d0702248d90888f Merge: 6b890e990 f5defafcf Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Apr 12 09:51:37 2023 +0000 Merge branch '6436-dns-records-tab' into 'develop' Default to the records tab for found dns zones, #6436 Closes #6436 See merge request ispconfig/ispconfig3!1681 commit 19a7aaecadce0d3aa0ecad55487d4585c374ba40 Author: flo <fk@blinkenbox.coop> Date: Fri Apr 7 23:36:53 2023 +0200 Improve client circle page commit 6b890e990f3603a3e36446f03f19e6588ed6792b Merge: 7fa44a038 507478ca0 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Mar 31 16:12:58 2023 +0000 Merge branch '6486-wrong-database-name-variable-used-in-rspamd-plugin' into 'develop' Resolve "Wrong database name variable used in Rspamd plugin" Closes #6486 See merge request ispconfig/ispconfig3!1709 commit 507478ca015c2b849065d564b85ec64071e56381 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Mar 31 16:05:09 2023 +0000 Update rspamd_plugin.inc.php commit a080b1cd7c8049944b76d53cb53edc796f15c29f Author: Michael Seevogel <git@michaelseevogel.de> Date: Wed Mar 29 21:10:10 2023 +0200 simplify redhat os detection for the Nginx EL workaround commit 03bce8232b607106195cc105304747246142e0a5 Author: 妙æ£ç° <ivmmvobe@mf8.biz> Date: Wed Mar 29 01:48:36 2023 +0800 Add Simplified Chinese translations for ISPConfig commit 7fa44a038009dfd9781c5065c143f4dd6f5aed2c Merge: 4052ec765 56c5fc58d Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Mar 27 15:59:09 2023 +0000 Merge branch '6481-replication-failed-with-uncaught-error-undefined-constant-dbtable' into 'develop' Resolve "replication failed with Uncaught Error: Undefined constant "dbtable"" Closes #6481 See merge request ispconfig/ispconfig3!1706 commit 56c5fc58d7c47b1d1d14844eb5c3ef09d464e45f Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Mar 27 15:51:07 2023 +0000 Update modules.inc.php commit 4052ec765dd7df50575dbd4e8e420eec98664ee0 Merge: 35d979072 8e5c13bc9 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Mar 24 18:07:13 2023 +0000 Merge branch '6452-uncaught-typeerror-array_merge-argument-1-must-be-of-type-array-bool-given-in' into 'develop' Resolve "Uncaught TypeError: array_merge(): Argument 1 must be of type array, bool given in shelluser_base_plugin.inc.php:480" Closes #6452 See merge request ispconfig/ispconfig3!1689 commit 8e5c13bc900a9306ba01e0d48c24802e30ef4e5b Merge: e3f14f75a 35d979072 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Mar 24 17:59:05 2023 +0000 Merge branch 'develop' into '6452-uncaught-typeerror-array_merge-argument-1-must-be-of-type-array-bool-given-in' # Conflicts: # server/lib/classes/file.inc.php commit 35d979072c181d3487c6430b2959022badbfdabe Merge: 05b848e77 30a569bad Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Mar 10 14:21:39 2023 +0000 Merge branch 'display-servername' into 'develop' fixes displaying server_name in single server setups Closes #6474 See merge request ispconfig/ispconfig3!1701 commit 62a6d04f0b279f6419e2422e7f22d39329dc0952 Author: Andreas Palm <ap@ewsp.de> Date: Fri Mar 10 15:06:25 2023 +0100 make #6471 backwards compatible by keeping the old variable commit 05b848e770ddd520405ef3c33837b8c8ec16af91 Merge: 6f6b94897 942b3cb08 Author: Till Brehm <tbrehm@ispconfig.org> Date: Thu Mar 9 14:29:21 2023 +0000 Merge branch '6475-sql-query-builder-in-listform_actions-inc-php-failure' into 'develop' Resolve "SQL query builder in listform_actions.inc.php failure" Closes #6475 See merge request ispconfig/ispconfig3!1702 commit 942b3cb0840c458f69b1ff47b49c42c83d4874f1 Author: Till Brehm <tbrehm@ispconfig.org> Date: Thu Mar 9 13:46:43 2023 +0000 Update interface/lib/classes/listform_actions.inc.php commit 30a569bade1717fd3c5e70acc62fdcecef37290c Author: Michael Seevogel <git@michaelseevogel.de> Date: Thu Mar 9 14:04:48 2023 +0100 fixes displaying server_name in single server setups commit 6f6b94897c3b567ff3f112de9d3ed354aa4993db Merge: e952f0941 667212e8d Author: Till Brehm <tbrehm@ispconfig.org> Date: Thu Mar 9 08:37:40 2023 +0000 Merge branch '6434-vim-insert' into 'develop' Fix stale i character, #6434 Closes #6434 See merge request ispconfig/ispconfig3!1678 commit e952f09417e90516a43d2a5a158ebfc9ccb2b796 Merge: 4590e73cd f818412d0 Author: Till Brehm <tbrehm@ispconfig.org> Date: Thu Mar 9 08:34:10 2023 +0000 Merge branch '6451-data-check-fields' into 'develop' Selecting a dnssec algorithm should imply wanting to sign the zone, #6451 Closes #6451 See merge request ispconfig/ispconfig3!1688 commit 4590e73cd1f38afdd0de623c7234df92cee78c6e Merge: 8770f3a05 fc675e268 Author: Till Brehm <tbrehm@ispconfig.org> Date: Tue Mar 7 21:31:38 2023 +0000 Merge branch '6449-domain-status' into 'develop' Show mail_domain status in list on mail_user_edit, #6449 Closes #6449 See merge request ispconfig/ispconfig3!1686 commit 8770f3a052d1df473075b25fab56e9b9d7882db8 Merge: dd8b2ab46 94a926f0d Author: Till Brehm <tbrehm@ispconfig.org> Date: Tue Mar 7 21:30:09 2023 +0000 Merge branch '6450-show-dnssec-status' into 'develop' Show DNSSEC status in soa list Closes #6450 See merge request ispconfig/ispconfig3!1687 commit dd8b2ab46b6b1fb7a85c189118df673e363eb339 Merge: 81ad2131e e042d3ea8 Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Mar 6 17:58:56 2023 +0000 Merge branch '6433-safe-delete-warning' into 'develop' Avoid a warning is the dir does not exist Closes #6433 See merge request ispconfig/ispconfig3!1677 commit 81ad2131e7fecd5d8b18276336da0a706f987a03 Merge: 969a78d0d 1955d8264 Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Mar 6 17:57:08 2023 +0000 Merge branch '6345-fix-dns-zone-import' into 'develop' fix checkDomainModuleDomain call on dns zone imports #6345 Closes #6345 See merge request ispconfig/ispconfig3!1695 commit 969a78d0dfbf9d1a1b98744898f3e98680f62e95 Merge: efb5a55a4 280c16b99 Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Mar 6 17:56:19 2023 +0000 Merge branch '6459-fix-dkim-selector-regex' into 'develop' Fixed regex for dkim_selector to match only valid entires #6459 Closes #6459 See merge request ispconfig/ispconfig3!1692 commit 5e9a4fec54fd199004c240f483c7fa531ee30ec8 Author: Andreas Palm <ap@ewsp.de> Date: Tue Feb 28 22:49:24 2023 +0100 include minor number in apache version for vhost.conf.master, #6471 commit efb5a55a4902d5befc92bbff321647325cf3bfbb Merge: d340266dd 344b6bc6f Author: Till Brehm <tbrehm@ispconfig.org> Date: Sun Feb 19 08:16:08 2023 +0000 Merge branch '6463-new-lines' into 'develop' Initialize new_lines array, #6463 Closes #6463 See merge request ispconfig/ispconfig3!1694 commit d340266dd58efb5e9d07a9eccfe6123ca4b31c46 Merge: 45acbb421 7632c8ea3 Author: Till Brehm <tbrehm@ispconfig.org> Date: Sat Feb 18 18:26:17 2023 +0000 Merge branch 'add-docs-for-remote-call-monitor-jobqueue-count' into 'develop' Add docs for remote call monitor_jobqueue_count() See merge request ispconfig/ispconfig3!1696 commit 45acbb421cd702da587d6b9b74031b15581fd434 Merge: dbeb110df 537caeb28 Author: Till Brehm <tbrehm@ispconfig.org> Date: Sat Feb 18 18:25:30 2023 +0000 Merge branch 'Petar-develop-patch-53672' into 'develop' BUG doman>domain web_childdomain.tform.php See merge request ispconfig/ispconfig3!1697 commit dbeb110df4b945db5c618fc7325b601b348308aa Merge: 7d30386fe bf853e67b Author: Till Brehm <tbrehm@ispconfig.org> Date: Sat Feb 18 18:25:02 2023 +0000 Merge branch 'Petar-develop-patch-91591' into 'develop' BUG doman>domain Update web_vhost_domain.tform.php See merge request ispconfig/ispconfig3!1698 commit bf853e67b8f6774b9e952a1760419f32c27af0d7 Author: Petar <p3romk@gmail.com> Date: Tue Feb 14 07:52:05 2023 +0000 BUG doman>domain Update web_vhost_domain.tform.php commit 537caeb28eccbd2d3c7ec92f84abb4011d658a4e Author: Petar <p3romk@gmail.com> Date: Tue Feb 14 07:49:57 2023 +0000 BUG doman>domain web_childdomain.tform.php commit 7632c8ea346f4e0495a1cc45233cdaf23f674de3 Author: Mladen B <mladen074@gmail.com> Date: Mon Feb 13 09:52:13 2023 +0000 Add docs for remote call monitor_jobqueue_count() commit 1955d826405e6be0e5299d2ea4a369aa9437a12b Author: Demian <demian@pytech.de> Date: Thu Feb 9 15:48:21 2023 +0100 fix checkDomainModuleDomain call on dns zone imports #6345 before we handed over domain_name instead of domain_id to the checkDomainModuleDomain function, which resulted in nothing. This fixes the call by querying the database for the domain_id for the given domain_name. commit 344b6bc6fcb7ea48bfbf3a19181c80300397b3fd Author: Herman van Rink <rink@initfour.nl> Date: Wed Feb 8 22:02:04 2023 +0100 Initialize new_lines array, #6463 commit 07d37a4a8ef21fa8b5e899f72b53835fbdb88352 Author: Herman van Rink <rink@initfour.nl> Date: Wed Feb 8 21:41:53 2023 +0100 account root should be owned by root, #6462 commit 280c16b99970d06334bd8950913512f25540de29 Author: Demian <demian@pytech.de> Date: Tue Feb 7 08:35:37 2023 +0100 Fixed regex to match the dkim_slector RFC compliant #6459 The dkim_select can start with a number, but has to contain atleast 1 letter and has to be between 1 and 63 characters long. commit 38103c00c1444d67f48d455c0e45fb22e15a8ce0 Author: Demian <demian@pytech.de> Date: Mon Feb 6 16:17:52 2023 +0100 Fixed regex for dkim_selector to match only valid entires #6459 before the regex matched empty entries and entries starting with a number. commit 3ddebfe99470c34bab240aeb42fe9dc42772c7ad Author: Herman van Rink <rink@initfour.nl> Date: Wed Feb 1 16:56:05 2023 +0100 Extra error when No mail address available to sent an OTP code to commit 7cb697a8f8bf59542ee40f96e3a50730a9ae2735 Author: Herman van Rink <rink@initfour.nl> Date: Thu May 19 13:36:11 2022 +0200 Fix indend and add comment commit 79770a899467464c114b2a49fcc15d0ebc98f5be Author: Herman van Rink <rink@initfour.nl> Date: Wed Feb 1 16:33:02 2023 +0100 Add otp_email_override support UI is still to be implemented commit 7d30386fe3e0aae351e2f61955402e6e188561e3 Merge: d53109aa2 39b6810cf Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Jan 30 19:47:17 2023 +0000 Merge branch '6458-let-s-encrypt-ssl-certs-not-issued-due-to-changed-cert-path-for-ecc-certs' into 'develop' Resolve "Let's Encrypt SSL certs not issued due to changed cert path for ECC certs" Closes #6458 See merge request ispconfig/ispconfig3!1691 commit 39b6810cf9c42713fe543120e5d03a393a6f32ab Author: Till Brehm <tbrehm@ispconfig.org> Date: Mon Jan 30 19:38:45 2023 +0000 Update install/lib/installer_base.lib.php commit 27fea5f289300e361a755f7526ce9540ede57fbc Author: Herman van Rink <rink@initfour.nl> Date: Fri Jan 27 22:32:51 2023 +0100 Avoid Deprecation warning PHP Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/local/ispconfig/server/plugins-available/bind_plugin.inc.php on line 397 commit e3f14f75a7e8910ff03a83454a32ca7fefc94d0b Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Jan 20 10:19:10 2023 +0000 Fixed Uncaught TypeError: array_merge(): Argument #1 must be of type array, bool given in /usr/local/ispconfig/server/plugins-available/shelluser_jailkit_plugin.inc.php:530 commit 79637839cb40bd18966606297c78e0a6da85a404 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Jan 20 10:13:31 2023 +0000 Fixed Undefined variable $new_lines in /usr/local/ispconfig/server/lib/classes/file.inc.php on line 126 commit dddf3e5bd0d31c7066b051ed84e4fb493a3ad14a Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Jan 20 06:14:53 2023 +0000 Update server/plugins-available/shelluser_base_plugin.inc.php commit f818412d0462dc734e1b6f463233f7a3cddfe065 Author: Herman van Rink <rink@initfour.nl> Date: Wed Jan 18 15:38:50 2023 +0100 Selecting a dnssec algarithm should imply wanting to sign the zone, #6451 commit 94a926f0d027723674f434f701642a5810630aed Author: Herman van Rink <rink@initfour.nl> Date: Wed Jan 18 14:31:33 2023 +0100 Show DNSSEC status in soa list commit fc675e2684004c124b1c96f172f0e44e100c4413 Author: Herman van Rink <rink@initfour.nl> Date: Wed Jan 18 08:48:41 2023 +0100 Show mail_domain status in list on mail_user_edit, #6449 commit 39d95d1641c60ff9051d3c0eafcf425a29aecdda Author: Herman van Rink <rink@initfour.nl> Date: Tue Jan 17 13:58:27 2023 +0100 Early return when no LE domains remain, #6446 commit 2e8f525e590352dc33277a3efc93c6f3486e8a49 Author: Herman van Rink <rink@initfour.nl> Date: Mon Jan 16 21:48:28 2023 +0100 Fix php 8.2 deprecation warnings, #6444 commit 4a099343840dbab9ad929becf674fea2d047127a Author: Herman van Rink <rink@initfour.nl> Date: Mon Dec 26 14:30:58 2022 +0100 Fix loginc error, backup_download_dir was not initialized in time Fround by: PHP Deprecated: is_dir(): Passing null to parameter #1 ($filename) of type string is deprecated in /usr/local/ispconfig/server/lib/classes/backup.inc.php on line 1311 commit a41468bf1c2ff19d9f9a9d87913e87103a1cbe9c Author: Herman van Rink <rink@initfour.nl> Date: Mon Dec 26 14:21:36 2022 +0100 Avoid Automatic conversion of false to array is deprecated in cron.d/200-logfiles.inc.php commit 5bb6e37a974506cfa343544807cd3c7be52ad7d1 Author: Herman van Rink <rink@initfour.nl> Date: Mon Dec 26 12:41:04 2022 +0100 Avoid php8.1 warning about shell_exec returning NULL commit bb0880560339d825ad586de28d8d03c2a5020125 Author: Herman van Rink <rink@initfour.nl> Date: Mon Dec 26 10:36:40 2022 +0100 an before a vowel commit f5defafcfb8fb5d771c62d9d0ad244ba9e6f82ce Author: Herman van Rink <rink@initfour.nl> Date: Sun Dec 25 22:42:20 2022 +0100 Default to the records tab for found dns zones, #6436 commit a8d78f68d8b882a153b555e1207c2ca3004ba9f3 Author: Herman van Rink <rink@initfour.nl> Date: Sun Dec 25 21:30:38 2022 +0100 Move asking to sql root to the place where its needed, commit 996a7d719f7a9ddaa4703584cea980e418cc3cdc Author: Herman van Rink <rink@initfour.nl> Date: Sun Dec 25 19:17:08 2022 +0100 Extend ignore file for vscode commit 8be92ac9206d689b842692cde7e3cb9f4e70f533 Author: Herman van Rink <rink@initfour.nl> Date: Tue Nov 29 23:23:48 2022 +0100 fix typo commit 614e7bd65c002819ed2117fd1294927ca6397742 Author: Herman van Rink <rink@initfour.nl> Date: Thu May 26 22:22:19 2022 +0200 Indent for readability commit f9f235c1a9aaf8522959f22ac94084b3f87c5ca4 Author: Herman van Rink <rink@initfour.nl> Date: Sun Apr 24 21:28:09 2022 +0200 Fix comment + linewrap commit 093ad5040724af8e3ee4ba6be4e0565c4a9c5c5b Author: Herman van Rink <rink@initfour.nl> Date: Sun Apr 17 22:51:55 2022 +0200 Extra api example usage commit 667212e8d07b94f652c3b032aaf270b66d0d2785 Author: Herman van Rink <rink@initfour.nl> Date: Sat Dec 24 23:37:17 2022 +0100 Fix stale i character, #6434 commit e042d3ea8e81e6ca1f55512b77014bd65d474685 Author: Herman van Rink <rink@initfour.nl> Date: Fri Dec 23 21:53:31 2022 +0100 Avoid a warning is the dir does not exist commit 4d2b2f5d1c870af97d396206187bd67eb668644a Author: Webslice <webslice@bixels.nl> Date: Thu Dec 22 09:43:56 2022 +0100 Use PHP from path in server.sh commit ace15083a35484e2ce025135960226fa2d8461a1 Author: Dimitri <de@niih.de> Date: Fri Dec 16 23:23:09 2022 +0000 fixes #6431 // make sure config file is deleted only during spamfilter_user event. commit 14032d8876fd44fc37897cbfa61afe524e3b8996 Author: Dimitri <de@niih.de> Date: Fri Dec 16 23:20:06 2022 +0000 Revert "Merge branch '6431-rspamd-user-config-deleted-on-mail-user-changes' into 'develop'" This reverts merge request !1 commit ff4988ae9ff7a5b1287b10bb97025f7c1b0da48b Merge: d53109aa2 a5845b137 Author: Dimitri <de@niih.de> Date: Fri Dec 16 22:52:19 2022 +0000 Merge branch '6431-rspamd-user-config-deleted-on-mail-user-changes' into 'develop' fixes #6431 // make sure config file is deleted only during spamfilter_user event. See merge request dimitri/ispconfig3!1 commit a5845b137f32b9f5abe3baf435794af5aaf9b7ce Author: Dimitri <de@niih.de> Date: Fri Dec 16 22:29:13 2022 +0000 fixes #6431 // make sure config file is deleted only during spamfilter_user event. commit d53109aa289f87c6cc4c98cc3400dbf512a6fd3b Merge: 1d6b37d97 17629b613 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Dec 16 17:50:53 2022 +0000 Merge branch '6430-php8-unable-to-add-database-on-multiserver-setup-withs-eparate-db-server' into 'develop' Resolve "PHP8: Unable to add database on multiserver setup withs eparate DB server" Closes #6430 See merge request ispconfig/ispconfig3!1673 commit 17629b613c5209a6ad647dff644314b3a8fe3fa3 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Dec 16 16:01:10 2022 +0000 Update interface/web/sites/database_edit.php commit cc39cc617a6303826962d05d74598af844aae54e Author: Krzysztof Baranowski <krzysiek@hostname.pl> Date: Wed Dec 14 17:50:49 2022 +0000 Update 300-quota_notify.inc.php Add all clients to array, use data when needed. commit 1d6b37d97b7f8ae8ef0331c020431d2ba539c840 Merge: 29f90a26a b5b8a5853 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Dec 9 08:29:58 2022 +0000 Merge branch '6417-quota-unlimited-zero-vs--1' into 'develop' Unlimited quota is stored as -1, not zero, #6417 Closes #6417 See merge request ispconfig/ispconfig3!1668 commit 29f90a26a4b65f109f445fb4949c49236b272f0a Merge: 9220d195e 77ab6ddac Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Dec 9 08:28:49 2022 +0000 Merge branch '6418-usage-sort' into 'develop' Mark usage column for php sorting, #6418 Closes #6418 See merge request ispconfig/ispconfig3!1669 commit 9220d195e647fa0b2e1e218a717f12ec705891ce Merge: 483cf6fff 697ce3b60 Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Dec 9 08:28:12 2022 +0000 Merge branch '6419-isset' into 'develop' PHP 8 strict fixes, #6419 Closes #6419 See merge request ispconfig/ispconfig3!1670 commit 483cf6fff23211dc3e30aa4017790536d7da5723 Merge: 9ab8755e5 da608f7ff Author: Till Brehm <tbrehm@ispconfig.org> Date: Fri Dec 9 08:26:28 2022 +0000 Merge branch 'sonority-develop-patch-76321' into 'develop' Fixed typo. Wrong "subjectAltName" with leading dot when using self-signed certificates. See merge request ispconfig/ispconfig3!1671 commit 9ab8755e5df03081868a7c9ff875ad9484713e2d Author: Till Brehm <tbrehm@ispconfig.org> Date: Wed Dec 7 09:12:30 2022 +0000 Update backup.inc.php fixed syntax error in log function in older PHP versions commit b5b8a5853103f823785b1e32482db682a1deeb46 Author: Herman van Rink <rink@initfour.nl> Date: Tue Dec 6 23:03:34 2022 +0100 -1 has no meaning for a mail_user quota, 0==unlimited and default. commit 9648eaa80fbc00214feb570706d33c8b5b423585 Author: Herman van Rink <rink@initfour.nl> Date: Tue Dec 6 22:55:46 2022 +0100 -1 has no meaning for a mail_user quota, 0==unlimited and default. commit da608f7ff4dbcc3dddf8bc86d829496a38661cbc Author: Stephan Kellermayr <stephan.kellermayr@gmail.com> Date: Tue Dec 6 15:22:04 2022 +0000 Fixed typo. Wrong "subjectAltName" with leading dot when using self-signed certificates. commit 2133a9886a45448d63001049b58e1c8f32f693c8 Author: Herman van Rink <rink@initfour.nl> Date: Mon Dec 5 21:26:55 2022 +0100 Revert unlimited quota check for email, dovecot forces this to be 0. commit 697ce3b608622aba11fefe55164ead5631685d33 Author: Herman van Rink <rink@initfour.nl> Date: Sun Dec 4 22:53:09 2022 +0100 PHP 8 strict fixes, #6419 commit 77ab6ddacfa5925f848ce6083d40258e36cec193 Author: Herman van Rink <rink@initfour.nl> Date: Sun Dec 4 20:53:59 2022 +0100 Mark usage column for php sorting, #6418 commit e11f336e42c2cef7901abc5d1327c7ac557d145f Author: Herman van Rink <rink@initfour.nl> Date: Sun Nov 27 22:51:13 2022 +0100 tabs commit 626ec513c3a81282cf2bb5e8158e8adfbeec1dff Author: Herman van Rink <rink@initfour.nl> Date: Sun Nov 27 22:36:55 2022 +0100 Unlimited quota is stored as -1, not zero, #6417 commit d0f92fc6a3c2fe3548f1a2b7957718a90678fba6 Merge: 7b15d049a d079b0133 Author: Till Brehm <tbrehm@ispconfig.org> Date: Thu Nov 24 18:53:18 2022 +0000 Merge branch 'develop' into 'develop' APS deletion follows symlink See merge request ispconfig/ispconfig3!1666 commit d079b01330a767f6c80e1d031af8eca3779a43d9 Author: clk <clk@teuto.net> Date: Thu Nov 24 13:27:32 2022 +0100 Fixed file deletion bug commit 502a66bbff10323f7d35e4655358468965e7bd67 Merge: 69c4da025 953772335 Author: Christian <chris@seeya.at> Date: Tue Nov 15 20:02:29 2022 +0000 Merge branch 'develop' into 'develop' # Conflicts: # install/dist/tpl/gentoo/apache_ispconfig.vhost.master commit 69c4da025798cf0147173c394a9f5b7822f2b7b8 Author: dachris1 <chris@seeya.at> Date: Tue Nov 15 20:12:06 2022 +0100 updated based on debian config install/tpl/gentoo_postfix.conf.master updated based on debian config commit f58ff87aad89fa72b3807d66b75058840bdd4fb0 Author: dachris1 <chris@seeya.at> Date: Tue Nov 15 20:11:18 2022 +0100 new config based on debian config added <IfModule mod_version.c> because gentoo has no mod version installed by default added <IfModule mod_proxy_fcgi.c> commit 98f84fedc3d8711a9722c34926c8a6ff973cfb12 Author: dachris1 <chris@seeya.at> Date: Tue Nov 15 20:05:37 2022 +0100 updated/added functions install/dist/lib/gentoo.lib.php updated functions: configure_postfix configure_dovecot install_ispconfig added configuration for pureftpd versions greater than 1.0.50 added function get_host_ips() because gentoo does not provide IPs with "hostname --all-ip-addresses" commit b81daafdcd18f4b8a3d0beebc8202160274156da Author: dachris1 <chris@seeya.at> Date: Tue Nov 15 20:01:29 2022 +0100 added gentoo specific code to keep symlinks in _getinitcommand server/lib/classes/system.inc.php added gentoo specific code to keep symlinks as init script. gentoo uses symlinks to start different php-fpm versions, but "realpath" kills these symlinks. commit bc0347285490ab6c2bc42fd7d45736b00598128f Author: Herman van Rink <rink@initfour.nl> Date: Fri Aug 19 17:00:16 2022 +0200 Restore onChange as an addition to OnPaste This could be refactorred into a function ... commit 6d437a507beca31dffa002bd9bb14df4d155c2d6 Author: Herman van Rink <rink@initfour.nl> Date: Wed Aug 17 21:04:51 2022 +0200 Convert onChange to OnPaste commit e5d54a6547d3af4c480eb6276f8c78907e97bc06 Author: Herman van Rink <rink@initfour.nl> Date: Sun Feb 27 23:25:32 2022 +0100 Paste email address to select mail domain --- .../autoinstall.conf_sample.php | 2 +- .../autoinstall.ini.sample | 2 +- install/dist/lib/gentoo.lib.php | 695 +++++++++++++----- .../tpl/gentoo/apache_ispconfig.vhost.master | 121 ++- install/lib/install.lib.php | 9 +- install/lib/installer_base.lib.php | 48 +- .../sql/incremental/upd_dev_collection.sql | 2 + install/sql/ispconfig3.sql | 2 +- install/tpl/gentoo_postfix.conf.master | 7 +- interface/lib/classes/db_mysql.inc.php | 13 +- .../lib/classes/listform_actions.inc.php | 2 +- interface/lib/classes/tform_base.inc.php | 6 +- interface/lib/lang/cn.lng | 178 +++++ interface/web/admin/lib/lang/cn.lng | 60 ++ .../admin/lib/lang/cn_directive_snippets.lng | 15 + .../lib/lang/cn_directive_snippets_list.lng | 8 + interface/web/admin/lib/lang/cn_firewall.lng | 11 + .../web/admin/lib/lang/cn_firewall_list.lng | 8 + interface/web/admin/lib/lang/cn_groups.lng | 5 + .../web/admin/lib/lang/cn_groups_list.lng | 7 + interface/web/admin/lib/lang/cn_iptables.lng | 15 + .../web/admin/lib/lang/cn_iptables_list.lng | 17 + .../web/admin/lib/lang/cn_language_add.lng | 8 + .../admin/lib/lang/cn_language_complete.lng | 7 + .../web/admin/lib/lang/cn_language_edit.lng | 8 + .../web/admin/lib/lang/cn_language_export.lng | 6 + .../web/admin/lib/lang/cn_language_import.lng | 9 + .../web/admin/lib/lang/cn_language_list.lng | 7 + .../web/admin/lib/lang/cn_package_install.lng | 7 + .../web/admin/lib/lang/cn_remote_action.lng | 12 + .../web/admin/lib/lang/cn_remote_user.lng | 52 ++ .../admin/lib/lang/cn_remote_user_list.lng | 7 + interface/web/admin/lib/lang/cn_server.lng | 16 + .../web/admin/lib/lang/cn_server_config.lng | 354 +++++++++ .../admin/lib/lang/cn_server_config_list.lng | 4 + interface/web/admin/lib/lang/cn_server_ip.lng | 13 + .../web/admin/lib/lang/cn_server_ip_list.lng | 10 + .../web/admin/lib/lang/cn_server_ip_map.lng | 14 + .../admin/lib/lang/cn_server_ip_map_list.lng | 7 + .../web/admin/lib/lang/cn_server_list.lng | 14 + .../web/admin/lib/lang/cn_server_php.lng | 20 + .../web/admin/lib/lang/cn_server_php_list.lng | 9 + .../web/admin/lib/lang/cn_system_config.lng | 110 +++ .../admin/lib/lang/cn_tpl_default_admin.lng | 18 + interface/web/admin/lib/lang/cn_users.lng | 42 ++ .../web/admin/lib/lang/cn_users_list.lng | 9 + interface/web/admin/list/firewall.list.php | 8 +- interface/web/admin/list/remote_user.list.php | 2 +- interface/web/admin/list/server_php.list.php | 3 + interface/web/admin/server_config_edit.php | 2 +- .../web/client/form/client_circle.tform.php | 5 +- interface/web/client/lib/lang/cn.lng | 31 + interface/web/client/lib/lang/cn_client.lng | 210 ++++++ .../web/client/lib/lang/cn_client_circle.lng | 9 + .../client/lib/lang/cn_client_circle_list.lng | 10 + .../web/client/lib/lang/cn_client_del.lng | 10 + .../web/client/lib/lang/cn_client_message.lng | 20 + .../lib/lang/cn_client_message_template.lng | 13 + .../lang/cn_client_message_template_list.lng | 5 + .../client/lib/lang/cn_client_template.lng | 131 ++++ .../lib/lang/cn_client_template_list.lng | 7 + .../web/client/lib/lang/cn_clients_list.lng | 14 + interface/web/client/lib/lang/cn_domain.lng | 6 + .../web/client/lib/lang/cn_domain_list.lng | 6 + interface/web/client/lib/lang/cn_reseller.lng | 216 ++++++ .../web/client/lib/lang/cn_resellers_list.lng | 11 + interface/web/client/list/domain.list.php | 2 +- .../client/templates/client_circle_edit.htm | 15 +- interface/web/dashboard/lib/lang/cn.lng | 4 + .../lib/lang/cn_dashlet_customer.lng | 4 + .../lib/lang/cn_dashlet_databasequota.lng | 7 + .../dashboard/lib/lang/cn_dashlet_donate.lng | 7 + .../cn_dashlet_invoice_client_settings.lng | 4 + .../lib/lang/cn_dashlet_invoices.lng | 18 + .../dashboard/lib/lang/cn_dashlet_limits.lng | 34 + .../lib/lang/cn_dashlet_mailquota.lng | 8 + .../dashboard/lib/lang/cn_dashlet_modules.lng | 4 + .../lib/lang/cn_dashlet_products.lng | 9 + .../dashboard/lib/lang/cn_dashlet_quota.lng | 8 + .../dashboard/lib/lang/cn_dashlet_shop.lng | 8 + interface/web/dns/dns_import.php | 6 +- interface/web/dns/form/dns_soa.tform.php | 1 + interface/web/dns/lib/lang/ar_dns_slave.lng | 2 +- interface/web/dns/lib/lang/ar_dns_soa.lng | 2 +- interface/web/dns/lib/lang/bg_dns_soa.lng | 2 +- interface/web/dns/lib/lang/cn.lng | 23 + interface/web/dns/lib/lang/cn_dns_a.lng | 17 + interface/web/dns/lib/lang/cn_dns_a_list.lng | 15 + interface/web/dns/lib/lang/cn_dns_aaaa.lng | 17 + interface/web/dns/lib/lang/cn_dns_alias.lng | 17 + interface/web/dns/lib/lang/cn_dns_caa.lng | 18 + interface/web/dns/lib/lang/cn_dns_cname.lng | 17 + interface/web/dns/lib/lang/cn_dns_dkim.lng | 13 + interface/web/dns/lib/lang/cn_dns_dmarc.lng | 50 ++ interface/web/dns/lib/lang/cn_dns_dname.lng | 17 + interface/web/dns/lib/lang/cn_dns_ds.lng | 18 + interface/web/dns/lib/lang/cn_dns_hinfo.lng | 16 + interface/web/dns/lib/lang/cn_dns_import.lng | 25 + interface/web/dns/lib/lang/cn_dns_loc.lng | 16 + interface/web/dns/lib/lang/cn_dns_mx.lng | 18 + interface/web/dns/lib/lang/cn_dns_naptr.lng | 21 + interface/web/dns/lib/lang/cn_dns_ns.lng | 16 + interface/web/dns/lib/lang/cn_dns_ptr.lng | 16 + interface/web/dns/lib/lang/cn_dns_rp.lng | 16 + interface/web/dns/lib/lang/cn_dns_slave.lng | 17 + .../dns/lib/lang/cn_dns_slave_admin_list.lng | 10 + .../web/dns/lib/lang/cn_dns_slave_list.lng | 9 + interface/web/dns/lib/lang/cn_dns_soa.lng | 47 ++ .../dns/lib/lang/cn_dns_soa_admin_list.lng | 12 + .../web/dns/lib/lang/cn_dns_soa_list.lng | 11 + interface/web/dns/lib/lang/cn_dns_spf.lng | 30 + interface/web/dns/lib/lang/cn_dns_srv.lng | 20 + interface/web/dns/lib/lang/cn_dns_sshfp.lng | 16 + .../web/dns/lib/lang/cn_dns_template.lng | 7 + .../web/dns/lib/lang/cn_dns_template_list.lng | 6 + interface/web/dns/lib/lang/cn_dns_tlsa.lng | 16 + interface/web/dns/lib/lang/cn_dns_txt.lng | 19 + interface/web/dns/lib/lang/cn_dns_wizard.lng | 45 ++ interface/web/dns/lib/lang/en_dns_slave.lng | 2 +- interface/web/dns/lib/lang/en_dns_soa.lng | 2 +- interface/web/dns/lib/lang/fi_dns_slave.lng | 2 +- interface/web/dns/lib/lang/hu_dns_slave.lng | 2 +- interface/web/dns/lib/lang/hu_dns_soa.lng | 2 +- interface/web/dns/lib/lang/ja_dns_slave.lng | 2 +- interface/web/dns/lib/lang/pt_dns_slave.lng | 2 +- interface/web/dns/lib/lang/ro_dns_slave.lng | 2 +- interface/web/dns/lib/lang/se_dns_slave.lng | 2 +- interface/web/dns/lib/lang/sk_dns_slave.lng | 2 +- interface/web/dns/list/dns_a.list.php | 8 +- interface/web/dns/list/dns_slave.list.php | 8 +- interface/web/dns/list/dns_soa.list.php | 18 +- .../web/dns/templates/dns_soa_admin_list.htm | 2 +- interface/web/dns/templates/dns_soa_list.htm | 2 +- interface/web/help/lib/lang/cn.lng | 15 + interface/web/help/lib/lang/cn_faq_form.lng | 6 + .../lib/lang/cn_faq_manage_questions_list.lng | 9 + .../help/lib/lang/cn_faq_sections_form.lng | 3 + .../web/help/lib/lang/cn_help_faq_list.lng | 3 + .../lib/lang/cn_help_faq_sections_list.lng | 8 + .../web/help/lib/lang/cn_support_message.lng | 16 + .../help/lib/lang/cn_support_message_list.lng | 7 + .../web/help/list/support_message.list.php | 2 +- interface/web/login/lib/lang/cn.lng | 43 ++ interface/web/login/lib/lang/cn_login_as.lng | 15 + interface/web/login/otp.php | 22 +- interface/web/mail/form/mail_domain.tform.php | 2 +- interface/web/mail/form/mail_user.tform.php | 2 +- interface/web/mail/lib/lang/ar.lng | 1 + interface/web/mail/lib/lang/bg.lng | 1 + interface/web/mail/lib/lang/br.lng | 1 + interface/web/mail/lib/lang/ca.lng | 1 + interface/web/mail/lib/lang/cn.lng | 52 ++ .../mail/lib/lang/cn_backup_stats_list.lng | 9 + interface/web/mail/lib/lang/cn_mail_alias.lng | 16 + .../web/mail/lib/lang/cn_mail_alias_list.lng | 8 + .../web/mail/lib/lang/cn_mail_aliasdomain.lng | 11 + .../lib/lang/cn_mail_aliasdomain_list.lng | 8 + .../web/mail/lib/lang/cn_mail_backup_list.lng | 16 + .../web/mail/lib/lang/cn_mail_blacklist.lng | 12 + .../mail/lib/lang/cn_mail_blacklist_list.lng | 10 + .../mail/lib/lang/cn_mail_content_filter.lng | 9 + .../lib/lang/cn_mail_content_filter_list.lng | 8 + .../web/mail/lib/lang/cn_mail_domain.lng | 25 + .../lib/lang/cn_mail_domain_admin_list.lng | 8 + .../mail/lib/lang/cn_mail_domain_catchall.lng | 14 + .../lib/lang/cn_mail_domain_catchall_list.lng | 9 + .../web/mail/lib/lang/cn_mail_domain_list.lng | 7 + .../web/mail/lib/lang/cn_mail_forward.lng | 15 + .../mail/lib/lang/cn_mail_forward_list.lng | 8 + interface/web/mail/lib/lang/cn_mail_get.lng | 19 + .../web/mail/lib/lang/cn_mail_get_list.lng | 9 + .../web/mail/lib/lang/cn_mail_mailinglist.lng | 23 + .../lib/lang/cn_mail_mailinglist_list.lng | 5 + .../mail/lib/lang/cn_mail_relay_domain.lng | 9 + .../lib/lang/cn_mail_relay_domain_list.lng | 7 + .../mail/lib/lang/cn_mail_relay_recipient.lng | 9 + .../lib/lang/cn_mail_relay_recipient_list.lng | 9 + .../web/mail/lib/lang/cn_mail_spamfilter.lng | 17 + .../mail/lib/lang/cn_mail_spamfilter_list.lng | 8 + .../web/mail/lib/lang/cn_mail_transport.lng | 11 + .../mail/lib/lang/cn_mail_transport_list.lng | 9 + interface/web/mail/lib/lang/cn_mail_user.lng | 77 ++ .../web/mail/lib/lang/cn_mail_user_filter.lng | 31 + .../lib/lang/cn_mail_user_filter_list.lng | 7 + .../web/mail/lib/lang/cn_mail_user_list.lng | 13 + .../mail/lib/lang/cn_mail_user_stats_list.lng | 8 + .../web/mail/lib/lang/cn_mail_whitelist.lng | 12 + .../mail/lib/lang/cn_mail_whitelist_list.lng | 10 + .../mail/lib/lang/cn_spamfilter_blacklist.lng | 12 + .../lib/lang/cn_spamfilter_blacklist_list.lng | 9 + .../mail/lib/lang/cn_spamfilter_config.lng | 20 + .../lib/lang/cn_spamfilter_config_list.lng | 5 + .../mail/lib/lang/cn_spamfilter_policy.lng | 51 ++ .../lib/lang/cn_spamfilter_policy_list.lng | 9 + .../web/mail/lib/lang/cn_spamfilter_users.lng | 13 + .../lib/lang/cn_spamfilter_users_list.lng | 10 + .../mail/lib/lang/cn_spamfilter_whitelist.lng | 12 + .../lib/lang/cn_spamfilter_whitelist_list.lng | 9 + .../lib/lang/cn_user_quota_stats_list.lng | 8 + .../web/mail/lib/lang/cn_xmpp_domain.lng | 62 ++ .../lib/lang/cn_xmpp_domain_admin_list.lng | 8 + .../web/mail/lib/lang/cn_xmpp_domain_list.lng | 7 + interface/web/mail/lib/lang/cn_xmpp_user.lng | 15 + .../web/mail/lib/lang/cn_xmpp_user_list.lng | 8 + interface/web/mail/lib/lang/cz.lng | 1 + interface/web/mail/lib/lang/de.lng | 1 + interface/web/mail/lib/lang/dk.lng | 1 + interface/web/mail/lib/lang/el.lng | 1 + interface/web/mail/lib/lang/en.lng | 1 + interface/web/mail/lib/lang/es.lng | 1 + interface/web/mail/lib/lang/fi.lng | 1 + interface/web/mail/lib/lang/fr.lng | 1 + interface/web/mail/lib/lang/hr.lng | 1 + interface/web/mail/lib/lang/hu.lng | 1 + interface/web/mail/lib/lang/id.lng | 1 + interface/web/mail/lib/lang/it.lng | 1 + interface/web/mail/lib/lang/ja.lng | 1 + interface/web/mail/lib/lang/nl.lng | 1 + interface/web/mail/lib/lang/pl.lng | 1 + interface/web/mail/lib/lang/pt.lng | 1 + interface/web/mail/lib/lang/ro.lng | 1 + interface/web/mail/lib/lang/ru.lng | 1 + interface/web/mail/lib/lang/se.lng | 1 + interface/web/mail/lib/lang/sk.lng | 1 + interface/web/mail/lib/lang/tr.lng | 1 + .../web/mail/list/mail_blacklist.list.php | 8 +- .../mail/list/mail_content_filter.list.php | 8 +- interface/web/mail/list/mail_domain.list.php | 2 +- interface/web/mail/list/mail_get.list.php | 8 +- .../web/mail/list/mail_relay_domain.list.php | 8 +- .../mail/list/mail_relay_recipient.list.php | 8 +- .../web/mail/list/mail_spamfilter.list.php | 8 +- .../web/mail/list/mail_transport.list.php | 8 +- .../web/mail/list/mail_whitelist.list.php | 8 +- .../mail/list/spamfilter_blacklist.list.php | 8 +- .../web/mail/list/spamfilter_users.list.php | 16 +- .../mail/list/spamfilter_whitelist.list.php | 16 +- interface/web/mail/list/xmpp_domain.list.php | 2 +- interface/web/mail/mail_user_edit.php | 5 +- .../mail/templates/mail_user_mailbox_edit.htm | 2 +- interface/web/mailuser/lib/lang/cn.lng | 9 + interface/web/mailuser/lib/lang/cn_index.lng | 12 + .../lib/lang/cn_mail_user_autoresponder.lng | 13 + .../web/mailuser/lib/lang/cn_mail_user_cc.lng | 11 + .../mailuser/lib/lang/cn_mail_user_filter.lng | 26 + .../lib/lang/cn_mail_user_filter_list.lng | 8 + .../lib/lang/cn_mail_user_password.lng | 11 + .../lib/lang/cn_mail_user_spamfilter.lng | 7 + interface/web/monitor/lib/lang/cn.lng | 168 +++++ .../web/monitor/lib/lang/cn_datalog_list.lng | 8 + .../lib/lang/cn_dataloghistory_list.lng | 9 + .../lib/lang/cn_dataloghistory_undo.lng | 7 + .../lib/lang/cn_dataloghistory_view.lng | 27 + .../web/monitor/lib/lang/cn_syslog_list.lng | 10 + interface/web/sites/database_edit.php | 4 +- .../web/sites/form/web_childdomain.tform.php | 2 +- .../web/sites/form/web_vhost_domain.tform.php | 2 +- interface/web/sites/lib/lang/cn.lng | 35 + interface/web/sites/lib/lang/cn_aps.lng | 63 ++ .../sites/lib/lang/cn_aps_instances_list.lng | 11 + .../sites/lib/lang/cn_aps_packages_list.lng | 8 + .../lib/lang/cn_aps_update_packagelist.lng | 7 + .../sites/lib/lang/cn_backup_stats_list.lng | 10 + interface/web/sites/lib/lang/cn_cron.lng | 26 + interface/web/sites/lib/lang/cn_cron_list.lng | 13 + interface/web/sites/lib/lang/cn_database.lng | 50 ++ .../sites/lib/lang/cn_database_admin_list.lng | 12 + .../web/sites/lib/lang/cn_database_list.lng | 11 + .../lib/lang/cn_database_quota_stats_list.lng | 9 + .../web/sites/lib/lang/cn_database_user.lng | 25 + .../lib/lang/cn_database_user_admin_list.lng | 6 + .../sites/lib/lang/cn_database_user_list.lng | 5 + .../lib/lang/cn_ftp_sites_stats_list.lng | 10 + interface/web/sites/lib/lang/cn_ftp_user.lng | 36 + .../web/sites/lib/lang/cn_ftp_user_list.lng | 8 + .../web/sites/lib/lang/cn_shell_user.lng | 36 + .../web/sites/lib/lang/cn_shell_user_list.lng | 8 + .../lib/lang/cn_user_quota_stats_list.lng | 10 + .../web/sites/lib/lang/cn_web_aliasdomain.lng | 118 +++ .../lib/lang/cn_web_aliasdomain_list.lng | 14 + .../web/sites/lib/lang/cn_web_backup_list.lng | 54 ++ .../web/sites/lib/lang/cn_web_childdomain.lng | 124 ++++ .../lib/lang/cn_web_childdomain_list.lng | 18 + .../lib/lang/cn_web_directive_snippets.lng | 3 + .../web/sites/lib/lang/cn_web_domain.lng | 141 ++++ .../lib/lang/cn_web_domain_admin_list.lng | 9 + .../web/sites/lib/lang/cn_web_domain_list.lng | 8 + .../web/sites/lib/lang/cn_web_folder.lng | 8 + .../web/sites/lib/lang/cn_web_folder_list.lng | 8 + .../web/sites/lib/lang/cn_web_folder_user.lng | 14 + .../lib/lang/cn_web_folder_user_list.lng | 7 + .../lib/lang/cn_web_sites_stats_list.lng | 10 + .../web/sites/lib/lang/cn_web_subdomain.lng | 54 ++ .../sites/lib/lang/cn_web_subdomain_list.lng | 8 + .../sites/lib/lang/cn_web_vhost_domain.lng | 209 ++++++ .../lang/cn_web_vhost_domain_admin_list.lng | 14 + .../lib/lang/cn_web_vhost_domain_list.lng | 14 + .../sites/lib/lang/cn_web_vhost_subdomain.lng | 136 ++++ .../lib/lang/cn_web_vhost_subdomain_list.lng | 8 + .../web/sites/lib/lang/cn_webdav_user.lng | 21 + .../sites/lib/lang/cn_webdav_user_list.lng | 8 + interface/web/sites/list/cron.list.php | 10 +- interface/web/sites/list/database.list.php | 8 +- interface/web/sites/list/ftp_user.list.php | 8 +- interface/web/sites/list/shell_user.list.php | 10 +- .../web/sites/list/web_childdomain.list.php | 6 +- interface/web/sites/list/web_folder.list.php | 10 +- .../web/sites/list/web_folder_user.list.php | 2 +- interface/web/sites/list/webdav_user.list.php | 10 +- .../lib/lang/cn_strengthmeter.lng | 8 + interface/web/tools/lib/lang/cn.lng | 13 + .../tools/lib/lang/cn_import_ispconfig.lng | 25 + .../web/tools/lib/lang/cn_import_vpopmail.lng | 8 + interface/web/tools/lib/lang/cn_index.lng | 4 + interface/web/tools/lib/lang/cn_resync.lng | 53 ++ .../web/tools/lib/lang/cn_tpl_default.lng | 7 + .../web/tools/lib/lang/cn_usersettings.lng | 20 + interface/web/vm/lib/lang/cn.lng | 7 + .../web/vm/lib/lang/cn_openvz_action.lng | 17 + interface/web/vm/lib/lang/cn_openvz_ip.lng | 9 + .../web/vm/lib/lang/cn_openvz_ip_list.lng | 7 + .../web/vm/lib/lang/cn_openvz_ostemplate.lng | 10 + .../vm/lib/lang/cn_openvz_ostemplate_list.lng | 8 + .../web/vm/lib/lang/cn_openvz_template.lng | 97 +++ interface/web/vm/lib/lang/cn_openvz_vm.lng | 45 ++ .../web/vm/lib/lang/cn_openvz_vm_list.lng | 10 + interface/web/vm/list/openvz_ip.list.php | 8 +- .../web/vm/list/openvz_ostemplate.list.php | 4 +- interface/web/vm/list/openvz_vm.list.php | 4 +- .../API-docs/monitor_jobqueue_count.html | 27 + .../examples/sites_web_domain_get.php | 5 + server/conf/vhost.conf.master | 2 +- server/lib/classes/aps_installer.inc.php | 2 +- server/lib/classes/backup.inc.php | 11 +- .../classes/cron.d/200-ftplogfiles.inc.php | 14 +- .../classes/cron.d/300-quota_notify.inc.php | 75 +- server/lib/classes/db_mysql.inc.php | 7 +- server/lib/classes/file.inc.php | 3 +- server/lib/classes/letsencrypt.inc.php | 5 + server/lib/classes/modules.inc.php | 2 +- server/lib/classes/services.inc.php | 2 +- server/lib/classes/system.inc.php | 30 + .../plugins-available/apache2_plugin.inc.php | 17 +- server/plugins-available/bind_plugin.inc.php | 2 +- server/plugins-available/mail_plugin.inc.php | 4 +- .../mail_plugin_dkim.inc.php | 2 +- .../mongo_clientdb_plugin.inc.php~ | 30 +- .../mysql_clientdb_plugin.inc.php | 40 +- server/plugins-available/nginx_plugin.inc.php | 26 +- .../plugins-available/rspamd_plugin.inc.php | 4 +- .../shelluser_base_plugin.inc.php | 11 +- .../shelluser_jailkit_plugin.inc.php | 8 +- server/server.sh | 4 +- 353 files changed, 6600 insertions(+), 540 deletions(-) create mode 100644 interface/lib/lang/cn.lng create mode 100644 interface/web/admin/lib/lang/cn.lng create mode 100644 interface/web/admin/lib/lang/cn_directive_snippets.lng create mode 100644 interface/web/admin/lib/lang/cn_directive_snippets_list.lng create mode 100644 interface/web/admin/lib/lang/cn_firewall.lng create mode 100644 interface/web/admin/lib/lang/cn_firewall_list.lng create mode 100644 interface/web/admin/lib/lang/cn_groups.lng create mode 100644 interface/web/admin/lib/lang/cn_groups_list.lng create mode 100644 interface/web/admin/lib/lang/cn_iptables.lng create mode 100644 interface/web/admin/lib/lang/cn_iptables_list.lng create mode 100644 interface/web/admin/lib/lang/cn_language_add.lng create mode 100644 interface/web/admin/lib/lang/cn_language_complete.lng create mode 100644 interface/web/admin/lib/lang/cn_language_edit.lng create mode 100644 interface/web/admin/lib/lang/cn_language_export.lng create mode 100644 interface/web/admin/lib/lang/cn_language_import.lng create mode 100644 interface/web/admin/lib/lang/cn_language_list.lng create mode 100644 interface/web/admin/lib/lang/cn_package_install.lng create mode 100644 interface/web/admin/lib/lang/cn_remote_action.lng create mode 100644 interface/web/admin/lib/lang/cn_remote_user.lng create mode 100644 interface/web/admin/lib/lang/cn_remote_user_list.lng create mode 100644 interface/web/admin/lib/lang/cn_server.lng create mode 100644 interface/web/admin/lib/lang/cn_server_config.lng create mode 100644 interface/web/admin/lib/lang/cn_server_config_list.lng create mode 100644 interface/web/admin/lib/lang/cn_server_ip.lng create mode 100644 interface/web/admin/lib/lang/cn_server_ip_list.lng create mode 100644 interface/web/admin/lib/lang/cn_server_ip_map.lng create mode 100644 interface/web/admin/lib/lang/cn_server_ip_map_list.lng create mode 100644 interface/web/admin/lib/lang/cn_server_list.lng create mode 100644 interface/web/admin/lib/lang/cn_server_php.lng create mode 100644 interface/web/admin/lib/lang/cn_server_php_list.lng create mode 100644 interface/web/admin/lib/lang/cn_system_config.lng create mode 100644 interface/web/admin/lib/lang/cn_tpl_default_admin.lng create mode 100644 interface/web/admin/lib/lang/cn_users.lng create mode 100644 interface/web/admin/lib/lang/cn_users_list.lng create mode 100644 interface/web/client/lib/lang/cn.lng create mode 100644 interface/web/client/lib/lang/cn_client.lng create mode 100644 interface/web/client/lib/lang/cn_client_circle.lng create mode 100644 interface/web/client/lib/lang/cn_client_circle_list.lng create mode 100644 interface/web/client/lib/lang/cn_client_del.lng create mode 100644 interface/web/client/lib/lang/cn_client_message.lng create mode 100644 interface/web/client/lib/lang/cn_client_message_template.lng create mode 100644 interface/web/client/lib/lang/cn_client_message_template_list.lng create mode 100644 interface/web/client/lib/lang/cn_client_template.lng create mode 100644 interface/web/client/lib/lang/cn_client_template_list.lng create mode 100644 interface/web/client/lib/lang/cn_clients_list.lng create mode 100644 interface/web/client/lib/lang/cn_domain.lng create mode 100644 interface/web/client/lib/lang/cn_domain_list.lng create mode 100644 interface/web/client/lib/lang/cn_reseller.lng create mode 100644 interface/web/client/lib/lang/cn_resellers_list.lng create mode 100644 interface/web/dashboard/lib/lang/cn.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_customer.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_databasequota.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_donate.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_invoice_client_settings.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_invoices.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_limits.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_mailquota.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_modules.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_products.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_quota.lng create mode 100644 interface/web/dashboard/lib/lang/cn_dashlet_shop.lng create mode 100644 interface/web/dns/lib/lang/cn.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_a.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_a_list.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_aaaa.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_alias.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_cname.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_dkim.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_dmarc.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_dname.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_ds.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_hinfo.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_import.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_loc.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_mx.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_naptr.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_ns.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_ptr.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_rp.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_slave.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_slave_list.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_soa.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_soa_list.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_spf.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_srv.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_sshfp.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_template.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_template_list.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_tlsa.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_txt.lng create mode 100644 interface/web/dns/lib/lang/cn_dns_wizard.lng create mode 100644 interface/web/help/lib/lang/cn.lng create mode 100644 interface/web/help/lib/lang/cn_faq_form.lng create mode 100644 interface/web/help/lib/lang/cn_faq_manage_questions_list.lng create mode 100644 interface/web/help/lib/lang/cn_faq_sections_form.lng create mode 100644 interface/web/help/lib/lang/cn_help_faq_list.lng create mode 100644 interface/web/help/lib/lang/cn_help_faq_sections_list.lng create mode 100644 interface/web/help/lib/lang/cn_support_message.lng create mode 100644 interface/web/help/lib/lang/cn_support_message_list.lng create mode 100644 interface/web/login/lib/lang/cn.lng create mode 100644 interface/web/login/lib/lang/cn_login_as.lng create mode 100644 interface/web/mail/lib/lang/cn.lng create mode 100644 interface/web/mail/lib/lang/cn_backup_stats_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_alias.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_alias_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_aliasdomain.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_aliasdomain_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_backup_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_blacklist.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_blacklist_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_content_filter.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_content_filter_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_domain.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_domain_admin_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_domain_catchall.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_domain_catchall_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_domain_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_forward.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_forward_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_get.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_get_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_mailinglist.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_mailinglist_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_relay_domain.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_relay_domain_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_relay_recipient.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_relay_recipient_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_spamfilter.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_spamfilter_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_transport.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_transport_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_user.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_user_filter.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_user_filter_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_user_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_user_stats_list.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_whitelist.lng create mode 100644 interface/web/mail/lib/lang/cn_mail_whitelist_list.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_blacklist.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_blacklist_list.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_config.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_config_list.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_policy.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_policy_list.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_users.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_users_list.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_whitelist.lng create mode 100644 interface/web/mail/lib/lang/cn_spamfilter_whitelist_list.lng create mode 100644 interface/web/mail/lib/lang/cn_user_quota_stats_list.lng create mode 100644 interface/web/mail/lib/lang/cn_xmpp_domain.lng create mode 100644 interface/web/mail/lib/lang/cn_xmpp_domain_admin_list.lng create mode 100644 interface/web/mail/lib/lang/cn_xmpp_domain_list.lng create mode 100644 interface/web/mail/lib/lang/cn_xmpp_user.lng create mode 100644 interface/web/mail/lib/lang/cn_xmpp_user_list.lng create mode 100644 interface/web/mailuser/lib/lang/cn.lng create mode 100644 interface/web/mailuser/lib/lang/cn_index.lng create mode 100644 interface/web/mailuser/lib/lang/cn_mail_user_autoresponder.lng create mode 100644 interface/web/mailuser/lib/lang/cn_mail_user_cc.lng create mode 100644 interface/web/mailuser/lib/lang/cn_mail_user_filter.lng create mode 100644 interface/web/mailuser/lib/lang/cn_mail_user_filter_list.lng create mode 100644 interface/web/mailuser/lib/lang/cn_mail_user_password.lng create mode 100644 interface/web/mailuser/lib/lang/cn_mail_user_spamfilter.lng create mode 100644 interface/web/monitor/lib/lang/cn.lng create mode 100644 interface/web/monitor/lib/lang/cn_datalog_list.lng create mode 100644 interface/web/monitor/lib/lang/cn_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/cn_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/cn_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/cn_syslog_list.lng create mode 100644 interface/web/sites/lib/lang/cn.lng create mode 100644 interface/web/sites/lib/lang/cn_aps.lng create mode 100644 interface/web/sites/lib/lang/cn_aps_instances_list.lng create mode 100644 interface/web/sites/lib/lang/cn_aps_packages_list.lng create mode 100644 interface/web/sites/lib/lang/cn_aps_update_packagelist.lng create mode 100644 interface/web/sites/lib/lang/cn_backup_stats_list.lng create mode 100644 interface/web/sites/lib/lang/cn_cron.lng create mode 100644 interface/web/sites/lib/lang/cn_cron_list.lng create mode 100644 interface/web/sites/lib/lang/cn_database.lng create mode 100644 interface/web/sites/lib/lang/cn_database_admin_list.lng create mode 100644 interface/web/sites/lib/lang/cn_database_list.lng create mode 100644 interface/web/sites/lib/lang/cn_database_quota_stats_list.lng create mode 100644 interface/web/sites/lib/lang/cn_database_user.lng create mode 100644 interface/web/sites/lib/lang/cn_database_user_admin_list.lng create mode 100644 interface/web/sites/lib/lang/cn_database_user_list.lng create mode 100644 interface/web/sites/lib/lang/cn_ftp_sites_stats_list.lng create mode 100644 interface/web/sites/lib/lang/cn_ftp_user.lng create mode 100644 interface/web/sites/lib/lang/cn_ftp_user_list.lng create mode 100644 interface/web/sites/lib/lang/cn_shell_user.lng create mode 100644 interface/web/sites/lib/lang/cn_shell_user_list.lng create mode 100644 interface/web/sites/lib/lang/cn_user_quota_stats_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/cn_web_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_backup_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_childdomain.lng create mode 100644 interface/web/sites/lib/lang/cn_web_childdomain_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_directive_snippets.lng create mode 100644 interface/web/sites/lib/lang/cn_web_domain.lng create mode 100644 interface/web/sites/lib/lang/cn_web_domain_admin_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_domain_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_folder.lng create mode 100644 interface/web/sites/lib/lang/cn_web_folder_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_folder_user.lng create mode 100644 interface/web/sites/lib/lang/cn_web_folder_user_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_sites_stats_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_subdomain.lng create mode 100644 interface/web/sites/lib/lang/cn_web_subdomain_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_vhost_domain.lng create mode 100644 interface/web/sites/lib/lang/cn_web_vhost_domain_admin_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_vhost_domain_list.lng create mode 100644 interface/web/sites/lib/lang/cn_web_vhost_subdomain.lng create mode 100644 interface/web/sites/lib/lang/cn_web_vhost_subdomain_list.lng create mode 100644 interface/web/sites/lib/lang/cn_webdav_user.lng create mode 100644 interface/web/sites/lib/lang/cn_webdav_user_list.lng create mode 100644 interface/web/strengthmeter/lib/lang/cn_strengthmeter.lng create mode 100644 interface/web/tools/lib/lang/cn.lng create mode 100644 interface/web/tools/lib/lang/cn_import_ispconfig.lng create mode 100644 interface/web/tools/lib/lang/cn_import_vpopmail.lng create mode 100644 interface/web/tools/lib/lang/cn_index.lng create mode 100644 interface/web/tools/lib/lang/cn_resync.lng create mode 100644 interface/web/tools/lib/lang/cn_tpl_default.lng create mode 100644 interface/web/tools/lib/lang/cn_usersettings.lng create mode 100644 interface/web/vm/lib/lang/cn.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_action.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_ip.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_ip_list.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_ostemplate.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_ostemplate_list.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_template.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_vm.lng create mode 100644 interface/web/vm/lib/lang/cn_openvz_vm_list.lng create mode 100644 remoting_client/API-docs/monitor_jobqueue_count.html diff --git a/docs/autoinstall_samples/autoinstall.conf_sample.php b/docs/autoinstall_samples/autoinstall.conf_sample.php index c8bf209f9f..c8c374e4f0 100644 --- a/docs/autoinstall_samples/autoinstall.conf_sample.php +++ b/docs/autoinstall_samples/autoinstall.conf_sample.php @@ -61,7 +61,7 @@ $autoupdate['ignore_hostname_dns'] = 'n'; $autoupdate['ispconfig_postfix_ssl_symlink'] = 'y'; $autoupdate['ispconfig_pureftpd_ssl_symlink'] = 'y'; -/* These are for service-detection (defaulting to old behaviour where alle changes were automatically accepted) */ +/* These are for service-detection (defaulting to old behaviour where all changes were automatically accepted) */ $autoupdate['svc_detect_change_mail_server'] = 'yes'; // yes (default), no $autoupdate['svc_detect_change_web_server'] = 'yes'; // yes (default), no $autoupdate['svc_detect_change_dns_server'] = 'yes'; // yes (default), no diff --git a/docs/autoinstall_samples/autoinstall.ini.sample b/docs/autoinstall_samples/autoinstall.ini.sample index bf47122074..9251d1eef0 100644 --- a/docs/autoinstall_samples/autoinstall.ini.sample +++ b/docs/autoinstall_samples/autoinstall.ini.sample @@ -60,7 +60,7 @@ ignore_hostname_dns=n ispconfig_postfix_ssl_symlink=y ispconfig_pureftpd_ssl_symlink=y -; These are for service-detection (defaulting to old behaviour where alle changes were automatically accepted) +; These are for service-detection (defaulting to old behaviour where all changes were automatically accepted) svc_detect_change_mail_server=yes svc_detect_change_web_server=yes svc_detect_change_dns_server=yes diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index c98788e33c..8c942f2491 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -47,8 +47,7 @@ class installer extends installer_base caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } - public function configure_postfix($options = '') - { + public function configure_postfix($options = '') { global $conf,$autoinstall; $cf = $conf['postfix']; @@ -57,6 +56,11 @@ class installer extends installer_base if(!is_dir($config_dir)){ $this->error("The postfix configuration directory '$config_dir' does not exist."); } + + //* Get postfix version + exec('postconf -d mail_version 2>&1', $out); + $postfix_version = preg_replace('/.*=\s*/', '', $out[0]); + unset($out); //* Install virtual mappings foreach (glob('tpl/mysql-virtual_*.master') as $filename) { @@ -65,30 +69,48 @@ class installer extends installer_base //* mysql-verify_recipients.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 o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', + /*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'); + __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"); - } + if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'useradd -g '.$cf['vmail_groupname'].' -u '.$cf['vmail_userid'].' '.$cf['vmail_username'].' -d '.$cf['vmail_mailbox_base'].' -m'; - if (!is_user($cf['vmail_username'])) { - caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } + if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* 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); - //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update + //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removal after an update $rbl_list = ''; if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') { $rbl_hosts = explode(",", str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list'])); @@ -107,7 +129,7 @@ class installer extends installer_base $reject_sender_login_mismatch = ''; $reject_authenticated_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_sender_login_mismatch'; + $reject_sender_login_mismatch = ',reject_sender_login_mismatch,'; $reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, '; } @@ -145,7 +167,42 @@ class installer extends installer_base $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_postfix.conf.master', 'tpl/gentoo_postfix.conf.master'); $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders); $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines - + + //* Merge version-specific postfix config + if(version_compare($postfix_version , '2.5', '>=')) { + $configfile = 'postfix_2-5.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + if(version_compare($postfix_version , '2.10', '>=')) { + $configfile = 'postfix_2-10.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + if(version_compare($postfix_version , '3.0', '>=')) { + $configfile = 'postfix_3-0.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + if(version_compare($postfix_version , '3.3', '>=')) { + $configfile = 'postfix_3-3.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + $configfile = 'postfix_custom.conf'; + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/' . $configfile . '.master')) { + $content = file_get_contents($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + + // Remove comment lines, these would give fatal errors when passed to postconf. + $postconf_commands = array_filter($postconf_commands, function($line) { return preg_match('/^[^#]/', $line); }); + //* These postconf commands will be executed on installation only if($this->is_update == false) { $postconf_commands = array_merge($postconf_commands, array( @@ -161,6 +218,15 @@ class installer extends installer_base touch($config_dir.'/nested_header_checks'); touch($config_dir.'/body_checks'); touch($config_dir.'/sasl_passwd'); + + //* Create the mailman files + if(!is_dir('/var/lib/mailman/data')) exec('mkdir -p /var/lib/mailman/data'); + if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases'); + exec('postalias /var/lib/mailman/data/aliases'); + if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/var/lib/mailman/data/virtual-mailman'); + exec('postmap /var/lib/mailman/data/virtual-mailman'); + if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); + exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); //* Create auxillary postfix conf files $configfile = 'helo_access'; @@ -189,13 +255,13 @@ class installer extends installer_base //* Executing the postconf commands foreach($postconf_commands as $cmd) { $command = "postconf -e '$cmd'"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + swriteln($command); + caselog($command." &> /dev/null", __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); } - - //* Create the SSL certificate - if (!stristr($options, 'dont-create-certs')) - { - if(AUTOINSTALL){ + + if (!stristr($options, 'dont-create-certs')){ + //* Create the SSL certificate + if(AUTOINSTALL){ $command = 'cd '.$config_dir.'; ' ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; } else { @@ -208,58 +274,59 @@ class installer extends installer_base caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); } - //* We have to change the permissions of the courier authdaemon directory to make it accessible for maildrop. - $command = 'chmod 755 /var/lib/courier/authdaemon/'; - if (is_dir('/var/lib/courier/authdaemon')) { - caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - } + //** We have to change the permissions of the courier authdaemon directory to make it accessible for maildrop. + $command = 'chmod 755 /var/run/courier/authdaemon/'; + if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - //* Changing maildrop lines in posfix master.cf + //* Check maildrop service in posfix master.cf + $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'; - $content = rf($configfile); - - $content = preg_replace('/^#?maildrop/m', 'maildrop', $content); - $content = preg_replace('/^#?(\s+)flags=DRhu user=vmail argv=\/usr\/bin\/maildrop -d/m', - '$1flags=DRhu user=vmail argv=/usr/bin/maildrop -d vmail \${extension} \${recipient} \${user} \${nexthop} \${sender}', - $content); - - $this->write_config_file($configfile, $content); - - //* Writing the Maildrop mailfilter file - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailfilter.master', 'tpl/mailfilter.master'); + if($this->get_postfix_service('maildrop', 'unix')) { + 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("/$quoted_regex/", $configfile))?false:true; + } + if ($change_maildrop_flags) { + //* Change maildrop service in posfix master.cf + if(is_file($config_dir.'/master.cf')) { + copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); + } + if(is_file($config_dir.'/master.cf~')) { + chmod($config_dir.'/master.cf~', 0400); + } + $configfile = $config_dir.'/master.cf'; + $content = rf($configfile); + $content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}', + 'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', + $content); + wf($configfile, $content); + } + + //* Writing the Maildrop mailfilter file + $configfile = 'mailfilter'; + if(is_file($cf['vmail_mailbox_base'].'/.'.$configfile)) { + copy($cf['vmail_mailbox_base'].'/.'.$configfile, $cf['vmail_mailbox_base'].'/.'.$configfile.'~'); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content); - - $this->write_config_file($cf['vmail_mailbox_base'].'/.mailfilter', $content); + wf($cf['vmail_mailbox_base'].'/.'.$configfile, $content); //* Create the directory for the custom mailfilters - if (!is_dir($cf['vmail_mailbox_base'].'/mailfilters')) - { + if(!is_dir($cf['vmail_mailbox_base'].'/mailfilters')) { $command = 'mkdir '.$cf['vmail_mailbox_base'].'/mailfilters'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* 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'); - 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'); - wf($full_file_name, $content); + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } //* Chmod and chown the .mailfilter file - $command = 'chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base'].'/.mailfilter'; + $command = 'chown '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base'].'/.mailfilter'; caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chmod -R 600 '.$cf['vmail_mailbox_base'].'/.mailfilter'; + $command = 'chmod 600 '.$cf['vmail_mailbox_base'].'/.mailfilter'; caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } - + public function configure_saslauthd() { global $conf; @@ -297,17 +364,21 @@ class installer extends installer_base caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } - public function configure_dovecot() - { + 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') || is_file('/usr/libexec/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']); + $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() @@ -318,10 +389,13 @@ class installer extends 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')) { - //* backup + //* backup if(is_file($config_dir.'/master.cf')){ copy($config_dir.'/master.cf', $config_dir.'/master.cf~2'); } @@ -329,14 +403,15 @@ class installer extends 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'); - $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DROhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n"; + $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); unset($deliver_content); } //* 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, @@ -344,25 +419,44 @@ class installer extends installer_base 'smtpd_sasl_path = private/auth' ); - //* Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~3'); + // Make a backup copy of the main.cf file + copy($config_dir.'/main.cf', $config_dir.'/main.cf~3'); - //* Executing the postconf commands - foreach($postconf_commands as $cmd) - { + $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 && $conf['mail']['content_filter'] === 'amavisd') { + 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"; + } + } + $postconf_commands[] = "smtpd_recipient_restrictions = ".implode(", ", $new_options); + + // Executing the postconf commands + foreach($postconf_commands as $cmd) { $command = "postconf -e '$cmd'"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } + //* backup dovecot.conf $config_dir = $conf['dovecot']['config_dir']; - //* copy dovecot.conf - $configfile = $config_dir.'/dovecot.conf'; - $content = $this->get_template_file('dovecot.conf', true); - $this->write_config_file($configfile, $content); - - //* dovecot-lmtpd - if($configure_lmtp) { - replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + $configfile = 'dovecot.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); } //* Get the dovecot version @@ -370,15 +464,112 @@ class installer extends installer_base $dovecot_version = $tmp[0]; unset($tmp); + //* Copy dovecot configuration file + if(version_compare($dovecot_version,1, '<=')) { //* Dovecot 1.x + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_dovecot.conf.master')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_dovecot.conf.master', $config_dir.'/'.$configfile); + } else { + copy('dist/tpl/gentoo/dovecot.conf.master', $config_dir.'/'.$configfile); + } + } else { //* Dovecot 2.x + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_dovecot2.conf.master')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_dovecot2.conf.master', $config_dir.'/'.$configfile); + } else { + copy('dist/tpl/gentoo/dovecot2.conf.master', $config_dir.'/'.$configfile); + } + // Copy custom config file + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/dovecot_custom.conf.master')) { + if(!@is_dir($config_dir . '/conf.d')) { + mkdir($config_dir . '/conf.d'); + } + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/dovecot_custom.conf.master', $config_dir.'/conf.d/99-ispconfig-custom-config.conf'); + } + 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); + if(version_compare($dovecot_version, 2.1, '<')) { + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + } + if(version_compare($dovecot_version,2.2) >= 0) { + // Dovecot > 2.2 does not recognize !SSLv2 anymore on Debian 9 + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('!SSLv2','',$content); + 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) { + $dovecot_protocols .= ' lmtp'; + } + + //* dovecot-managesieved + if(is_file('/usr/lib/dovecot/managesieve') || is_file('/usr/libexec/dovecot/managesieve')) { + $dovecot_protocols .= ' sieve'; + } + + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', "protocols = $dovecot_protocols", 1, 0); + //* dovecot-sql.conf - $configfile = $config_dir.'/dovecot-sql.conf'; - $content = $this->get_template_file('debian_dovecot-sql.conf', true, true); + $configfile = 'dovecot-sql.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + if(is_file($config_dir.'/'.$configfile.'~')) chmod($config_dir.'/'.$configfile.'~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot-sql.conf.master', 'tpl/debian_dovecot-sql.conf.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); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); # enable iterate_query for dovecot2 if(version_compare($dovecot_version,2, '>=')) { $content = str_replace('# iterate_query', 'iterate_query', $content); } - $content = str_replace('{server_id}', $conf['server_id'], $content); - $this->write_config_file($configfile, $content); + wf($config_dir.'/'.$configfile, $content); + + 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"); + } public function configure_spamassassin() @@ -515,6 +706,36 @@ class installer extends installer_base $content = preg_replace('/MISC_OTHER="[^"]+"/', 'MISC_OTHER="-b -A -E -Z -D -H -O clf:'.$logdir.'/transfer.log'.$enable_tls.'"', $content); $this->write_config_file($conf['pureftpd']['config_file'], $content); + + //* Since version 1.0.50: Configuration through /etc/conf.d/pure-ftpd is now deprecated! + exec("/usr/sbin/pure-ftpd --help | head -1",$out); + if(preg_match("#v([0-9\.]+)\s#",$out[0],$matches)){ + $pureftpd_version = $matches[1]; + + if(version_compare($pureftpd_version, '1.0.50', '>=')) { + $configfile = $conf['pureftpd']['main_config_file']; + if(is_file($configfile)) { + copy($configfile, $configfile.'~'); + } + + $content = rf($configfile); + $content = preg_replace('/BrokenClientsCompatibility\s+(yes|no)/', 'BrokenClientsCompatibility yes', $content); + $content = preg_replace('/ChrootEveryone\s+(yes|no)/', 'ChrootEveryone yes', $content); + $content = preg_replace('/NoAnonymous\s+(yes|no)/', 'NoAnonymous yes', $content); + $content = preg_replace('/#? AltLog\s+clf.*\s/', 'AltLog clf:/var/log/pureftpd.log', $content); + $content = preg_replace('/CustomerProof\s+(yes|no)/', 'CustomerProof yes', $content); + $content = preg_replace('/DisplayDotFiles\s+(yes|no)/', 'DisplayDotFiles yes', $content); + $content = preg_replace('/DontResolve\s+(yes|no)/', 'DontResolve yes', $content); + $content = preg_replace('/#? MySQLConfigFile\s+\/.*\s/', 'MySQLConfigFile ' . $conf['pureftpd']['mysql_config_file'], $content); + + if(file_exists('/etc/ssl/private/pure-ftpd.pem')) { + $content = preg_replace('/(#?) TLS\s+(0|1)/', 'TLS 1', $content); + } + + wf($configfile, $content); + } + } + } public function configure_powerdns() @@ -845,39 +1066,46 @@ class installer extends installer_base } } + + public function get_host_ips() { + $out = array(); + exec("ip addr show | awk '/global/ { print $2 }' | cut -d '/' -f 1", $ret, $val); + if($val == 0) { + if(is_array($ret) && !empty($ret)){ + foreach($ret as $ip) { + $ip = trim($ip); + $out[] = $ip; + } + } + } - public function install_ispconfig() - { + return $out; + } + + public function install_ispconfig() { global $conf; $install_dir = $conf['ispconfig_install_dir']; //* Create the ISPConfig installation directory - if(!is_dir($install_dir)) - { + if(!@is_dir($install_dir)) { $command = "mkdir $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } //* Create a ISPConfig user and group - if (!is_group('ispconfig')) - { - $command = 'groupadd ispconfig'; - caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } + $command = 'groupadd ispconfig'; + if(!is_group('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - if (!is_user('ispconfig')) - { - $command = "useradd -g ispconfig -d $install_dir ispconfig"; - caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } + $command = 'useradd -g ispconfig -d '.$install_dir.' ispconfig'; + if(!is_user('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* copy the ISPConfig interface part - $command = "cp -rf ../interface $install_dir"; + $command = 'cp -rf ../interface '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* copy the ISPConfig server part - $command = "cp -rf ../server $install_dir"; + $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 @@ -887,28 +1115,29 @@ class installer extends installer_base $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 + // $command = "ln -s $install_dir/interface/web/ /var/www/ispconfig"; + // caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Create the config file for ISPConfig interface $configfile = 'config.inc.php'; - $content = $this->get_template_file($configfile, true, true); //* get contents & insert db cred + if(is_file($install_dir.'/interface/lib/'.$configfile)) { + copy($install_dir.'/interface/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); + } + $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); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); @@ -923,10 +1152,34 @@ class installer extends installer_base $content = str_replace('{theme}', $conf['theme'], $content); $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content); - $this->write_config_file("$install_dir/interface/lib/$configfile", $content); + wf($install_dir.'/interface/lib/'.$configfile, $content); //* Create the config file for ISPConfig server - $this->write_config_file("$install_dir/server/lib/$configfile", $content); + $configfile = 'config.inc.php'; + if(is_file($install_dir.'/server/lib/'.$configfile)) { + copy($install_dir.'/server/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); + } + $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); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + + $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); + $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); + $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); + $content = str_replace('{mysql_master_server_port}', $conf['mysql']['master_port'], $content); + + $content = str_replace('{server_id}', $conf['server_id'], $content); + $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); + $content = str_replace('{language}', $conf['language'], $content); + $content = str_replace('{timezone}', $conf['timezone'], $content); + $content = str_replace('{theme}', $conf['theme'], $content); + $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content); + + wf($install_dir.'/server/lib/'.$configfile, $content); //* Create the config file for remote-actions (but only, if it does not exist, because // the value is a autoinc-value and so changed by the remoteaction_core_module @@ -935,7 +1188,7 @@ class installer extends installer_base wf($install_dir.'/server/lib/remote_action.inc.php', $content); } - // Enable the server modules and plugins. + //* Enable the server modules and plugins. // TODO: Implement a selector which modules and plugins shall be enabled. $dir = $install_dir.'/server/mods-available/'; if (is_dir($dir)) { @@ -977,10 +1230,12 @@ class installer extends installer_base if(method_exists($tmp, 'onInstall') && $tmp->onInstall()) { if(!@is_link($install_dir.'/server/plugins-enabled/'.$file)) { @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-enabled/'.$file); + //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-enabled/'.$file); } if (strpos($file, '_core_plugin') !== false) { if(!@is_link($install_dir.'/server/plugins-core/'.$file)) { @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-core/'.$file); + //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-core/'.$file); } } } @@ -991,21 +1246,25 @@ class installer extends installer_base } } - //* Update the server config + // Update the server config $mail_server_enabled = ($conf['services']['mail'])?1:0; $web_server_enabled = ($conf['services']['web'])?1:0; $dns_server_enabled = ($conf['services']['dns'])?1:0; $file_server_enabled = ($conf['services']['file'])?1:0; $db_server_enabled = ($conf['services']['db'])?1:0; - $vserver_server_enabled = ($conf['services']['vserver'])?1:0; + $vserver_server_enabled = ($conf['openvz']['installed'])?1:0; + $proxy_server_enabled = ($conf['services']['proxy'])?1:0; + $firewall_server_enabled = ($conf['services']['firewall'])?1:0; + $xmpp_server_enabled = ($conf['services']['xmpp'])?1:0; - $sql = "UPDATE `server` SET mail_server = ?, web_server = ?, dns_server = ?, file_server = ?, db_server = ?, vserver_server = ? WHERE server_id = ?"; + $sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '$xmpp_server_enabled' WHERE server_id = ?"; - $this->db->query($sql, $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $conf['server_id']); + $this->db->query($sql, $conf['server_id']); if($conf['mysql']['master_slave_setup'] == 'y') { - $this->dbmaster->query($sql, $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $conf['server_id']); + $this->dbmaster->query($sql, $conf['server_id']); } + // chown install dir to root and chmod 755 $command = 'chown root:root '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1020,6 +1279,10 @@ class installer extends installer_base $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //* 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"); @@ -1046,9 +1309,7 @@ class installer extends installer_base exec("chmod -R 770 $install_dir/interface/lib/lang"); //* Make the temp directory for language file exports writable - if(is_dir($install_dir.'/interface/web/temp')) { - exec("chmod -R 770 $install_dir/interface/web/temp"); - } + if(is_dir($install_dir.'/interface/web/temp')) exec("chmod -R 770 $install_dir/interface/web/temp"); //* Make all interface language file directories group writable $handle = @opendir($install_dir.'/interface/web'); @@ -1101,18 +1362,18 @@ class installer extends installer_base // and must be fixed as this will allow the apache user to read the ispconfig files. // Later this must run as own apache server or via suexec! if($conf['apache']['installed'] == true){ - $command = 'usermod -a -G ispconfig '.$conf['apache']['user']; + $command = 'adduser '.$conf['apache']['user'].' ispconfig'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); if(is_group('ispapps')){ - $command = 'usermod -a -G ispapps '.$conf['apache']['user']; + $command = 'adduser '.$conf['apache']['user'].' ispapps'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } } if($conf['nginx']['installed'] == true){ - $command = 'usermod -a -G ispconfig '.$conf['nginx']['user']; + $command = 'adduser '.$conf['nginx']['user'].' ispconfig'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); if(is_group('ispapps')){ - $command = 'usermod -a -G ispapps '.$conf['nginx']['user']; + $command = 'adduser '.$conf['nginx']['user'].' ispapps'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } } @@ -1128,43 +1389,62 @@ class installer extends installer_base 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); - $content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content); + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + //$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - //* comment out the listen directive if port is 80 or 443 - if ($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { - $content = str_replace('{vhost_port_listen}', '#', $content); + // Dont just copy over the virtualhost template but add some custom settings + $tpl = new tpl(); + if (file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/apache_ispconfig.vhost.master")) { + $tpl->newTemplate($conf['ispconfig_install_dir']."/server/conf-custom/install/apache_ispconfig.vhost.master"); + } else { + $tpl->newTemplate("dist/tpl/gentoo/apache_ispconfig.vhost.master"); + } + $tpl->setVar('vhost_port',$conf['apache']['vhost_port']); + + // comment out the listen directive if port is 80 or 443 + if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { + $tpl->setVar('vhost_port_listen','#'); } else { - $content = str_replace('{vhost_port_listen}', '', $content); + $tpl->setVar('vhost_port_listen',''); } if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_comment}', '', $content); + $tpl->setVar('ssl_comment',''); } else { - $content = str_replace('{ssl_comment}', '#', $content); + $tpl->setVar('ssl_comment','#'); } if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) { - $content = str_replace('{ssl_bundle_comment}', '', $content); + $tpl->setVar('ssl_bundle_comment',''); } else { - $content = str_replace('{ssl_bundle_comment}', '#', $content); + $tpl->setVar('ssl_bundle_comment','#'); } - $vhost_path = $conf['apache']['vhost_conf_dir'].'/ispconfig.vhost'; - $this->write_config_file($vhost_path, $content); - - 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); - @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); - } + $tpl->setVar('apache_version',getapacheversion()); + + wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab()); + + //* and create the symlink + /*if($this->is_update == false) { + if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { + symlink($vhost_conf_dir.'/ispconfig.vhost', $vhost_conf_enabled_dir.'/000-ispconfig.vhost'); + } + }*/ + //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); + @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); + //} + + // unlink acme vhost symlink + if(is_link($vhost_conf_dir . '/999-acme.conf') && file_exists($vhost_conf_dir . '/acme.conf')) unlink($vhost_conf_dir . '/999-acme.conf'); } if($conf['nginx']['installed'] == true && $this->install_ispconfig_interface == true){ @@ -1177,7 +1457,7 @@ class installer extends installer_base $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_on}', 'ssl', $content); + $content = str_replace('{ssl_on}', 'ssl http2', $content); $content = str_replace('{ssl_comment}', '', $content); $content = str_replace('{fastcgi_ssl}', 'on', $content); } else { @@ -1219,44 +1499,41 @@ class installer extends installer_base } //* Install the update script - if (is_file('/usr/local/bin/ispconfig_update_from_dev.sh')) { - unlink('/usr/local/bin/ispconfig_update_from_dev.sh'); - } - + if(is_file('/usr/local/bin/ispconfig_update_from_dev.sh')) unlink('/usr/local/bin/ispconfig_update_from_dev.sh'); chown($install_dir.'/server/scripts/update_from_dev.sh', 'root'); chmod($install_dir.'/server/scripts/update_from_dev.sh', 0700); - chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root'); - chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700); +// chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root'); +// chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700); chown($install_dir.'/server/scripts/ispconfig_update.sh', 'root'); chmod($install_dir.'/server/scripts/ispconfig_update.sh', 0700); - - if (!is_link('/usr/local/bin/ispconfig_update_from_dev.sh')) { - symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update_from_dev.sh'); - } - - if (!is_link('/usr/local/bin/ispconfig_update.sh')) { - symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update.sh'); - } + if(!is_link('/usr/local/bin/ispconfig_update_from_dev.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update_from_dev.sh'); + if(!is_link('/usr/local/bin/ispconfig_update.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update.sh'); + + // Make executable then unlink and symlink letsencrypt pre, post and renew hook scripts + chown($install_dir.'/server/scripts/letsencrypt_pre_hook.sh', 'root'); + chown($install_dir.'/server/scripts/letsencrypt_post_hook.sh', 'root'); + chown($install_dir.'/server/scripts/letsencrypt_renew_hook.sh', 'root'); + chmod($install_dir.'/server/scripts/letsencrypt_pre_hook.sh', 0700); + chmod($install_dir.'/server/scripts/letsencrypt_post_hook.sh', 0700); + chmod($install_dir.'/server/scripts/letsencrypt_renew_hook.sh', 0700); + if(is_link('/usr/local/bin/letsencrypt_pre_hook.sh')) unlink('/usr/local/bin/letsencrypt_pre_hook.sh'); + if(is_link('/usr/local/bin/letsencrypt_post_hook.sh')) unlink('/usr/local/bin/letsencrypt_post_hook.sh'); + if(is_link('/usr/local/bin/letsencrypt_renew_hook.sh')) unlink('/usr/local/bin/letsencrypt_renew_hook.sh'); + symlink($install_dir.'/server/scripts/letsencrypt_pre_hook.sh', '/usr/local/bin/letsencrypt_pre_hook.sh'); + symlink($install_dir.'/server/scripts/letsencrypt_post_hook.sh', '/usr/local/bin/letsencrypt_post_hook.sh'); + symlink($install_dir.'/server/scripts/letsencrypt_renew_hook.sh', '/usr/local/bin/letsencrypt_renew_hook.sh'); //* Make the logs readable for the ispconfig user - if (is_file('/var/log/maillog')) { - exec('chmod +r /var/log/maillog'); - } - if (is_file('/var/log/messages')) { - exec('chmod +r /var/log/messages'); - } - if (is_file('/var/log/clamav/clamav.log')) { - exec('chmod +r /var/log/clamav/clamav.log'); - } - if (is_file('/var/log/clamav/freshclam.log')) { - exec('chmod +r /var/log/clamav/freshclam.log'); - } - - //* Create the ispconfig log directory - if (!is_dir($conf['ispconfig_log_dir'])) { - mkdir($conf['ispconfig_log_dir']); - } - if (!is_file($conf['ispconfig_log_dir'].'/ispconfig.log')) { + if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log'); + if(@is_file('/var/log/mail.warn')) exec('chmod +r /var/log/mail.warn'); + if(@is_file('/var/log/mail.err')) exec('chmod +r /var/log/mail.err'); + if(@is_file('/var/log/messages')) exec('chmod +r /var/log/messages'); + if(@is_file('/var/log/clamav/clamav.log')) exec('chmod +r /var/log/clamav/clamav.log'); + if(@is_file('/var/log/clamav/freshclam.log')) exec('chmod +r /var/log/clamav/freshclam.log'); + + //* Create the ispconfig log file and directory + if(!is_file($conf['ispconfig_log_dir'].'/ispconfig.log')) { + if(!is_dir($conf['ispconfig_log_dir'])) mkdir($conf['ispconfig_log_dir'], 0755); touch($conf['ispconfig_log_dir'].'/ispconfig.log'); } chmod($conf['ispconfig_log_dir'].'/ispconfig.log', 0600); @@ -1268,16 +1545,45 @@ class installer extends installer_base exec('chown ispconfig:ispconfig '. $conf['ispconfig_log_dir'].'/auth.log'); exec('chmod 660 '. $conf['ispconfig_log_dir'].'/auth.log'); - rename($install_dir.'/server/scripts/run-getmail.sh', '/usr/local/bin/run-getmail.sh'); - - if (is_user('getmail')) { - chown('/usr/local/bin/run-getmail.sh', 'getmail'); + if(is_user('getmail')) { + rename($install_dir.'/server/scripts/run-getmail.sh', '/usr/local/bin/run-getmail.sh'); + if(is_user('getmail')) chown('/usr/local/bin/run-getmail.sh', 'getmail'); + chmod('/usr/local/bin/run-getmail.sh', 0744); + } + + //* Add Log-Rotation + if (is_dir('/etc/logrotate.d')) { + @unlink('/etc/logrotate.d/logispc3'); // ignore, if the file is not there + /* We rotate these logs in cron_daily.php + $fh = fopen('/etc/logrotate.d/logispc3', 'w'); + fwrite($fh, + "$conf['ispconfig_log_dir']/ispconfig.log { \n" . + " weekly \n" . + " missingok \n" . + " rotate 4 \n" . + " compress \n" . + " delaycompress \n" . + "} \n" . + "$conf['ispconfig_log_dir']/cron.log { \n" . + " weekly \n" . + " missingok \n" . + " rotate 4 \n" . + " compress \n" . + " delaycompress \n" . + "}"); + fclose($fh); + */ } - chmod('/usr/local/bin/run-getmail.sh', 0744); //* 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'); @@ -1286,7 +1592,6 @@ class installer extends installer_base 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/tpl/gentoo/apache_ispconfig.vhost.master b/install/dist/tpl/gentoo/apache_ispconfig.vhost.master index e885b381bc..39d25ac906 100644 --- a/install/dist/tpl/gentoo/apache_ispconfig.vhost.master +++ b/install/dist/tpl/gentoo/apache_ispconfig.vhost.master @@ -4,41 +4,83 @@ # for the ISPConfig controlpanel ###################################################### -{vhost_port_listen} Listen {vhost_port} -<tmpl_if name='apache_version' op='<' value='2.4' format='version'> - # NameVirtualHost *:{vhost_port} -</tmpl_if> +<tmpl_var name="vhost_port_listen"> Listen <tmpl_var name="vhost_port"> +NameVirtualHost *:<tmpl_var name="vhost_port"> -<VirtualHost _default_:{vhost_port}> +<VirtualHost _default_:<tmpl_var name="vhost_port">> ServerAdmin webmaster@localhost Alias /mail /var/www/ispconfig/mail + <Directory /var/www/ispconfig/> + <FilesMatch "\.ph(p3?|tml)$"> + SetHandler None + </FilesMatch> + </Directory> + <Directory /usr/local/ispconfig/interface/web/> + <FilesMatch "\.ph(p3?|tml)$"> + SetHandler None + </FilesMatch> + </Directory> + <IfModule mod_fcgid.c> DocumentRoot /var/www/ispconfig/ SuexecUserGroup ispconfig ispconfig <Directory /var/www/ispconfig/> - Options +Indexes +FollowSymLinks +MultiViews +ExecCGI + Options -Indexes +FollowSymLinks +MultiViews +ExecCGI AllowOverride AuthConfig Indexes Limit Options FileInfo - <FilesMatch "\.ph(p[3-5]?|tml)$"> + <FilesMatch "\.php$"> SetHandler fcgid-script </FilesMatch> FCGIWrapper /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter .php + <tmpl_if name='apache_version' op='>' value='2.2' format='version'> + Require all granted + <tmpl_else> Order allow,deny Allow from all + </tmpl_if> </Directory> DirectoryIndex index.php + IPCCommTimeout 7200 + MaxRequestLen 15728640 + </IfModule> + + <IfModule mod_proxy_fcgi.c> + DocumentRoot /usr/local/ispconfig/interface/web + SuexecUserGroup ispconfig ispconfig + DirectoryIndex index.php + + <Directory /usr/local/ispconfig/interface/web> + Options -Indexes +FollowSymLinks +MultiViews +ExecCGI + AllowOverride AuthConfig Indexes Limit Options FileInfo + <tmpl_if name='apache_version' op='>' value='2.2' format='version'> + Require all granted + <tmpl_else> + Order allow,deny + Allow from all + </tmpl_if> + <FilesMatch \.php$> + #SetHandler "proxy:unix:/var/lib/php5-fpm/ispconfig.sock|fcgi://localhost" + SetHandler "proxy:fcgi://127.0.0.1:9000" + </FilesMatch> + </Directory> </IfModule> - <IfModule mod_php5.c> + <IfModule mpm_itk_module> DocumentRoot /usr/local/ispconfig/interface/web/ + AssignUserId ispconfig ispconfig AddType application/x-httpd-php .php <Directory /usr/local/ispconfig/interface/web> + # php_admin_value open_basedir "/usr/local/ispconfig/interface:/usr/share:/tmp" Options +FollowSymLinks AllowOverride None + <tmpl_if name='apache_version' op='>' value='2.2' format='version'> + Require all granted + <tmpl_else> Order allow,deny Allow from all - php_value magic_quotes_gpc 0 + </tmpl_if> + php_value magic_quotes_gpc 0 </Directory> </IfModule> @@ -51,20 +93,53 @@ </IfModule> # SSL Configuration - {ssl_comment}SSLEngine On - {ssl_comment}SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt - {ssl_comment}SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key + <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 -TLSv1 -TLSv1.1 + <tmpl_else> + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 + </tmpl_if> + <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt + <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 -</VirtualHost> + <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 + </tmpl_if> + <tmpl_if name='apache_version' op='>=' value='2.4.11' format='version'> + <tmpl_var name="ssl_comment">SSLSessionTickets Off + </tmpl_if> -<Directory /var/www/php-cgi-scripts> - AllowOverride None - Order Deny,Allow - Deny from all -</Directory> + <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'" + <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" + <tmpl_var name="ssl_comment">Header always edit Set-Cookie (.*) "$1; Secure" + <IfModule mod_version.c> + <IfVersion >= 2.4.7> + Header setifempty Strict-Transport-Security "max-age=15768000" + </IfVersion> + <IfVersion < 2.4.7> + Header set Strict-Transport-Security "max-age=15768000" + </IfVersion> + </IfModule> + RequestHeader unset Proxy early + </IfModule> + + <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> + <tmpl_var name="ssl_comment">SSLUseStapling On + <tmpl_var name="ssl_comment">SSLStaplingResponderTimeout 5 + <tmpl_var name="ssl_comment">SSLStaplingReturnResponderErrors Off + </tmpl_if> + + # Redirect http to https + ErrorDocument 400 "<script>document.location.href='https://'+location.hostname+':'+location.port';</script><h1>Error 400 - trying to redirect</h1>" + +</VirtualHost> -<Directory /var/www/php-fcgi-scripts> - AllowOverride None - Order Deny,Allow - Deny from all -</Directory> diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 10de1d8fbf..5a0b0ceaf5 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -547,16 +547,15 @@ function remove_blank_lines($input, $file = 1){ $content = $input; } $lines = explode("\n", $content); + $new_lines = array(); if(!empty($lines)){ foreach($lines as $line){ if(trim($line) != '') $new_lines[] = $line; } } - if(is_array($new_lines)){ - $content = implode("\n", $new_lines); - } else { - $content = ''; - } + + $content = implode("\n", $new_lines); + if($file){ wf($input, $content); }else{ diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 3d49c23871..d0aab93088 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -52,7 +52,7 @@ class installer_base { } public function update_acme() { - $acme = explode("\n", shell_exec('which acme.sh /usr/local/ispconfig/server/scripts/acme.sh /root/.acme.sh/acme.sh 2> /dev/null')); + $acme = explode("\n", (string)shell_exec('which acme.sh /usr/local/ispconfig/server/scripts/acme.sh /root/.acme.sh/acme.sh 2> /dev/null')); $acme = reset($acme); $val = 0; @@ -838,9 +838,9 @@ class installer_base { $addr_cleanup = "'%u'"; foreach (str_split($out[0]) as $delim) { $recipient_delimiter = $this->db->escape( str_replace('%', '%%', $delim) ); - $addr_cleanup = "SUBSTRING_INDEX(${addr_cleanup}, '${recipient_delimiter}', 1)"; + $addr_cleanup = "SUBSTRING_INDEX({$addr_cleanup}, '{$recipient_delimiter}', 1)"; } - $no_addr_extension = "CONCAT(${addr_cleanup}, '@%d')"; + $no_addr_extension = "CONCAT({$addr_cleanup}, '@%d')"; } else { $no_addr_extension = "''"; } @@ -1525,7 +1525,7 @@ class installer_base { 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)) { + if (preg_match("|check_recipient_access\s+proxy:mysql:{$quoted_config_dir}/mysql-verify_recipients.cf|", $value)) { continue; } $new_options[] = $value; @@ -1533,7 +1533,7 @@ class installer_base { if ($configure_lmtp && (!isset($conf['mail']['content_filter']) || $conf['mail']['content_filter'] === 'amavisd')) { 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")); + array_splice($new_options, $i+1, 0, array("check_recipient_access proxy:mysql:{$config_dir}/mysql-verify_recipients.cf")); break; } } @@ -1712,7 +1712,7 @@ class installer_base { // Check for amavisd -> pure webserver with postfix for mailing without antispam if ($conf['amavis']['installed']) { $content_filter_service = ($configure_lmtp) ? 'lmtp' : 'amavis'; - $postconf_commands[] = "content_filter = ${content_filter_service}:[127.0.0.1]:10024"; + $postconf_commands[] = "content_filter = {$content_filter_service}:[127.0.0.1]:10024"; $postconf_commands[] = 'receive_override_options = no_address_mappings'; $postconf_commands[] = 'address_verify_virtual_transport = smtp:[127.0.0.1]:10025'; $postconf_commands[] = 'address_verify_transport_maps = static:smtp:[127.0.0.1]:10025'; @@ -1723,7 +1723,7 @@ class installer_base { 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)) { + if (preg_match("|check_recipient_access\s+proxy:mysql:{$quoted_config_dir}/mysql-verify_recipients.cf|", $value)) { continue; } $new_options[] = $value; @@ -1731,7 +1731,7 @@ class installer_base { 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")); + array_splice($new_options, $i+1, 0, array("check_recipient_access proxy:mysql:{$config_dir}/mysql-verify_recipients.cf")); break; } } @@ -1868,7 +1868,7 @@ class installer_base { if (preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { continue; } - if (preg_match("|check_recipient_access\s+proxy:mysql:${quoted_config_dir}/mysql-verify_recipients.cf|", $value)) { + if (preg_match("|check_recipient_access\s+proxy:mysql:{$quoted_config_dir}/mysql-verify_recipients.cf|", $value)) { continue; } $new_options[] = $value; @@ -1935,10 +1935,10 @@ class installer_base { ); foreach ($local_d as $f) { $tpl = new tpl(); - if (file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master")) { - $tpl->newTemplate($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master"); + if (file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master")) { + $tpl->newTemplate($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master"); } else { - $tpl->newTemplate("rspamd_${f}.master"); + $tpl->newTemplate("rspamd_{$f}.master"); } $tpl->setVar('dkim_path', $mail_config['dkim_path']); @@ -1950,7 +1950,7 @@ class installer_base { $tpl->setLoop('local_addrs', $local_addrs); } - wf("/etc/rspamd/local.d/${f}", $tpl->grab()); + wf("/etc/rspamd/local.d/{$f}", $tpl->grab()); } @@ -1967,10 +1967,10 @@ class installer_base { 'arc.conf', ); foreach ($local_d as $f) { - if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master")) { - exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master /etc/rspamd/local.d/${f}"); + if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master")) { + exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master /etc/rspamd/local.d/{$f}"); } else { - exec("cp tpl/rspamd_${f}.master /etc/rspamd/local.d/${f}"); + exec("cp tpl/rspamd_{$f}.master /etc/rspamd/local.d/{$f}"); } } @@ -1980,10 +1980,10 @@ class installer_base { 'surbl_group.conf', ); foreach ($override_d as $f) { - if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master")) { - exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master /etc/rspamd/override.d/${f}"); + if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master")) { + exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master /etc/rspamd/override.d/{$f}"); } else { - exec("cp tpl/rspamd_${f}.master /etc/rspamd/override.d/${f}"); + exec("cp tpl/rspamd_{$f}.master /etc/rspamd/override.d/{$f}"); } } @@ -1995,10 +1995,10 @@ class installer_base { 'spf_whitelist.inc.ispc', ); foreach ($maps_d as $f) { - if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master")) { - exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_${f}.master /etc/rspamd/local.d/maps.d/${f}"); + if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master")) { + exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd_{$f}.master /etc/rspamd/local.d/maps.d/{$f}"); } else { - exec("cp tpl/rspamd_${f}.master /etc/rspamd/local.d/maps.d/${f}"); + exec("cp tpl/rspamd_{$f}.master /etc/rspamd/local.d/maps.d/{$f}"); } } @@ -3145,11 +3145,11 @@ class installer_base { $out = null; $ret = null; if($conf['nginx']['installed'] == true || $conf['apache']['installed'] == true) { - exec("$acme --issue --log $acme_log -w /usr/local/ispconfig/interface/acme -d " . escapeshellarg($hostname) . " $renew_hook", $out, $ret); + exec("$acme --issue --keylength 4096 --log $acme_log -w /usr/local/ispconfig/interface/acme -d " . escapeshellarg($hostname) . " $renew_hook", $out, $ret); } // Else, it is not webserver, so we use standalone else { - exec("$acme --issue --log $acme_log --standalone -d " . escapeshellarg($hostname) . " $hook", $out, $ret); + exec("$acme --issue --keylength 4096 --log $acme_log --standalone -d " . escapeshellarg($hostname) . " $hook", $out, $ret); } if($ret == 0 || ($ret == 2 && file_exists($check_acme_file))) { diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index e69de29bb2..c3d8c5b210 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -0,0 +1,2 @@ + +ALTER TABLE `mail_user` CHANGE `quota` `quota` BIGINT(20) NOT NULL DEFAULT '0'; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index cf340bda01..e9ed67c86a 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1070,7 +1070,7 @@ CREATE TABLE `mail_user` ( `gid` int(11) NOT NULL default '5000', `maildir` varchar(255) NOT NULL default '', `maildir_format` varchar(255) NOT NULL default 'maildir', - `quota` bigint(20) NOT NULL default '-1', + `quota` bigint(20) NOT NULL default '0', `cc` text, `forward_in_lda` enum('n','y') NOT NULL default 'n', `sender_cc` varchar(255) NOT NULL default '', diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index c6b1c2f9c5..8bd34f6928 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -1,3 +1,5 @@ +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 = 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 @@ -5,6 +7,9 @@ virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} virtual_uid_maps = proxy:mysql:/etc/postfix/mysql-virtual_uids.cf virtual_gid_maps = proxy:mysql:/etc/postfix/mysql-virtual_gids.cf +sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf +inet_protocols=all +inet_interfaces = all smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes @@ -35,7 +40,7 @@ header_checks = regexp:{config_dir}/header_checks mime_header_checks = regexp:{config_dir}/mime_header_checks nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks -inet_interfaces = all +owner_request_special = no smtp_tls_security_level = may smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = !SSLv2,!SSLv3 diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 78eee8c997..9ae929136b 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -825,12 +825,13 @@ class db return true; } - //** Deletes a record and saves the changes into the datalog + // Updates a datalog record to store an error state. public function datalogError($errormsg) { global $app; - if(isset($app->modules->current_datalog_id) && $app->modules->current_datalog_id > 0) $this->query("UPDATE sys_datalog set error = ? WHERE datalog_id = ?", $errormsg, $app->modules->current_datalog_id); - + if(isset($app->modules->current_datalog_id) && $app->modules->current_datalog_id > 0) { + $this->query("UPDATE sys_datalog set error = ? WHERE datalog_id = ?", $errormsg, $app->modules->current_datalog_id); + } return true; } @@ -844,7 +845,11 @@ class db $login = $_SESSION['s']['user']['username']; } - $result = $this->queryAllRecords("SELECT COUNT( * ) AS cnt, sys_datalog.action, sys_datalog.dbtable FROM sys_datalog, server WHERE server.server_id = sys_datalog.server_id AND sys_datalog.user = ? AND sys_datalog.datalog_id > server.updated GROUP BY sys_datalog.dbtable, sys_datalog.action", $login); + $result = $this->queryAllRecords("SELECT COUNT( * ) AS cnt, sys_datalog.action, sys_datalog.dbtable + FROM sys_datalog, server + WHERE server.server_id = sys_datalog.server_id AND sys_datalog.user = ? AND sys_datalog.datalog_id > server.updated + GROUP BY sys_datalog.dbtable, sys_datalog.action", + $login); foreach($result as $row) { if(!$row['dbtable'] || in_array($row['dbtable'], array('aps_instances', 'aps_instances_settings', 'mail_access', 'mail_content_filter'))) continue; // ignore some entries, maybe more to come $return['entries'][] = array('table' => $row['dbtable'], 'action' => $row['action'], 'count' => $row['cnt'], 'text' => $app->lng('datalog_status_' . $row['action'] . '_' . $row['dbtable'])); $return['count'] += $row['cnt']; diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php index 7ffc84c32b..a40ace3c42 100644 --- a/interface/lib/classes/listform_actions.inc.php +++ b/interface/lib/classes/listform_actions.inc.php @@ -226,7 +226,7 @@ class listform_actions { } $sql_where = $app->listform->getSearchSQL($sql_where); - if(isset($app->listform->listDef['join_sql'])) $sql_where .= ' AND '.$app->listform->listDef['join_sql']; + if(isset($app->listform->listDef['join_sql']) && $app->listform->listDef['join_sql'] != '') $sql_where .= ' AND '.$app->listform->listDef['join_sql']; $app->tpl->setVar($app->listform->searchValues); $order_by_sql = $this->SQLOrderBy; diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 9e22a1e868..25c64409e8 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -560,8 +560,12 @@ class tform_base { foreach($vals as $tvl) { if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } + $datacheckfields = ''; + if (isset($field['data-check-fields'])) { + $datacheckfields = " data-check-fields=\"{$field['data-check-fields']}\""; + } // $out .= "<label for=\"".$key."[]\" class=\"inlineLabel\"><input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v</label>\r\n"; - $out .= "<label for=\"".$key.$elementNo."\" class=\"inlineLabel\"><input name=\"".$key."[]\" id=\"".$key.$elementNo."\" value=\"$k\" type=\"checkbox\" $checked /> $v</label>"; + $out .= "<label for=\"".$key.$elementNo."\" class=\"inlineLabel\"$datacheckfields><input name=\"".$key."[]\" id=\"".$key.$elementNo."\" value=\"$k\" type=\"checkbox\" $checked /> $v</label>"; if (isset($field['render_inline']) && $field['render_inline'] == 'n') { $out .= "<br/>\r\n"; } diff --git a/interface/lib/lang/cn.lng b/interface/lib/lang/cn.lng new file mode 100644 index 0000000000..72fcb8b737 --- /dev/null +++ b/interface/lib/lang/cn.lng @@ -0,0 +1,178 @@ +<?php +$wb['conf_format_dateshort'] = 'Y-m-d'; +$wb['conf_format_dateshort_human_readable'] = 'yyyy-mm-dd'; +$wb['conf_format_datelong'] = 'l dS of F Y'; +$wb['conf_format_timeshort'] = 'H:i'; +$wb['conf_format_timelong'] = 'H:i:s'; +$wb['conf_format_datetime'] = 'Y-m-d 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'] = '当å‰ç”¨æˆ·æ— æƒè®¿é—®è¯¥æ¨¡å—。'; +$wb['error_302'] = 'æ— æ•ˆçš„æ¨¡å—。'; +$wb['error_1001'] = '用户å和密ç ä¸èƒ½ä¸ºç©ºï¼'; +$wb['error_1002'] = '用户åå’Œ/或密ç ä¸æ£ç¡®ï¼'; +$wb['error_1003'] = '用户å已被åœç”¨ï¼'; +$wb['delete_confirmation'] = 'ä½ ç¡®å®šè¦åˆ 除这æ¡è®°å½•å—?'; +$wb['error_no_view_permission'] = 'ä½ æ²¡æœ‰æŸ¥çœ‹æ¤è®°å½•çš„æƒé™æˆ–æ¤è®°å½•ä¸å˜åœ¨ï¼'; +$wb['error_no_delete_permission'] = 'ä½ æ²¡æœ‰åˆ é™¤æ¤è®°å½•çš„æƒé™ï¼'; +$wb['page_txt'] = '页'; +$wb['page_of_txt'] = '/'; +$wb['page_and_txt'] = 'å’Œ'; +$wb['page_next_txt'] = '下一页'; +$wb['page_back_txt'] = '上一页'; +$wb['delete_txt'] = 'åˆ é™¤'; +$wb['filter_txt'] = 'ç›é€‰'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°è®°å½•'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['top_menu_system'] = '系统'; +$wb['top_menu_client'] = '客户'; +$wb['top_menu_email'] = '邮件'; +$wb['top_menu_monitor'] = '监控'; +$wb['top_menu_sites'] = '站点'; +$wb['top_menu_dns'] = 'DNS'; +$wb['top_menu_tools'] = '工具'; +$wb['top_menu_help'] = '帮助'; +$wb['top_menu_billing'] = '结算'; +$wb['top_menu_mailuser'] = '邮件用户'; +$wb['top_menu_domain'] = '域å'; +$wb['top_menu_dashboard'] = '主页'; +$wb['top_menu_vm'] = '虚拟æœåŠ¡å™¨'; +$wb['toolsarea_head_txt'] = '工具'; +$wb['latest_news_txt'] = '最新新闻'; +$wb['logout_txt'] = '注销'; +$wb['daynamesmin_su'] = '周日'; +$wb['daynamesmin_mo'] = '周一'; +$wb['daynamesmin_tu'] = '周二'; +$wb['daynamesmin_we'] = '周三'; +$wb['daynamesmin_th'] = '周四'; +$wb['daynamesmin_fr'] = '周五'; +$wb['daynamesmin_sa'] = '周å…'; +$wb['daynames_sunday'] = '星期日'; +$wb['daynames_monday'] = '星期一'; +$wb['daynames_tuesday'] = '星期二'; +$wb['daynames_wednesday'] = '星期三'; +$wb['daynames_thursday'] = '星期四'; +$wb['daynames_friday'] = '星期五'; +$wb['daynames_saturday'] = '星期å…'; +$wb['monthnamesshort_jan'] = '1月'; +$wb['monthnamesshort_feb'] = '2月'; +$wb['monthnamesshort_mar'] = '3月'; +$wb['monthnamesshort_apr'] = '4月'; +$wb['monthnamesshort_may'] = '5月'; +$wb['monthnamesshort_jun'] = '6月'; +$wb['monthnamesshort_jul'] = '7月'; +$wb['monthnamesshort_aug'] = '8月'; +$wb['monthnamesshort_sep'] = '9月'; +$wb['monthnamesshort_oct'] = '10月'; +$wb['monthnamesshort_nov'] = '11月'; +$wb['monthnamesshort_dec'] = '12月'; +$wb['datepicker_nextText'] = '下一个'; +$wb['datepicker_prevText'] = '上一个'; +$wb['submit_confirmation'] = '您确定è¦æ‰§è¡Œæ¤æ“作å—?'; +$wb['globalsearch_resultslimit_of_txt'] = 'çš„'; +$wb['globalsearch_resultslimit_results_txt'] = '结果'; +$wb['globalsearch_noresults_text_txt'] = '没有结果。'; +$wb['globalsearch_noresults_limit_txt'] = '0 结果'; +$wb['globalsearch_searchfield_watermark_txt'] = 'æœç´¢'; +$wb['globalsearch_suggestions_text_txt'] = '建议'; +$wb['global_tabchange_warning_txt'] = '如果您按下“确定â€æŒ‰é’®ï¼Œæ¤é€‰é¡¹å¡ä¸çš„更改将被更改。如果å–消,它们将被丢弃。'; +$wb['global_tabchange_discard_txt'] = 'æ¤é€‰é¡¹å¡ä¸æœ‰æœªä¿å˜çš„更改。如果您继ç»ï¼Œæ›´æ”¹å°†è¢«ä¸¢å¼ƒã€‚'; + +$wb['datalog_changes_txt'] = '以下更改尚未应用到所有æœåŠ¡å™¨ï¼š'; +$wb['datalog_changes_end_txt'] = 'å˜å‚¨æ›´æ–°å¯èƒ½éœ€è¦ä¸€åˆ†é’Ÿæ—¶é—´ã€‚请è€å¿ƒç‰å¾…。'; +$wb['datalog_status_i_web_database'] = '创建新数æ®åº“'; +$wb['datalog_status_u_web_database'] = 'æ›´æ–°æ•°æ®åº“'; +$wb['datalog_status_d_web_database'] = 'åˆ é™¤æ•°æ®åº“'; +$wb['datalog_status_i_web_database_user'] = '为数æ®åº“创建用户'; +$wb['datalog_status_u_web_database_user'] = 'æ›´æ–°æ•°æ®åº“用户'; +$wb['datalog_status_d_web_database_user'] = 'åˆ é™¤æ•°æ®åº“用户'; +$wb['datalog_status_i_web_domain'] = '创建新网站'; +$wb['datalog_status_u_web_domain'] = '更新网站设置'; +$wb['datalog_status_d_web_domain'] = 'åˆ é™¤ç½‘ç«™'; +$wb['datalog_status_i_ftp_user'] = '创建FTP用户'; +$wb['datalog_status_u_ftp_user'] = 'æ›´æ–°FTP用户'; +$wb['datalog_status_d_ftp_user'] = 'åˆ é™¤FTP用户'; +$wb['datalog_status_i_mail_domain'] = '创建电å邮件域'; +$wb['datalog_status_u_mail_domain'] = '更新电å邮件域'; +$wb['datalog_status_d_mail_domain'] = 'åˆ é™¤ç”µå邮件域'; +$wb['datalog_status_i_mail_user'] = '创建电å邮件用户'; +$wb['datalog_status_u_mail_user'] = '更新电å邮件用户'; +$wb['datalog_status_d_mail_user'] = 'åˆ é™¤ç”µå邮件用户'; +$wb['datalog_status_i_spamfilter_users'] = '创建垃圾邮件过滤器设置'; +$wb['datalog_status_u_spamfilter_users'] = '更新垃圾邮件过滤器设置'; +$wb['datalog_status_d_spamfilter_users'] = 'åˆ é™¤åžƒåœ¾é‚®ä»¶è¿‡æ»¤å™¨è®¾ç½®'; +$wb['datalog_status_i_mail_forwarding'] = '创建电å邮件地å€'; +$wb['datalog_status_u_mail_forwarding'] = '更新电å邮件地å€'; +$wb['datalog_status_d_mail_forwarding'] = 'åˆ é™¤ç”µå邮件地å€'; +$wb['datalog_status_i_dns_rr'] = '创建DNS记录'; +$wb['datalog_status_u_dns_rr'] = 'æ›´æ–°DNS记录'; +$wb['datalog_status_d_dns_rr'] = 'åˆ é™¤DNS记录'; +$wb['datalog_status_i_dns_soa'] = '创建DNS区域'; +$wb['datalog_status_u_dns_soa'] = 'æ›´æ–°DNS区域'; +$wb['datalog_status_d_dns_soa'] = 'åˆ é™¤DNS区域'; +$wb['datalog_status_i_dns_slave'] = '创建新的DNS从区域'; +$wb['datalog_status_u_dns_slave'] = 'æ›´æ–°DNS从区域'; +$wb['datalog_status_d_dns_slave'] = 'åˆ é™¤DNS从区域'; +$wb['datalog_status_i_firewall'] = '创建新的防ç«å¢™è§„则'; +$wb['datalog_status_u_firewall'] = '更新防ç«å¢™è§„则'; +$wb['datalog_status_d_firewall'] = 'åˆ é™¤é˜²ç«å¢™è§„则'; +$wb['datalog_status_u_server'] = 'æ›´æ–°æœåŠ¡å™¨è®¾ç½®'; +$wb['datalog_status_d_server'] = 'åˆ é™¤æœåŠ¡å™¨'; +$wb['datalog_status_i_cron'] = '创建cron作业'; +$wb['datalog_status_u_cron'] = 'æ›´æ–°cron作业'; +$wb['datalog_status_i_server_ip'] = 'æ·»åŠ æœåŠ¡å™¨IP'; +$wb['datalog_status_u_server_ip'] = 'æ›´æ–°æœåŠ¡å™¨IP'; +$wb['datalog_status_d_server_ip'] = 'åˆ é™¤æœåŠ¡å™¨IP'; +$wb['datalog_status_d_cron'] = 'åˆ é™¤cron作业'; +$wb['datalog_status_i_mail_get'] = '创建邮件获å–器账户'; +$wb['datalog_status_u_mail_get'] = '更新邮件获å–器账户'; +$wb['datalog_status_d_mail_get'] = 'åˆ é™¤é‚®ä»¶èŽ·å–器账户'; +$wb['datalog_status_i_mail_mailinglist'] = '创建邮件列表'; +$wb['datalog_status_u_mail_mailinglist'] = '更新邮件列表'; +$wb['datalog_status_d_mail_mailinglist'] = 'åˆ é™¤é‚®ä»¶åˆ—è¡¨'; +$wb['datalog_status_i_shell_user'] = '创建 Shell 用户'; +$wb['datalog_status_u_shell_user'] = 'æ›´æ–° Shell 用户'; +$wb['datalog_status_d_shell_user'] = 'åˆ é™¤ Shell 用户'; +$wb['datalog_status_i_web_folder'] = '创建文件夹ä¿æŠ¤'; +$wb['datalog_status_u_web_folder'] = '更新文件夹ä¿æŠ¤'; +$wb['datalog_status_d_web_folder'] = 'åˆ é™¤æ–‡ä»¶å¤¹ä¿æŠ¤'; +$wb['datalog_status_i_web_folder_user'] = '创建文件夹ä¿æŠ¤ç”¨æˆ·'; +$wb['datalog_status_u_web_folder_user'] = '更新文件夹ä¿æŠ¤ç”¨æˆ·'; +$wb['datalog_status_d_web_folder_user'] = 'åˆ é™¤æ–‡ä»¶å¤¹ä¿æŠ¤ç”¨æˆ·'; +$wb['datalog_status_i_xmpp_domain'] = '创建 XMPP 域å'; +$wb['datalog_status_u_xmpp_domain'] = 'æ›´æ–° XMPP 域å'; +$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['err_csrf_attempt_blocked'] = 'CSRF å°è¯•å·²è¢«é˜»æ¢ã€‚'; +$wb['login_as_txt'] = '以...身份登录'; +$wb['no_domain_perm'] = '您没有æ¤åŸŸçš„æƒé™ã€‚'; +$wb['no_destination_perm'] = '您没有æ¤ç›®æ ‡çš„æƒé™ã€‚'; +$wb['client_you_are_locked'] = 'æ‚¨æ— æƒæ›´æ”¹ä»»ä½•è®¾ç½®ã€‚'; +$wb['gender_m_txt'] = '先生'; +$wb['gender_f_txt'] = '女士'; +$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'æ¤å®¢æˆ·åœ¨è®¡è´¹æ¨¡å—ä¸æœ‰è®°å½•ï¼Œå› æ¤æ— æ³•åˆ é™¤ã€‚'; +$wb['yes_txt'] = '是'; +$wb['no_txt'] = 'å¦'; +$wb['None'] = 'æ— '; +$wb['strength_1'] = 'å¼±'; +$wb['strength_2'] = '一般'; +$wb['strength_3'] = '好'; +$wb['strength_4'] = '强'; +$wb['strength_5'] = 'éžå¸¸å¼º'; +$wb['weak_password_txt'] = '所选密ç ä¸ç¬¦åˆå®‰å…¨æŒ‡å—。它的长度必须至少为 {chars} 个å—符,并具有“{strength}â€çš„强度。'; +$wb['weak_password_length_txt'] = '所选密ç ä¸ç¬¦åˆå®‰å…¨æŒ‡å—。它的长度必须至少为 {chars} 个å—符。'; +$wb['security_check1_txt'] = '检查安全æƒé™ï¼š'; +$wb['security_check2_txt'] = '失败。'; +$wb['select_directive_snippet_txt'] = '指令片段'; +$wb['select_master_directive_snippet_txt'] = '主指令片段'; +$wb['unlimited_txt'] = 'æ— é™åˆ¶'; +$wb['server_id_0_error_txt'] = '请选择一个有效的æœåŠ¡å™¨ã€‚æœåŠ¡å™¨ID必须大于0。'; +$wb['datalog_changes_close_txt'] = 'å…³é—'; +$wb['non_admin_error'] = '需è¦ç®¡ç†å‘˜çº§åˆ«çš„æƒé™'; +$wb['copy_to_clipboard_txt'] = 'å¤åˆ¶åˆ°å‰ªè´´æ¿'; +?> diff --git a/interface/web/admin/lib/lang/cn.lng b/interface/web/admin/lib/lang/cn.lng new file mode 100644 index 0000000000..e744926508 --- /dev/null +++ b/interface/web/admin/lib/lang/cn.lng @@ -0,0 +1,60 @@ +<?php + +$wb['Groups'] = '用户组'; +$wb['groups_description'] = '编辑系统用户组的表å•ã€‚'; + +$wb['Servers'] = 'æœåŠ¡å™¨'; +$wb['Config'] = 'é…ç½®'; + +$wb['Add user'] = 'æ·»åŠ ç”¨æˆ·'; +$wb['Edit user'] = '编辑用户'; +$wb['Add group'] = 'æ·»åŠ ç»„'; +$wb['Edit group'] = '编辑组'; +$wb['Edit server'] = '编辑æœåŠ¡å™¨'; + +$wb['Sync. Now'] = 'ç«‹å³åŒæ¥'; +$wb['DB Sync.'] = 'æ•°æ®åº“åŒæ¥ã€‚'; + +$wb['User Management'] = '用户管ç†'; +$wb['CP Users'] = '控制é¢æ¿ç”¨æˆ·'; +$wb['Remote Users'] = '远程用户'; + +$wb['System'] = '系统'; +$wb['Server Services'] = 'æœåŠ¡å™¨æœåŠ¡'; +$wb['Services'] = 'æœåŠ¡'; +$wb['Server Config'] = 'æœåŠ¡å™¨é…ç½®'; +$wb['Server'] = 'æœåŠ¡å™¨'; +$wb['Mail'] = '邮件'; +$wb['Getmail'] = 'Getmail'; +$wb['Web'] = 'Web'; +$wb['FastCGI'] = 'FastCGI'; +$wb['Jailkit'] = 'Jailkit'; +$wb['Rescue'] = 'æ•‘æ´'; +$wb['Server IP addresses'] = 'æœåŠ¡å™¨IP地å€'; +$wb['Additional PHP Versions'] = 'é¢å¤–çš„PHP版本'; +$wb['Directive Snippets'] = '指令片段'; +$wb['Firewall'] = '防ç«å¢™'; + +$wb['Interface'] = 'ç•Œé¢'; +$wb['Interface Config'] = '主é…ç½®'; +$wb['Sites'] = '网站'; +$wb['DNS'] = 'DNS'; +$wb['Domains'] = '域å'; +$wb['Misc'] = 'æ‚项'; + +$wb['Software'] = '应用与æ’件'; +$wb['Repositories'] = '软件æº'; +$wb['Packages'] = '软件包'; +$wb['Updates'] = 'æ›´æ–°'; + +$wb['Language Editor'] = 'è¯è¨€ç¼–辑器'; +$wb['Languages'] = 'è¯è¨€'; +$wb['New Language'] = 'æ–°è¯è¨€'; +$wb['Merge'] = 'åˆå¹¶'; +$wb['Export'] = '导出'; +$wb['Import'] = '导入'; + +$wb['Remote Actions'] = '远程æ“作'; +$wb['Do OS-Update'] = '执行æ“作系统更新'; +$wb['Do ISPConfig-Update'] = '执行ISPConfigæ›´æ–°'; +?> diff --git a/interface/web/admin/lib/lang/cn_directive_snippets.lng b/interface/web/admin/lib/lang/cn_directive_snippets.lng new file mode 100644 index 0000000000..e35b560bba --- /dev/null +++ b/interface/web/admin/lib/lang/cn_directive_snippets.lng @@ -0,0 +1,15 @@ +<?php +$wb['Directive Snippets'] = '指令片段'; +$wb['name_txt'] = '片段å称'; +$wb['type_txt'] = '类型'; +$wb['snippet_txt'] = '指令片段'; +$wb['active_txt'] = '激活'; +$wb['directive_snippets_name_empty'] = '请为指令片段指定一个å称。'; +$wb['directive_snippets_name_error_unique'] = 'å·²ç»å˜åœ¨ä¸€ä¸ªåŒå的指令片段。'; +$wb['variables_txt'] = 'å˜é‡'; +$wb['customer_viewable_txt'] = '客户å¯è§'; +$wb['required_php_snippets_txt'] = '所需 PHP 片段'; +$wb['update_sites_txt'] = '使用æ¤æŒ‡ä»¤ç‰‡æ®µæ›´æ–°ç½‘ç«™'; +$wb['error_hide_snippet_active_sites'] = 'æ— æ³•ä»Žå®¢æˆ·ç«¯éšè—æ¤æŒ‡ä»¤ç‰‡æ®µï¼Œå› 为它当å‰æ£åœ¨è¢«çŽ°æœ‰ç½‘站使用。'; +$wb['error_disable_snippet_active_sites'] = '由于当å‰æœ‰ç½‘ç«™æ£åœ¨ä½¿ç”¨æ¤æŒ‡ä»¤ç‰‡æ®µï¼Œå› æ¤æ— 法ç¦ç”¨å®ƒã€‚'; +$wb['error_delete_snippet_active_sites'] = '由于当å‰æœ‰ç½‘ç«™æ£åœ¨ä½¿ç”¨æ¤æŒ‡ä»¤ç‰‡æ®µï¼Œå› æ¤æ— æ³•åˆ é™¤å®ƒã€‚'; diff --git a/interface/web/admin/lib/lang/cn_directive_snippets_list.lng b/interface/web/admin/lib/lang/cn_directive_snippets_list.lng new file mode 100644 index 0000000000..95bdd03552 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_directive_snippets_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '指令片段'; +$wb['active_txt'] = '激活'; +$wb['name_txt'] = '片段å称'; +$wb['type_txt'] = '类型'; +$wb['add_new_record_txt'] = 'æ·»åŠ æŒ‡ä»¤ç‰‡æ®µ'; +$wb['customer_viewable_txt'] = '客户å¯è§'; +?> diff --git a/interface/web/admin/lib/lang/cn_firewall.lng b/interface/web/admin/lib/lang/cn_firewall.lng new file mode 100644 index 0000000000..d9d95c22d3 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_firewall.lng @@ -0,0 +1,11 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['tcp_port_txt'] = '开放 TCP 端å£'; +$wb['udp_port_txt'] = '开放 UDP 端å£'; +$wb['tcp_port_help_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 端å£å®šä¹‰ä¸ä¸å…许出现该å—符。å…许的å—符有数å—ã€å†’å·ï¼ˆ:)和逗å·ã€‚'; +?> diff --git a/interface/web/admin/lib/lang/cn_firewall_list.lng b/interface/web/admin/lib/lang/cn_firewall_list.lng new file mode 100644 index 0000000000..8145ea0f7f --- /dev/null +++ b/interface/web/admin/lib/lang/cn_firewall_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '防ç«å¢™'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['tcp_port_txt'] = '开放TCP端å£'; +$wb['udp_port_txt'] = '开放UDP端å£'; +$wb['add_new_record_txt'] = 'æ·»åŠ é˜²ç«å¢™è®°å½•'; +?> diff --git a/interface/web/admin/lib/lang/cn_groups.lng b/interface/web/admin/lib/lang/cn_groups.lng new file mode 100644 index 0000000000..9ca6eb8de0 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_groups.lng @@ -0,0 +1,5 @@ +<?php +$wb['description_txt'] = 'æè¿°'; +$wb['name_txt'] = '组å'; +$wb['name_err'] = '组å必须是1到30个å—符。'; +?> diff --git a/interface/web/admin/lib/lang/cn_groups_list.lng b/interface/web/admin/lib/lang/cn_groups_list.lng new file mode 100644 index 0000000000..3ae2f8f458 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_groups_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '系统用户组'; +$wb['description_txt'] = 'æè¿°'; +$wb['name_txt'] = '用户组'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç”¨æˆ·ç»„'; +$wb['warning_txt'] = '<b>è¦å‘Šï¼š</b>请勿在æ¤å¤„编辑或修改任何用户设置。请改用客户端模å—ä¸çš„客户端和ç»é”€å•†è®¾ç½®ã€‚在æ¤å¤„修改用户或组å¯èƒ½ä¼šå¯¼è‡´æ•°æ®ä¸¢å¤±ï¼'; +?> diff --git a/interface/web/admin/lib/lang/cn_iptables.lng b/interface/web/admin/lib/lang/cn_iptables.lng new file mode 100644 index 0000000000..f788bb9599 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_iptables.lng @@ -0,0 +1,15 @@ +<?php + +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['multiport_txt'] = '多端å£'; +$wb['singleport_txt'] = 'å•ç«¯å£'; +$wb['protocol_txt'] = 'åè®®'; +$wb['table_txt'] = '表'; +$wb['target_txt'] = 'ç›®æ ‡'; +$wb['state_txt'] = '状æ€'; +$wb['destination_ip_txt'] = 'ç›®æ ‡åœ°å€'; +$wb['source_ip_txt'] = 'æºåœ°å€'; +$wb['active_txt'] = '激活'; +$wb['iptables_error_unique'] = 'æ¤æœåŠ¡å™¨å·²å˜åœ¨é˜²ç«å¢™è®°å½•ã€‚'; + +?> diff --git a/interface/web/admin/lib/lang/cn_iptables_list.lng b/interface/web/admin/lib/lang/cn_iptables_list.lng new file mode 100644 index 0000000000..512500b649 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_iptables_list.lng @@ -0,0 +1,17 @@ +<?php + +$wb['list_head_txt'] = 'IPTables'; +$wb['add_new_rule_txt'] = 'æ·»åŠ IPTables规则'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['multiport_txt'] = '多端å£'; +$wb['singleport_txt'] = 'å•ç«¯å£'; +$wb['protocol_txt'] = 'åè®®'; +$wb['table_txt'] = 'è¡¨æ ¼'; +$wb['target_txt'] = 'ç›®æ ‡'; +$wb['state_txt'] = '状æ€'; +$wb['destination_ip_txt'] = 'ç›®æ ‡åœ°å€'; +$wb['source_ip_txt'] = 'æºåœ°å€'; +$wb['active_txt'] = '激活'; +$wb['iptables_error_unique'] = '该æœåŠ¡å™¨å·²å˜åœ¨é˜²ç«å¢™è§„则。'; + +?> diff --git a/interface/web/admin/lib/lang/cn_language_add.lng b/interface/web/admin/lib/lang/cn_language_add.lng new file mode 100644 index 0000000000..717c411941 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_language_add.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'æ·»åŠ æ–°è¯è¨€'; +$wb['language_select_txt'] = '选择è¯è¨€åŸºç¡€'; +$wb['language_new_txt'] = 'æ–°è¯è¨€'; +$wb['language_new_hint_txt'] = '2 个å—符的 ISO 639-1 è¯è¨€ä»£ç (å‚è§ https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; +$wb['btn_save_txt'] = '创建新è¯è¨€æ–‡ä»¶é›†'; +$wb['btn_cancel_txt'] = '返回'; +?> diff --git a/interface/web/admin/lib/lang/cn_language_complete.lng b/interface/web/admin/lib/lang/cn_language_complete.lng new file mode 100644 index 0000000000..b78431d3f9 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_language_complete.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'åˆå¹¶è¯è¨€æ–‡ä»¶'; +$wb['list_desc_txt'] = '将所选è¯è¨€æ–‡ä»¶ä¸Žè‹±æ–‡ä¸»è¯è¨€æ–‡ä»¶åˆå¹¶ã€‚<br />这将把英文主è¯è¨€æ–‡ä»¶ä¸ç¼ºå¤±çš„å—ç¬¦ä¸²æ·»åŠ åˆ°æ‰€é€‰è¯è¨€æ–‡ä»¶ä¸ã€‚'; +$wb['language_select_txt'] = '选择è¯è¨€'; +$wb['btn_save_txt'] = 'ç«‹å³åˆå¹¶æ–‡ä»¶'; +$wb['btn_cancel_txt'] = '返回'; +?> diff --git a/interface/web/admin/lib/lang/cn_language_edit.lng b/interface/web/admin/lib/lang/cn_language_edit.lng new file mode 100644 index 0000000000..b4a0c104ec --- /dev/null +++ b/interface/web/admin/lib/lang/cn_language_edit.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'è¯è¨€æ–‡ä»¶ç¼–辑器'; +$wb['language_select_txt'] = '选择è¯è¨€'; +$wb['module_txt'] = '模å—'; +$wb['lang_file_txt'] = 'è¯è¨€æ–‡ä»¶'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = '返回'; +?> diff --git a/interface/web/admin/lib/lang/cn_language_export.lng b/interface/web/admin/lib/lang/cn_language_export.lng new file mode 100644 index 0000000000..bbb3e7aee7 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_language_export.lng @@ -0,0 +1,6 @@ +<?php +$wb['list_head_txt'] = '导出è¯è¨€æ–‡ä»¶'; +$wb['language_select_txt'] = '选择è¯è¨€'; +$wb['btn_save_txt'] = '导出所选è¯è¨€æ–‡ä»¶é›†'; +$wb['btn_cancel_txt'] = '返回'; +?> diff --git a/interface/web/admin/lib/lang/cn_language_import.lng b/interface/web/admin/lib/lang/cn_language_import.lng new file mode 100644 index 0000000000..a9a2ff908d --- /dev/null +++ b/interface/web/admin/lib/lang/cn_language_import.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '导入è¯è¨€æ–‡ä»¶'; +$wb['list_desc_txt'] = 'è¦å‘Šï¼šä¸è¦ä»Žä¸å—信任的æ¥æºå¯¼å…¥è¯è¨€æ–‡ä»¶ã€‚'; +$wb['language_import_txt'] = '选择è¯è¨€æ–‡ä»¶'; +$wb['btn_save_txt'] = '导入所选的è¯è¨€æ–‡ä»¶'; +$wb['language_overwrite_txt'] = '如果å˜åœ¨åˆ™è¦†ç›–文件。'; +$wb['btn_cancel_txt'] = '返回'; +$wb['ignore_version_txt'] = '跳过 ISPConfig 版本检查'; +?> diff --git a/interface/web/admin/lib/lang/cn_language_list.lng b/interface/web/admin/lib/lang/cn_language_list.lng new file mode 100644 index 0000000000..0a33f825db --- /dev/null +++ b/interface/web/admin/lib/lang/cn_language_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'è¯è¨€æ–‡ä»¶ç¼–辑器'; +$wb['language_select_txt'] = '选择è¯è¨€'; +$wb['module_txt'] = '模å—'; +$wb['lang_file_txt'] = 'è¯è¨€æ–‡ä»¶'; +$wb['lang_file_date_txt'] = '最åŽä¿®æ”¹æ—¶é—´'; +?> diff --git a/interface/web/admin/lib/lang/cn_package_install.lng b/interface/web/admin/lib/lang/cn_package_install.lng new file mode 100644 index 0000000000..744bc8c839 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_package_install.lng @@ -0,0 +1,7 @@ +<?php +$wb['repo_name_txt'] = '仓库å称'; +$wb['repo_url_txt'] = 'URL'; +$wb['repo_username_txt'] = '用户å(å¯é€‰ï¼‰'; +$wb['repo_password_txt'] = '密ç (å¯é€‰ï¼‰'; +$wb['active_txt'] = 'å¯ç”¨'; +?> diff --git a/interface/web/admin/lib/lang/cn_remote_action.lng b/interface/web/admin/lib/lang/cn_remote_action.lng new file mode 100644 index 0000000000..65a75fa6f1 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_remote_action.lng @@ -0,0 +1,12 @@ +<?php +$wb['select_server_txt'] = '选择æœåŠ¡å™¨'; +$wb['btn_do_txt'] = '执行æ“作'; +$wb['do_osupdate_caption'] = '在远程æœåŠ¡å™¨ä¸Šæ‰§è¡Œæ“作系统更新'; +$wb['do_osupdate_desc'] = 'æ¤æ“作将在所选æœåŠ¡å™¨ä¸Šæ‰§è¡Œ "apt -y upgrade" 命令。<br><br><strong>请自行承担风险ï¼</strong>'; +$wb['do_ispcupdate_caption'] = '在远程æœåŠ¡å™¨ä¸Šæ‰§è¡Œ ISPConfig 3 æ›´æ–°'; +$wb['do_ispcupdate_desc'] = 'æ¤æ“作将在所选æœåŠ¡å™¨ä¸Šæ‰§è¡Œ ISPConfig3 更新。<br><br><strong>请自行承担风险ï¼</strong>'; +$wb['action_scheduled'] = 'æ“作已安排执行'; +$wb['select_all_server'] = '所有æœåŠ¡å™¨'; +$wb['ispconfig_update_title'] = 'ISPConfig 更新说明'; +$wb['ispconfig_update_text'] = '以 root 用户身份登录æœåŠ¡å™¨ shell,执行命令<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />以开始 ISPConfig 更新。<br /><br /><a href="https://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/" target="_blank">å•å‡»æ¤å¤„获å–详细的更新说明</a>'; +?> diff --git a/interface/web/admin/lib/lang/cn_remote_user.lng b/interface/web/admin/lib/lang/cn_remote_user.lng new file mode 100644 index 0000000000..66552727d4 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_remote_user.lng @@ -0,0 +1,52 @@ +<?php +$wb['remote_user_txt'] = '远程用户'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['function_txt'] = '功能'; +$wb['username_error_unique'] = '用户å必须唯一'; +$wb['username_error_empty'] = '用户åä¸èƒ½ä¸ºç©º'; +$wb['password_error_empty'] = '密ç ä¸èƒ½ä¸ºç©º'; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['Mail domain functions'] = '邮件域功能'; +$wb['Mail mailing list functions'] = '邮件列表功能'; +$wb['Mail user functions'] = '邮件用户功能'; +$wb['Mail alias functions'] = '邮件别å功能'; +$wb['Mail forward functions'] = '邮件转å‘功能'; +$wb['Mail catchall functions'] = '邮件抓å–功能'; +$wb['Mail transport functions'] = 'é‚®ä»¶ä¼ è¾“åŠŸèƒ½'; +$wb['Mail whitelist functions'] = '邮件白åå•åŠŸèƒ½'; +$wb['Mail blacklist functions'] = '邮件黑åå•åŠŸèƒ½'; +$wb['Mail spamfilter user functions'] = '邮件垃圾过滤用户功能'; +$wb['Mail spamfilter policy functions'] = '邮件垃圾过滤ç–略功能'; +$wb['Mail fetchmail functions'] = '邮件获å–功能'; +$wb['Mail user filter functions'] = '邮件用户过滤功能'; +$wb['Mail filter functions'] = '邮件过滤功能'; +$wb['Client functions'] = '客户端功能'; +$wb['Sites cron functions'] = '站点cron功能'; +$wb['Sites database functions'] = '站点数æ®åº“功能'; +$wb['Sites FTP-User functions'] = '站点FTP用户功能'; +$wb['Sites Shell-User functions'] = '站点Shell用户功能'; +$wb['Sites Domain functions'] = '站点域功能'; +$wb['Sites Aliasdomain functions'] = '站点别å域功能'; +$wb['Sites Subdomain functions'] = '站点å域功能'; +$wb['DNS zone functions'] = 'DNS区域功能'; +$wb['DNS a functions'] = 'DNS A记录功能'; +$wb['DNS aaaa functions'] = 'DNS AAAA记录功能'; +$wb['DNS alias functions'] = 'DNS别å功能'; +$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记录功能'; +$wb['DNS srv functions'] = 'DNS SRV记录功能'; +$wb['DNS txt functions'] = 'DNS TXT记录功能'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['remote_access_txt'] = '远程访问'; +$wb['remote_ips_txt'] = '远程访问IP/主机å(用逗å·éš”开,留空为任æ„)'; +$wb['remote_user_error_ips'] = '输入的IP地å€æˆ–主机åä¸å˜åœ¨æ— 效的内容。'; +?> diff --git a/interface/web/admin/lib/lang/cn_remote_user_list.lng b/interface/web/admin/lib/lang/cn_remote_user_list.lng new file mode 100644 index 0000000000..7b90e136d0 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_remote_user_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '远程用户'; +$wb['list_desc_txt'] = ''; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç”¨æˆ·'; +$wb['parent_remote_userid_txt'] = '用户ID'; +$wb['username_txt'] = '用户å'; +?> diff --git a/interface/web/admin/lib/lang/cn_server.lng b/interface/web/admin/lib/lang/cn_server.lng new file mode 100644 index 0000000000..75f0e247f2 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server.lng @@ -0,0 +1,16 @@ +<?php +$wb['config_txt'] = 'é…ç½®'; +$wb['server_name_txt'] = 'æœåŠ¡å™¨å称'; +$wb['mail_server_txt'] = '邮件æœåŠ¡å™¨'; +$wb['web_server_txt'] = 'Web æœåŠ¡å™¨'; +$wb['dns_server_txt'] = 'DNS æœåŠ¡å™¨'; +$wb['file_server_txt'] = '文件æœåŠ¡å™¨'; +$wb['db_server_txt'] = 'æ•°æ®åº“æœåŠ¡å™¨'; +$wb['vserver_server_txt'] = 'VServer æœåŠ¡å™¨'; +$wb['proxy_server_txt'] = '代ç†æœåŠ¡å™¨'; +$wb['firewall_server_txt'] = '防ç«å¢™æœåŠ¡å™¨'; +$wb['active_txt'] = '激活'; +$wb['mirror_server_id_txt'] = 'é•œåƒæœåŠ¡å™¨'; +$wb['- None -'] = '- 空 -'; +$wb['xmpp_server_txt'] = 'XMPP æœåŠ¡å™¨'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_config.lng b/interface/web/admin/lib/lang/cn_server_config.lng new file mode 100644 index 0000000000..5d5d6eeb25 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_config.lng @@ -0,0 +1,354 @@ +<?php +$wb['server_config'] = 'æœåŠ¡å™¨é…ç½®'; +$wb['config_for_txt'] = '针对é…ç½®'; +$wb['server_config_error_not_updated'] = 'æœåŠ¡å™¨é…置错误:未更新'; +$wb['server_config_error_section_not_updated'] = 'æœåŠ¡å™¨é…置错误:%s 部分未更新'; +$wb['ufw_enable_txt'] = 'å¯ç”¨'; +$wb['ufw_manage_builtins_txt'] = '管ç†å†…置规则'; +$wb['ufw_ipv6_txt'] = 'å¯ç”¨IPv6'; +$wb['ufw_default_input_policy_txt'] = '默认输入ç–ç•¥'; +$wb['ufw_default_output_policy_txt'] = '默认输出ç–ç•¥'; +$wb['ufw_default_forward_policy_txt'] = '默认转å‘ç–ç•¥'; +$wb['ufw_default_application_policy_txt'] = '默认应用ç–ç•¥'; +$wb['ufw_log_level_txt'] = '日志级别'; +$wb['jailkit_chroot_home_txt'] = 'Jailkit chroot 主目录'; +$wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot 应用程åºéƒ¨åˆ†'; +$wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chroot 应用程åº'; +$wb['jailkit_chroot_cron_programs_txt'] = 'Jailkit cron chroot 应用程åº'; +$wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys 模æ¿'; +$wb['website_path_txt'] = '网站路径'; +$wb['website_symlinks_txt'] = '网站符å·é“¾æŽ¥'; +$wb['website_symlinks_rel_txt'] = '创建相对符å·é“¾æŽ¥'; +$wb['website_basedir_txt'] = '网站基目录'; +$wb['website_autoalias_txt'] = '网站自动别å'; +$wb['website_autoalias_note_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 å¯åŠ¨è„šæœ¬'; +$wb['fastcgi_alias_txt'] = 'FastCGI 别å'; +$wb['fastcgi_phpini_path_txt'] = 'FastCGI php.ini 路径'; +$wb['fastcgi_children_txt'] = 'FastCGI å进程数'; +$wb['fastcgi_max_requests_txt'] = 'FastCGI 最大请求数'; +$wb['fastcgi_bin_txt'] = 'FastCGI å¯æ‰§è¡Œæ–‡ä»¶'; +$wb['module_txt'] = '模å—'; +$wb['maildir_path_txt'] = 'Maildir 路径'; +$wb['maildir_format_txt'] = 'Maildir æ ¼å¼'; +$wb['homedir_path_txt'] = '主目录路径'; +$wb['mailuser_uid_txt'] = '邮件用户UID'; +$wb['mailuser_gid_txt'] = '邮件用户GID'; +$wb['mailuser_name_txt'] = '邮件用户å'; +$wb['mailuser_group_txt'] = '邮件用户组'; +$wb['mailbox_virtual_uidgid_maps_txt'] = '使用网站Linux uid作为邮箱'; +$wb['mailbox_virtual_uidgid_maps_info_txt'] = '仅在å•ä¸ªWeb和邮件æœåŠ¡å™¨è®¾ç½®ä¸å¯ç”¨'; +$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = '在多æœåŠ¡å™¨è®¾ç½®ä¸æ— æ³•æ˜ å°„UID。'; +$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'UIDæ˜ å°„åªèƒ½ä¸Ždovecot一起使用。'; +$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = '如果已ç»æœ‰é‚®ä»¶ç”¨æˆ·ï¼Œåˆ™æ— 法更改UIDæ˜ å°„ã€‚'; +$wb['relayhost_txt'] = 'ä¸ç»§ä¸»æœº'; +$wb['relayhost_user_txt'] = 'ä¸ç»§ä¸»æœºç”¨æˆ·å'; +$wb['relayhost_password_txt'] = 'ä¸ç»§ä¸»æœºå¯†ç '; +$wb['reject_sender_login_mismatch_txt'] = 'æ‹’ç»å‘件人和登录用户ä¸åŒ¹é…'; +$wb['reject_unknown_txt'] = 'æ‹’ç»æœªçŸ¥ä¸»æœºå'; +$wb['tooltip_reject_unknown_txt'] = '需è¦ä¸»æœºå通过DNS检查。对ç»è¿‡èº«ä»½éªŒè¯çš„用户ä¸è¿›è¡Œæ£€æŸ¥ã€‚'; +$wb['reject_unknown_txt'] = 'æ‹’ç»æœªçŸ¥çš„helo主机å'; +$wb['tooltip_reject_unknown_txt'] = '需è¦ä¸»æœºå通过DNS检测。对已认è¯ç”¨æˆ·ä¸è¿›è¡Œæ£€æŸ¥ã€‚'; +$wb['reject_unknown_helo_txt'] = 'æ‹’ç»æœªçŸ¥çš„ helo 主机å'; +$wb['reject_unknown_client_txt'] = 'æ‹’ç»æœªçŸ¥çš„客户端主机å'; +$wb['reject_unknown_client_helo_txt'] = 'æ‹’ç»æœªçŸ¥çš„helo和客户端主机å'; +$wb['reject_unknown_helo_txt'] = 'æ‹’ç»æœªçŸ¥çš„helo主机å'; +$wb['reject_unknown_client_txt'] = 'æ‹’ç»æœªçŸ¥çš„客户端主机å'; +$wb['reject_unknown_client_helo_txt'] = 'æ‹’ç»æœªçŸ¥çš„helo和客户端主机å'; +$wb['mailbox_size_limit_txt'] = '邮箱大å°é™åˆ¶'; +$wb['message_size_limit_txt'] = '邮件大å°é™åˆ¶'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['netmask_txt'] = 'å网掩ç '; +$wb['gateway_txt'] = '网关'; +$wb['hostname_txt'] = '主机å'; +$wb['nameservers_txt'] = '域åæœåŠ¡å™¨'; +$wb['auto_network_configuration_txt'] = '网络é…ç½®'; +$wb['ip_address_error_wrong'] = 'æ— æ•ˆçš„IP地å€æ ¼å¼ã€‚'; +$wb['netmask_error_wrong'] = 'æ— æ•ˆçš„å网掩ç æ ¼å¼ã€‚'; +$wb['gateway_error_wrong'] = 'æ— æ•ˆçš„ç½‘å…³æ ¼å¼ã€‚'; +$wb['hostname_error_empty'] = '主机å为空。'; +$wb['hostname_error_regex'] = 'æ— æ•ˆçš„ä¸»æœºå。'; +$wb['nameservers_error_empty'] = '域åæœåŠ¡å™¨ä¸ºç©ºã€‚'; +$wb['config_dir_txt'] = 'é…置目录'; +$wb['init_script_txt'] = '定时任务åˆå§‹åŒ–脚本å称'; +$wb['crontab_dir_txt'] = 'å„自的定时任务路径'; +$wb['wget_txt'] = 'wget程åºè·¯å¾„'; +$wb['web_user_txt'] = 'Apache用户'; +$wb['web_group_txt'] = 'Apache组'; +$wb['security_level_txt'] = '安全级别'; +$wb['loglevel_txt'] = '日志级别'; +$wb['apps_vhost_port_txt'] = 'Apps-vhost端å£'; +$wb['apps_vhost_ip_txt'] = 'Apps-vhost IP地å€'; +$wb['apps_vhost_servername_txt'] = 'Apps-vhost域å'; +$wb['bind_user_txt'] = 'BIND用户'; +$wb['bind_group_txt'] = 'BIND用户组'; +$wb['bind_zonefiles_dir_txt'] = 'BIND区域文件目录'; +$wb['bind_keyfiles_dir_txt'] = 'BIND密钥文件目录'; +$wb['named_conf_path_txt'] = 'BIND named.conf路径'; +$wb['bind_user_error_empty'] = 'BIND用户为空。'; +$wb['bind_group_error_empty'] = 'BIND用户组为空。'; +$wb['bind_zonefiles_dir_error_empty'] = 'BIND区域文件目录为空。'; +$wb['bind_keyfiles_dir_error_empty'] = 'BIND密钥文件目录为空。'; +$wb['named_conf_path_error_empty'] = 'BIND named.conf路径为空。'; +$wb['named_conf_local_path_error_empty'] = 'BIND named.conf.local路径为空。'; +$wb['mail_filter_syntax_txt'] = '邮件过滤器è¯æ³•'; +$wb['pop3_imap_daemon_txt'] = 'POP3/IMAP守护程åº'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['php_open_basedir_error_empty'] = 'PHP open_basedir为空。'; +$wb['htaccess_allow_override_txt'] = '.htaccess AllowOverride'; +$wb['htaccess_allow_override_error_empty'] = '.htaccess AllowOverride为空。'; +$wb['awstats_conf_dir_txt'] = 'awstatsé…置文件目录'; +$wb['awstats_data_dir_txt'] = 'awstatsæ•°æ®æ–‡ä»¶ç›®å½•'; +$wb['awstats_pl_txt'] = 'awstats.pl脚本'; +$wb['awstats_buildstaticpages_pl_txt'] = 'awstats_buildstaticpages.pl脚本'; +$wb['backup_dir_txt'] = '备份目录'; +$wb['backup_tmp_txt'] = '备份临时目录,用于压缩'; +$wb['named_conf_local_path_txt'] = 'BIND named.conf.local路径'; +$wb['php_ini_path_cgi_txt'] = 'CGI php.ini路径'; +$wb['php_ini_path_apache_txt'] = 'Apache php.ini路径'; +$wb['check_apache_config_txt'] = 'é‡å¯æ—¶æµ‹è¯•WebæœåŠ¡å™¨é…ç½®'; +$wb['network_config_warning_txt'] = '网络é…置选项仅适用于Debianå’ŒUbuntuæœåŠ¡å™¨ã€‚如果您的网络接å£ä¸æ˜¯eth0,请ä¸è¦å¯ç”¨æ¤é€‰é¡¹ã€‚'; +$wb['CA_path_txt'] = 'CA路径'; +$wb['CA_pass_txt'] = 'CA密ç '; +$wb['fastcgi_config_syntax_txt'] = 'FastCGIé…ç½®è¯æ³•'; +$wb['backup_mode_txt'] = '备份模å¼'; +$wb['backup_mode_userzip'] = '备份网站文件,以网站用户为拥有者并以 zip æ ¼å¼ä¿å˜'; +$wb['backup_mode_rootgz'] = '备份网站目录下所有文件,以 root 用户身份执行'; +$wb['backup_mode_borg_txt'] = 'BorgBackup:备份 vhost 目录和数æ®åº“到增é‡å˜å‚¨åº“'; +$wb['backup_missing_utils_txt'] = 'æ— æ³•ä½¿ç”¨ä»¥ä¸‹å¤‡ä»½æ¨¡å¼ï¼Œå› 为需è¦çš„工具未安装:'; +$wb['tmpdir_path_error_empty'] = 'tmp-dir 路径为空。'; +$wb['tmpdir_path_error_regex'] = 'æ— æ•ˆçš„ tmp-dir 路径。'; +$wb['backup_time_txt'] = '备份时间'; +$wb['server_type_txt'] = 'æœåŠ¡å™¨ç±»åž‹'; +$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Vhost é…置目录'; +$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Nginx Vhost é…ç½®å¯ç”¨ç›®å½•'; +$wb['nginx_user_txt'] = 'Nginx 用户'; +$wb['nginx_group_txt'] = 'Nginx 用户组'; +$wb['nginx_cgi_socket_txt'] = 'Nginx CGI Socket'; +$wb['backup_dir_error_empty'] = '备份目录为空。'; +$wb['maildir_path_error_empty'] = 'Maildir 路径为空。'; +$wb['homedir_path_error_empty'] = 'Homedir 路径为空。'; +$wb['mailuser_uid_error_empty'] = 'Mailuser UID 为空。'; +$wb['mailuser_gid_error_empty'] = 'Mailuser GID 为空。'; +$wb['mailuser_name_error_empty'] = 'Mailuser å称为空。'; +$wb['mailuser_group_error_empty'] = 'Mailuser 用户组为空。'; +$wb['getmail_config_dir_error_empty'] = 'Getmail é…置目录为空。'; +$wb['website_basedir_error_empty'] = 'ç½‘ç«™æ ¹ç›®å½•ä¸ºç©ºã€‚'; +$wb['website_path_error_empty'] = '网站路径为空。'; +$wb['website_symlinks_error_empty'] = '网站符å·é“¾æŽ¥ä¸ºç©ºã€‚'; +$wb['vhost_conf_dir_error_empty'] = 'Vhost é…置目录为空。'; +$wb['vhost_conf_enabled_dir_error_empty'] = 'Vhost é…ç½®å¯ç”¨ç›®å½•ä¸ºç©ºã€‚'; +$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx Vhost é…置目录为空。'; +$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Nginx Vhost é…ç½®å¯ç”¨ç›®å½•ä¸ºç©ºã€‚'; +$wb['apache_user_error_empty'] = 'Apache 用户为空。'; +$wb['apache_group_error_empty'] = 'Apache 用户组为空。'; +$wb['nginx_user_error_empty'] = 'Nginx 用户为空。'; +$wb['nginx_group_error_empty'] = 'Nginx 用户组为空。'; +$wb['php_ini_path_apache_error_empty'] = 'Apache php.ini 路径为空。'; +$wb['php_ini_path_cgi_error_empty'] = 'CGI php.ini 路径为空。'; +$wb['nginx_cgi_socket_empty'] = 'Nginx CGI Socket 为空。'; +$wb['apps_vhost_port_error_empty'] = 'Apps-vhost 端å£ä¸ºç©ºã€‚'; +$wb['apps_vhost_ip_error_empty'] = 'Apps-vhost IP为空。'; +$wb['fastcgi_starter_path_error_empty'] = 'FastCGIå¯åŠ¨è·¯å¾„为空。'; +$wb['fastcgi_starter_script_error_empty'] = 'FastCGIå¯åŠ¨è„šæœ¬ä¸ºç©ºã€‚'; +$wb['fastcgi_alias_error_empty'] = 'FastCGI别å为空。'; +$wb['fastcgi_phpini_path_error_empty'] = 'FastCGI php.ini路径为空。'; +$wb['fastcgi_children_error_empty'] = 'FastCGIå进程数为空。'; +$wb['fastcgi_max_requests_error_empty'] = 'FastCGI最大请求数为空。'; +$wb['fastcgi_bin_error_empty'] = 'FastCGI二进制文件路径为空。'; +$wb['jailkit_chroot_home_error_empty'] = 'Jailkit chroot主目录为空。'; +$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit chroot应用程åºéƒ¨åˆ†ä¸ºç©ºã€‚'; +$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit chroot应用程åºä¸ºç©ºã€‚'; +$wb['jailkit_chroot_cron_programs_error_empty'] = 'Jailkit cron chroot应用程åºä¸ºç©ºã€‚'; +$wb['vlogger_config_dir_error_empty'] = 'é…置目录为空。'; +$wb['cron_init_script_error_empty'] = 'Cron init脚本å为空。'; +$wb['crontab_dir_error_empty'] = '个人crontab路径为空。'; +$wb['cron_wget_error_empty'] = 'wget程åºè·¯å¾„为空。'; +$wb['php_fpm_init_script_txt'] = 'PHP-FPM init脚本'; +$wb['php_fpm_init_script_error_empty'] = 'PHP-FPM init脚本为空。'; +$wb['php_fpm_ini_path_txt'] = 'PHP-FPM php.ini路径'; +$wb['php_fpm_ini_path_error_empty'] = 'PHP-FPM php.ini路径为空。'; +$wb['php_fpm_pool_dir_txt'] = 'PHP-FPMæ± ç›®å½•'; +$wb['php_fpm_pool_dir_error_empty'] = 'PHP-FPMæ± ç›®å½•ä¸ºç©ºã€‚'; +$wb['php_fpm_start_port_txt'] = 'PHP-FPM起始端å£'; +$wb['php_fpm_start_port_error_empty'] = 'PHP-FPM起始端å£ä¸ºç©ºã€‚'; +$wb['php_fpm_socket_dir_txt'] = 'PHP-FPM套接å—目录'; +$wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM套接å—目录为空。'; +$wb['try_rescue_txt'] = 'å¯ç”¨æœåŠ¡ç›‘视并在失败åŽé‡å¯'; +$wb['do_not_try_rescue_httpd_txt'] = 'ç¦ç”¨HTTPD监视'; +$wb['do_not_try_rescue_mongodb_txt'] = 'ç¦ç”¨MongoDB监视'; +$wb['do_not_try_rescue_mysql_txt'] = 'ç¦ç”¨MySQL监视'; +$wb['do_not_try_rescue_mail_txt'] = 'ç¦ç”¨ç”µå邮件监视'; +$wb['rescue_description_txt'] = '如果è¦å…³é—MySQL,必须选择“ç¦ç”¨MySQL监视â€å¤é€‰æ¡†ï¼Œç„¶åŽç‰å¾…2-3分钟。如果ä¸ç‰å¾…2-3分钟,救æ´å°†å°è¯•é‡æ–°å¯åŠ¨MySQLï¼'; +$wb['enable_sni_txt'] = 'å¯ç”¨SNI'; +$wb['set_folder_permissions_on_update_txt'] = '更新时设置文件夹æƒé™'; +$wb['add_web_users_to_sshusers_group_txt'] = 'å°†Webç”¨æˆ·æ·»åŠ åˆ°-sshusers-组ä¸'; +$wb['connect_userid_to_webid_txt'] = 'å°†Linux用户ID连接到Web ID'; +$wb['connect_userid_to_webid_start_txt'] = '用户ID / Web ID连接的起始ID'; +$wb['realtime_blackhole_list_txt'] = '实时黑洞åå•'; +$wb['realtime_blackhole_list_note_txt'] = '(使用逗å·åˆ†éš”RBL)'; +$wb['stress_adaptive_txt'] = '适应临时负载峰值'; +$wb['tooltip_stress_adaptive_txt'] = 'å¯ç”¨Postfix的应力自适应行为。'; +$wb['ssl_settings_txt'] = 'SSL设置'; +$wb['permissions_txt'] = 'æƒé™'; +$wb['php_settings_txt'] = 'PHP设置'; +$wb['apps_vhost_settings_txt'] = '应用程åºVhost设置'; +$wb['awstats_settings_txt'] = 'AWStats设置'; +$wb['firewall_txt'] = '防ç«å¢™'; +$wb['mailbox_quota_stats_txt'] = '邮箱é…é¢ç»Ÿè®¡ä¿¡æ¯'; +$wb['enable_ip_wildcard_txt'] = 'å¯ç”¨IP通é…符(*)'; +$wb['web_folder_protection_txt'] = '使Web文件夹ä¸å¯å˜ï¼ˆæ‰©å±•å±žæ€§ï¼‰'; +$wb['overtraffic_notify_admin_txt'] = 'å‘管ç†å‘˜å‘é€è¶…æµé‡é€šçŸ¥'; +$wb['overtraffic_notify_reseller_txt'] = 'å‘ç»é”€å•†å‘é€è¶…æµé‡é€šçŸ¥'; +$wb['overtraffic_notify_client_txt'] = 'å‘客户å‘é€è¶…æµé‡é€šçŸ¥'; +$wb['overtraffic_disable_web_txt'] = 'ç¦ç”¨è¶…出æµé‡é™åˆ¶çš„网站'; +$wb['rbl_error_regex'] = '请指定有效的RBL主机å。'; +$wb['overquota_notify_threshold_txt'] = 'é…é¢è¦å‘Šä½¿ç”¨æ°´å¹³'; +$wb['overquota_notify_threshold_error'] = 'é…é¢è¦å‘Šä½¿ç”¨æ°´å¹³å¿…须在0-100%之间'; +$wb['overquota_notify_admin_txt'] = 'å‘管ç†å‘˜å‘é€é…é¢è¦å‘Š'; +$wb['overquota_notify_reseller_txt'] = 'å‘ç»é”€å•†å‘é€é…é¢è¦å‘Š'; +$wb['overquota_notify_client_txt'] = 'å‘客户å‘é€é…é¢è¦å‘Š'; +$wb['overquota_notify_onok_txt'] = 'å‘客户å‘é€é…é¢æ£å¸¸æ¶ˆæ¯'; +$wb['overquota_notify_freq_txt'] = 'æ¯X天å‘é€ä¸€æ¬¡é…é¢è¦å‘Š'; +$wb['overquota_notify_freq_note_txt'] = '0 = ä»…å‘é€ä¸€æ¬¡æ¶ˆæ¯ï¼Œä¸é‡å¤å‘é€'; +$wb['admin_notify_events_txt'] = '从以下级别开始å‘管ç†å‘˜å‘é€ç”µå邮件'; +$wb['no_notifications_txt'] = 'æ— é€šçŸ¥'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit用户'; +$wb['monit_password_txt'] = 'Monit密ç '; +$wb['monit_url_error_regex'] = 'æ— æ•ˆçš„Monit URL'; +$wb['monit_url_note_txt'] = 'å ä½ç¬¦ï¼š'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin用户'; +$wb['munin_password_txt'] = 'Munin密ç '; +$wb['munin_url_error_regex'] = 'æ— æ•ˆçš„Munin URL'; +$wb['munin_url_note_txt'] = 'å ä½ç¬¦ï¼š'; +$wb['v6_prefix_txt'] = 'IPv6å‰ç¼€'; +$wb['vhost_rewrite_v6_txt'] = '在镜åƒä¸Šé‡å†™IPv6'; +$wb['v6_prefix_length'] = 'æ ¹æ®å®šä¹‰çš„IPv6,å‰ç¼€å¤ªé•¿'; +$wb['backup_dir_is_mount_txt'] = '备份目录是å¦æŒ‚载?'; +$wb['backup_dir_mount_cmd_txt'] = '如果备份目录未挂载,请输入挂载命令'; +$wb['backup_delete_txt'] = 'åœ¨åˆ é™¤åŸŸå/ç½‘ç«™æ—¶åˆ é™¤å¤‡ä»½'; +$wb['overquota_db_notify_threshold_txt'] = 'DBé…é¢è¦å‘Šä½¿ç”¨æ°´å¹³'; +$wb['overquota_db_notify_admin_txt'] = 'å‘管ç†å‘˜å‘é€DBé…é¢è¦å‘Š'; +$wb['overquota_db_notify_reseller_txt'] = 'å‘ç»é”€å•†å‘é€DBé…é¢è¦å‘Š'; +$wb['overquota_db_notify_client_txt'] = 'å‘客户å‘é€DBé…é¢è¦å‘Š'; +$wb['monitor_system_updates_txt'] = '检查Linuxæ›´æ–°'; +$wb['php_handler_txt'] = '默认的 PHP 处ç†å™¨'; +$wb['php_fpm_default_chroot_txt'] = '默认的 PHP-FPM chroot'; +$wb['php_fpm_incron_reload_txt'] = '安装 incron 触å‘器文件以é‡æ–°åŠ è½½ PHP-FPM'; +$wb['disabled_txt'] = 'å·²ç¦ç”¨'; +$wb['dkim_strength_txt'] = 'DKIM 强度'; +$wb['monitor_system_updates_txt'] = '检查 Linux æ›´æ–°'; +$wb['invalid_apache_user_txt'] = 'æ— æ•ˆçš„ Apache 用户。'; +$wb['invalid_apache_group_txt'] = 'æ— æ•ˆçš„ Apache 组。'; +$wb['backup_dir_error_regex'] = 'æ— æ•ˆçš„å¤‡ä»½ç›®å½•ã€‚'; +$wb['maildir_path_error_regex'] = 'æ— æ•ˆçš„ Maildir 路径。'; +$wb['homedir_path_error_regex'] = 'æ— æ•ˆçš„ homedir 路径。'; +$wb['mailuser_name_error_regex'] = 'æ— æ•ˆçš„ Mailuser å称。'; +$wb['mailuser_group_name_error_regex'] = 'æ— æ•ˆçš„ Mailuser 组å。'; +$wb['mailuser_uid_error_range'] = 'Mailuser UID å¿…é¡» >= 2000。'; +$wb['mailuser_gid_error_range'] = 'Mailuser GID å¿…é¡» >= 2000。'; +$wb['getmail_config_dir_error_regex'] = 'æ— æ•ˆçš„ getmail é…置目录。'; +$wb['website_basedir_error_regex'] = 'æ— æ•ˆçš„ç½‘ç«™åŸºç¡€ç›®å½•è·¯å¾„ï¼Œæœ€å°é•¿åº¦ä¸º 5 个å—符。'; +$wb['website_symlinks_error_regex'] = 'æ— æ•ˆçš„ç½‘ç«™ç¬¦å·é“¾æŽ¥ã€‚'; +$wb['vhost_conf_dir_error_regex'] = 'æ— æ•ˆçš„è™šæ‹Ÿä¸»æœºé…置目录。'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'æ— æ•ˆçš„è™šæ‹Ÿä¸»æœºå¯ç”¨é…置目录。'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'æ— æ•ˆçš„ Nginx é…置目录。'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'æ— æ•ˆçš„ Nginx å¯ç”¨é…置目录。'; +$wb['ca_path_error_regex'] = 'æ— æ•ˆçš„ CA 路径。'; +$wb['invalid_nginx_user_txt'] = 'æ— æ•ˆçš„ Nginx 用户。'; +$wb['invalid_nginx_group_txt'] = 'æ— æ•ˆçš„ Nginx 组。'; +$wb['php_ini_path_apache_error_regex'] = 'æ— æ•ˆçš„ Apache php.ini 路径。'; +$wb['php_ini_path_cgi_error_regex'] = 'æ— æ•ˆçš„ CGI php.ini 路径。'; +$wb['php_fpm_init_script_error_regex'] = 'æ— æ•ˆçš„ PHP-FPM init 脚本。'; +$wb['php_fpm_ini_path_error_regex'] = 'æ— æ•ˆçš„ PHP-FPM ini 路径。'; +$wb['php_fpm_pool_dir_error_regex'] = 'æ— æ•ˆçš„ PHP-FPM æ± ç›®å½•ã€‚'; +$wb['php_fpm_socket_dir_error_regex'] = 'æ— æ•ˆçš„ PHP-FPM socket 目录。'; +$wb['php_open_basedir_error_regex'] = 'æ— æ•ˆçš„ PHP open_basedir。'; +$wb['awstats_data_dir_empty'] = 'awstats æ•°æ®ç›®å½•ä¸ºç©º'; +$wb['awstats_data_dir_error_regex'] = 'æ— æ•ˆçš„ awstats æ•°æ®ç›®å½•ã€‚'; +$wb['awstats_pl_empty'] = 'awstats.pl设置为空。'; +$wb['awstats_pl_error_regex'] = 'æ— æ•ˆçš„awstats.pl路径。'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl为空。'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'æ— æ•ˆçš„awstats_buildstaticpages.pl路径。'; +$wb['invalid_bind_user_txt'] = 'æ— æ•ˆçš„BIND用户。'; +$wb['invalid_bind_group_txt'] = 'æ— æ•ˆçš„BIND用户组。'; +$wb['bind_zonefiles_dir_error_regex'] = 'æ— æ•ˆçš„BIND区域文件目录。'; +$wb['bind_keyfiles_dir_error_regex'] = 'æ— æ•ˆçš„BIND密钥文件目录。'; +$wb['named_conf_path_error_regex'] = 'æ— æ•ˆçš„named.conf路径。'; +$wb['named_conf_local_path_error_regex'] = 'æ— æ•ˆçš„named.conf.local路径。'; +$wb['fastcgi_starter_path_error_regex'] = 'æ— æ•ˆçš„FastCGIå¯åŠ¨å™¨è·¯å¾„。'; +$wb['fastcgi_starter_script_error_regex'] = 'æ— æ•ˆçš„FastCGIå¯åŠ¨å™¨è„šæœ¬ã€‚'; +$wb['fastcgi_alias_error_regex'] = 'æ— æ•ˆçš„FastCGI别å。'; +$wb['fastcgi_phpini_path_error_regex'] = 'æ— æ•ˆçš„FastCGI php.ini路径。'; +$wb['fastcgi_bin_error_regex'] = 'æ— æ•ˆçš„FastCGI bin路径。'; +$wb['jailkit_chroot_home_error_regex'] = 'æ— æ•ˆçš„Jailkit chroot home路径。'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'æ— æ•ˆçš„Jailkit chroot应用程åºsections。'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'æ— æ•ˆçš„Jailkit chroot应用程åºã€‚'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'æ— æ•ˆçš„Jailkit chroot计划任务程åºã€‚'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'æ— æ•ˆçš„ jaikit chroot authorized_keys 模æ¿æ–‡ä»¶ã€‚'; +$wb['vlogger_config_dir_error_regex'] = 'æ— æ•ˆçš„ vlogger é…置目录。'; +$wb['cron_init_script_error_regex'] = 'æ— æ•ˆçš„ cron åˆå§‹åŒ–脚本。'; +$wb['crontab_dir_error_regex'] = 'æ— æ•ˆçš„ crontab 目录。'; +$wb['cron_wget_error_regex'] = 'æ— æ•ˆçš„ cron wget 路径。'; +$wb['network_filesystem_txt'] = '网络文件系统'; +$wb['php_ini_check_minutes_txt'] = 'æ¯ X 分钟检查 php.ini 是å¦æ›´æ”¹'; +$wb['php_ini_check_minutes_error_empty'] = '请指定检查 php.ini 更改的频率。'; +$wb['php_ini_check_minutes_info_txt'] = '0 = æ— éœ€æ£€æŸ¥'; +$wb['web_settings_txt'] = 'Web æœåŠ¡å™¨'; +$wb['xmpp_server_txt'] = 'XMPP æœåŠ¡å™¨'; +$wb['xmpp_use_ipv6_txt'] = '使用 IPv6'; +$wb['xmpp_bosh_max_inactivity_txt'] = '最大 BOSH ä¸æ´»åŠ¨æ—¶é—´'; +$wb['xmpp_bosh_timeout_range_wrong'] = '请输入 BOSH 超时范围介于 15-360 之间'; +$wb['xmpp_module_saslauth'] = 'saslauth'; +$wb['xmpp_server_admins_txt'] = 'æœåŠ¡å™¨ç®¡ç†å‘˜ (JIDs)'; +$wb['xmpp_modules_enabled_txt'] = '全局å¯ç”¨çš„æ’件(æ¯è¡Œä¸€ä¸ªï¼‰'; +$wb['xmpp_ports_txt'] = '组件端å£'; +$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'] = 'ç¦ç”¨bind9消æ¯ä»¥è¿›è¡Œæ—¥å¿—级别WARN'; +$wb['apps_vhost_enabled_txt'] = 'å¯ç”¨Apps-vhost'; +$wb['skip_le_check_txt'] = '跳过Let\'s Encrypt检查'; +$wb['migration_mode_txt'] = 'æœåŠ¡å™¨è¿ç§»æ¨¡å¼'; +$wb['nginx_enable_pagespeed_txt'] = 'å¯ç”¨Pagespeed'; +$wb['logging_txt'] = 'å˜å‚¨ç½‘站访问和错误日志'; +$wb['logging_desc_txt'] = '使用工具>é‡æ–°åŒæ¥å°†æ›´æ”¹åº”用于现有站点。对于Apache,访问和错误日志å¯ä»¥åŒ¿å化。对于nginx,仅访问日志会被匿å化,错误日志将包å«IP地å€ã€‚'; +$wb['log_retention_txt'] = '日志ä¿ç•™æœŸï¼ˆå¤©ï¼‰'; +$wb['log_retention_error_ispositive'] = '日志ä¿ç•™æ—¶é—´å¿…须是大于0çš„æ•°å—'; +$wb['php_default_hide_txt'] = '在选择框ä¸éšè—默认的PHP版本'; +$wb['php_default_name_txt'] = '默认PHP版本的æè¿°'; +$wb['php_default_name_error_empty'] = '默认PHP版本的æè¿°ä¸èƒ½ä¸ºç©º'; +$wb['error_mailbox_message_size_txt'] = '邮箱大å°å¿…须大于ç‰äºŽé‚®ä»¶å¤§å°'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPMé‡æ–°åŠ 载模å¼'; +$wb['content_filter_txt'] = '内容过滤器'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd 用户å'; +$wb['rspamd_password_txt'] = 'Rspamd 密ç '; +$wb['rspamd_redis_servers_txt'] = 'RedisæœåŠ¡å™¨'; +$wb['tooltip_rspamd_redis_servers_txt'] = 'Rspamd将使用的RedisæœåŠ¡å™¨ã€‚例如: , 或。'; +$wb['rspamd_redis_password_txt'] = 'Redis密ç '; +$wb['tooltip_rspamd_redis_password_txt'] = 'RedisæœåŠ¡å™¨çš„密ç (如果未使用,请留空)。'; +$wb['rspamd_redis_bayes_servers_txt'] = 'Bayesçš„RedisæœåŠ¡å™¨'; +$wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Rspamd将用于Bayesçš„RedisæœåŠ¡å™¨ï¼ˆå¦åˆ™è¯·ç•™ç©ºï¼‰ã€‚例如: 或。'; +$wb['rspamd_redis_bayes_password_txt'] = 'Bayes Redis密ç '; +$wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Bayes RedisæœåŠ¡å™¨çš„密ç (如果未使用,请留空)。'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'å¯ç”¨PROXYåè®®'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXYåè®®HTTP端å£'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXYåè®®HTTPS端å£'; +$wb['jailkit_hardlinks_txt'] = 'Jailkit chrootä¸çš„硬链接'; +$wb['tooltip_jailkit_hardlinks_txt'] = '使用硬链接ä¸å®‰å…¨ï¼Œä½†å¯ä»¥èŠ‚çœç£ç›˜ç©ºé—´ã€‚'; +$wb['jailkit_hardlinks_allow_txt'] = 'å…许狱ä¸ç¡¬é“¾æŽ¥'; +$wb['jailkit_hardlinks_no_txt'] = 'ä¸ï¼Œåˆ 除硬链接文件'; +$wb['jailkit_hardlinks_yes_txt'] = '是的,如果å¯èƒ½ï¼Œä½¿ç”¨ç¡¬é“¾æŽ¥'; +$wb['mailbox_soft_delete_txt'] = 'é‚®ç®±è½¯åˆ é™¤'; +$wb['mailbox_soft_delete_info_txt'] = '默认情况下,7天åŽæ¸…ç†ã€‚'; diff --git a/interface/web/admin/lib/lang/cn_server_config_list.lng b/interface/web/admin/lib/lang/cn_server_config_list.lng new file mode 100644 index 0000000000..4e4694c4e1 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_config_list.lng @@ -0,0 +1,4 @@ +<?php +$wb['list_head_txt'] = 'æœåŠ¡å™¨é…ç½®'; +$wb['server_name_txt'] = 'æœåŠ¡å™¨å称'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_ip.lng b/interface/web/admin/lib/lang/cn_server_ip.lng new file mode 100644 index 0000000000..c7b1593515 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_ip.lng @@ -0,0 +1,13 @@ +<?php +$wb['server_ip_edit_title'] = 'IP地å€'; +$wb['server_ip_edit_desc'] = '编辑系统IP地å€çš„表å•'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_id_txt'] = '客户'; +$wb['ip_type_txt'] = '类型'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['virtualhost_txt'] = 'HTTP NameVirtualHost'; +$wb['virtualhost_port_txt'] = 'HTTP端å£'; +$wb['ip_error_wrong'] = 'IP地å€æ— 效'; +$wb['ip_error_unique'] = 'IP地å€å¿…须唯一'; +$wb['error_port_syntax'] = '端å£å—段ä¸æœ‰æ— 效å—符,请åªè¾“入逗å·åˆ†éš”çš„æ•°å—。例如:80,443'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_ip_list.lng b/interface/web/admin/lib/lang/cn_server_ip_list.lng new file mode 100644 index 0000000000..49d1f0a4f0 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_ip_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'IP地å€'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_id_txt'] = '客户'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„IP地å€'; +$wb['virtualhost_txt'] = 'HTTP虚拟主机'; +$wb['virtualhost_port_txt'] = 'HTTP端å£'; +$wb['ip_type_txt'] = '类型'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_ip_map.lng b/interface/web/admin/lib/lang/cn_server_ip_map.lng new file mode 100644 index 0000000000..ff3ed0b27b --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_ip_map.lng @@ -0,0 +1,14 @@ +<?php +$wb['server_ip_map_title'] = 'IPv4地å€æ˜ å°„'; +$wb['server_ip_map_desc'] = '用于WebæœåŠ¡å™¨çš„IPv4地å€æ˜ 射表å•'; +$wb['server_id_txt'] = 'é‡å†™æœåŠ¡å™¨'; +$wb['source_txt'] = 'æºIP'; +$wb['destination_txt'] = 'ç›®æ ‡IP'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['ip_error_wrong'] = 'ç›®æ ‡IP地å€æ— 效'; +$wb['destination_ip_empty'] = 'ç›®æ ‡IP为空。'; +$wb['source_ip_empty'] = 'æºIP为空。'; +$wb['server_empty_error'] = 'æœåŠ¡å™¨ä¸ºç©ºã€‚'; +$wb['duplicate_mapping_error'] = 'æ˜ å°„å·²å˜åœ¨ã€‚'; +$wb['ip_mapping_error'] = 'æºIPä¸èƒ½æ˜¯é‡å†™æœåŠ¡å™¨çš„IP地å€'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_ip_map_list.lng b/interface/web/admin/lib/lang/cn_server_ip_map_list.lng new file mode 100644 index 0000000000..1e28d08a77 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_ip_map_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'IPæ˜ å°„'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_ip_txt'] = 'æºIP'; +$wb['destination_ip_txt'] = 'ç›®æ ‡IP'; +$wb['active_txt'] = '激活'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_list.lng b/interface/web/admin/lib/lang/cn_server_list.lng new file mode 100644 index 0000000000..1edbc95a83 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_list.lng @@ -0,0 +1,14 @@ +<?php +$wb['list_head_txt'] = 'æœåŠ¡å™¨'; +$wb['server_name_txt'] = 'å称'; +$wb['mail_server_txt'] = '邮件'; +$wb['web_server_txt'] = '网页'; +$wb['dns_server_txt'] = 'DNS'; +$wb['file_server_txt'] = '文件'; +$wb['db_server_txt'] = 'æ•°æ®åº“'; +$wb['vserver_server_txt'] = '虚拟æœåŠ¡å™¨'; +$wb['proxy_server_txt'] = '代ç†æœåŠ¡å™¨'; +$wb['firewall_server_txt'] = '防ç«å¢™'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°æœåŠ¡å™¨'; +$wb['xmpp_server_txt'] = 'XMPP'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_php.lng b/interface/web/admin/lib/lang/cn_server_php.lng new file mode 100644 index 0000000000..80571fb194 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_php.lng @@ -0,0 +1,20 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_id_txt'] = '客户'; +$wb['name_txt'] = 'PHPå称'; +$wb['Name'] = 'å称'; +$wb['FastCGI Settings'] = 'FastCGI设置'; +$wb['PHP-FPM Settings'] = 'PHP-FPM设置'; +$wb['Additional PHP Versions'] = 'é™„åŠ PHP版本'; +$wb['Form to edit additional PHP versions'] = 'ç¼–è¾‘é™„åŠ PHP版本的表å•'; +$wb['server_php_name_error_empty'] = 'å称å—段ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['php_fastcgi_binary_txt'] = 'PHP FastCGI二进制文件路径'; +$wb['php_fastcgi_ini_dir_txt'] = 'php.ini目录路径'; +$wb['php_fpm_init_script_txt'] = 'PHP-FPMåˆå§‹åŒ–脚本路径'; +$wb['php_fpm_ini_dir_txt'] = 'php.ini目录路径'; +$wb['php_fpm_pool_dir_txt'] = 'PHP-FPMæ± ç›®å½•è·¯å¾„'; +$wb['php_fpm_socket_dir_txt'] = 'PHP-FPM套接å—目录'; +$wb['active_txt'] = '激活'; +$wb['php_in_use_error'] = 'æ¤PHP版本æ£åœ¨ä½¿ç”¨ä¸ã€‚'; +$wb['php_name_in_use_error'] = 'åç§°æ— æ³•æ›´æ”¹ã€‚'; +?> diff --git a/interface/web/admin/lib/lang/cn_server_php_list.lng b/interface/web/admin/lib/lang/cn_server_php_list.lng new file mode 100644 index 0000000000..94711361bf --- /dev/null +++ b/interface/web/admin/lib/lang/cn_server_php_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = 'é¢å¤–çš„ PHP 版本'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„ PHP 版本'; +$wb['client_id_txt'] = '客户'; +$wb['name_txt'] = 'PHP å称'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['usage_txt'] = '使用次数'; +?> diff --git a/interface/web/admin/lib/lang/cn_system_config.lng b/interface/web/admin/lib/lang/cn_system_config.lng new file mode 100644 index 0000000000..694472161f --- /dev/null +++ b/interface/web/admin/lib/lang/cn_system_config.lng @@ -0,0 +1,110 @@ +<?php +$wb['system_config_title'] = '系统é…ç½®'; +$wb['system_config_desc_txt'] = ''; +$wb['smtp_missing_admin_mail_txt'] = '如果您想使用SMTP邮件å‘é€ï¼Œè¯·è¾“入管ç†å‘˜å称和管ç†å‘˜ç”µå邮件地å€ã€‚'; +$wb['dashboard_atom_url_admin_txt'] = '仪表æ¿AtomæºURL(管ç†å‘˜ï¼‰'; +$wb['dashboard_atom_url_reseller_txt'] = '仪表æ¿AtomæºURL(ç»é”€å•†ï¼‰'; +$wb['dashboard_atom_url_client_txt'] = '仪表æ¿AtomæºURL(客户端)'; +$wb['warning'] = 'å°å¿ƒç¼–辑这些值ï¼å¯¹äºŽæœ‰å¤šä¸ªå®¢æˆ·ç«¯çš„ç³»ç»Ÿï¼Œè¯·å‹¿åˆ é™¤å‰ç¼€ã€‚'; +$wb['tab_change_discard_txt'] = '切æ¢é€‰é¡¹å¡æ—¶æ”¾å¼ƒæ›´æ”¹'; +$wb['tab_change_warning_txt'] = '选项å¡æ›´æ”¹è¦å‘Š'; +$wb['tab_change_warning_note_txt'] = '在编辑表å•ä¸ï¼Œå¦‚果用户更改了任何数æ®ï¼Œåˆ™åœ¨åˆ‡æ¢é€‰é¡¹å¡æ—¶æ˜¾ç¤ºè¦å‘Šã€‚'; +$wb['dbname_prefix_txt'] = 'æ•°æ®åº“å称å‰ç¼€'; +$wb['dbuser_prefix_txt'] = 'æ•°æ®åº“用户å‰ç¼€'; +$wb['shelluser_prefix_txt'] = 'Shell用户å‰ç¼€'; +$wb['webdavuser_prefix_txt'] = 'Webdav用户å‰ç¼€'; +$wb['ftpuser_prefix_txt'] = 'FTP用户å‰ç¼€'; +$wb['vhost_subdomains_txt'] = 'å°†å域å创建为网站'; +$wb['vhost_subdomains_note_txt'] = 'åªè¦ç³»ç»Ÿä¸å˜åœ¨vhostååŸŸï¼Œå°±æ— æ³•ç¦ç”¨æ¤åŠŸèƒ½ï¼'; +$wb['vhost_aliasdomains_txt'] = '将别å域创建为网站'; +$wb['vhost_aliasdomains_note_txt'] = 'åªè¦ç³»ç»Ÿä¸å˜åœ¨vhost别ååŸŸï¼Œå°±æ— æ³•ç¦ç”¨æ¤åŠŸèƒ½ï¼'; +$wb['dbname_prefix_error_regex'] = 'æ•°æ®åº“å称å‰ç¼€ä¸ä¸å…许出现的å—符。'; +$wb['dbuser_prefix_error_regex'] = 'æ•°æ®åº“用户å‰ç¼€ä¸ä¸å…许出现的å—符。'; +$wb['ftpuser_prefix_error_regex'] = 'FTP用户å‰ç¼€ä¸ä¸å…许出现的å—符。'; +$wb['shelluser_prefix_error_regex'] = 'Shell用户å‰ç¼€ä¸ä¸å…许出现的å—符。'; +$wb['webdavuser_prefix_error_regex'] = 'Webdav用户å‰ç¼€ä¸ä¸å…许出现的å—符。'; +$wb['dblist_phpmyadmin_link_txt'] = '在数æ®åº“列表ä¸é“¾æŽ¥åˆ°phpmyadmin'; +$wb['enable_welcome_mail_txt'] = 'å¯ç”¨æ¬¢è¿Žé‚®ä»¶'; +$wb['enable_custom_login_txt'] = 'å…许自定义登录å'; +$wb['mailboxlist_webmail_link_txt'] = '在邮箱列表ä¸é“¾æŽ¥åˆ°Webmail'; +$wb['webmail_url_txt'] = 'Webmail URL'; +$wb['mailmailinglist_link_txt'] = '在邮件列表列表ä¸é“¾æŽ¥åˆ°é‚®ä»¶åˆ—表'; +$wb['mailmailinglist_url_txt'] = '邮件列表URL'; +$wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL'; +$wb['use_domain_module_txt'] = '在客户端模å—ä¸ä½¿ç”¨åŸŸåé™åˆ¶ä»¥æ·»åŠ 新域å'; +$wb['use_domain_module_hint'] = '如果您使用域é™åˆ¶ï¼Œæ‚¨çš„客户åªèƒ½é€‰æ‹©ç®¡ç†å‘˜ä¸ºä»–们创建的域åä¸çš„一个。他们ä¸èƒ½è‡ªç”±ç¼–辑域åå—段。更改æ¤å€¼åŽï¼Œæ‚¨å¿…é¡»é‡æ–°ç™»å½•æ‰èƒ½ä½¿æ›´æ”¹ç”Ÿæ•ˆã€‚'; +$wb['new_domain_txt'] = 'HTML 创建新域å'; +$wb['webftp_url_txt'] = 'WebFTP 地å€'; +$wb['admin_mail_txt'] = '管ç†å‘˜ç”µå邮件'; +$wb['monitor_key_txt'] = '监控关键è¯'; +$wb['admin_name_txt'] = '管ç†å‘˜å§“å'; +$wb['maintenance_mode_txt'] = '维护模å¼'; +$wb['maintenance_mode_exclude_ips_txt'] = '从维护模å¼æŽ’除的 IP 地å€'; +$wb['maintenance_mode_exclude_ips_error_isip'] = '维护模å¼æŽ’除列表ä¸æœ‰ä¸€ä¸ªæˆ–å¤šä¸ªæ— æ•ˆçš„ IP 地å€ã€‚必须是逗å·åˆ†éš”çš„ IPv4 å’Œ/或 IPv6 地å€åˆ—表。'; +$wb['smtp_enabled_txt'] = '使用 SMTP å‘é€ç³»ç»Ÿé‚®ä»¶'; +$wb['smtp_host_txt'] = 'SMTP 主机'; +$wb['smtp_port_txt'] = 'SMTP 端å£'; +$wb['smtp_user_txt'] = 'SMTP 用户'; +$wb['smtp_pass_txt'] = 'SMTP 密ç '; +$wb['smtp_crypt_txt'] = '使用 SSL/TLS åŠ å¯†è¿žæŽ¥çš„ SMTP'; +$wb['phpmyadmin_url_error_regex'] = 'æ— æ•ˆçš„ phpMyAdmin URL'; +$wb['use_combobox_txt'] = '使用 jQuery UI Combobox'; +$wb['use_loadindicator_txt'] = '使用 Load Indicator'; +$wb['f5_to_reload_js_txt'] = '如果更改æ¤è®¾ç½®ï¼Œåˆ™å¯èƒ½éœ€è¦æŒ‰ F5 é‡æ–°åŠ è½½ JavaScript 库或清空æµè§ˆå™¨ç¼“å˜ã€‚'; +$wb['client_username_web_check_disabled_txt'] = 'ç¦ç”¨ä»¥ "web" 为关键è¯çš„客户用户å检查。'; +$wb['backups_include_into_web_quota_txt'] = '将备份文件包括在 Web é…é¢ä¸ã€‚'; +$wb['show_per_domain_relay_options_txt'] = '显示æ¯ä¸ªåŸŸçš„转å‘选项'; +$wb['mailbox_show_autoresponder_tab_txt'] = '在邮件å¸æˆ·è¯¦ç»†ä¿¡æ¯ä¸æ˜¾ç¤ºè‡ªåŠ¨å›žå¤é€‰é¡¹å¡'; +$wb['mailbox_show_mail_filter_tab_txt'] = '在邮件å¸æˆ·è¯¦ç»†ä¿¡æ¯ä¸æ˜¾ç¤ºé‚®ä»¶è¿‡æ»¤é€‰é¡¹å¡'; +$wb['mailbox_show_custom_rules_tab_txt'] = '在邮件å¸æˆ·è¯¦ç»†ä¿¡æ¯ä¸æ˜¾ç¤ºè‡ªå®šä¹‰é‚®ä»¶è¿‡æ»¤å™¨é€‰é¡¹å¡'; +$wb['webmail_url_error_regex'] = 'æ— æ•ˆçš„ Webmail URL'; +$wb['phpmyadmin_url_note_txt'] = 'å ä½ç¬¦ï¼š'; +$wb['webmail_url_note_txt'] = 'å ä½ç¬¦ï¼š'; +$wb['available_dashlets_note_txt'] = 'å¯ç”¨çš„å°éƒ¨ä»¶ï¼š'; +$wb['admin_dashlets_left_txt'] = '管ç†å‘˜å·¦ä¾§å°éƒ¨ä»¶'; +$wb['admin_dashlets_right_txt'] = '管ç†å‘˜å³ä¾§å°éƒ¨ä»¶'; +$wb['reseller_dashlets_left_txt'] = 'ç»é”€å•†å·¦ä¾§å°éƒ¨ä»¶'; +$wb['reseller_dashlets_right_txt'] = 'ç»é”€å•†å³ä¾§å°éƒ¨ä»¶'; +$wb['client_dashlets_left_txt'] = '客户左侧å°éƒ¨ä»¶'; +$wb['client_dashlets_right_txt'] = '客户å³ä¾§å°éƒ¨ä»¶'; +$wb['customer_no_template_txt'] = '客户编å·æ¨¡æ¿'; +$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['No'] = 'å¦'; +$wb['min_password_length_txt'] = '最å°å¯†ç 长度'; +$wb['min_password_strength_txt'] = '最å°å¯†ç 强度'; +$wb['ssh_authentication_txt'] = 'å…许的SSH身份验è¯'; +$wb['ssh_authentication_password_key'] = '密ç 和密钥'; +$wb['ssh_authentication_password'] = '密ç '; +$wb['ssh_authentication_key'] = '密钥'; +$wb['default_mailserver_txt'] = '默认邮件æœåŠ¡å™¨'; +$wb['default_webserver_txt'] = '默认WebæœåŠ¡å™¨'; +$wb['default_dnsserver_txt'] = '默认DNSæœåŠ¡å™¨'; +$wb['default_slave_dnsserver_txt'] = '默认次è¦DNSæœåŠ¡å™¨'; +$wb['default_dbserver_txt'] = '默认数æ®åº“æœåŠ¡å™¨'; +$wb['company_name_txt'] = '页é¢æ ‡é¢˜çš„å…¬å¸å称'; +$wb['reseller_can_use_options_txt'] = 'ç»é”€å•†å¯ä»¥ä¸ºç½‘站使用选项å¡'; +$wb['custom_login_text_txt'] = '登录页é¢çš„自定义文本'; +$wb['custom_login_link_txt'] = '登录页é¢çš„自定义链接'; +$wb['login_link_error_regex'] = 'è‡ªå®šä¹‰ç™»å½•çš„é“¾æŽ¥æ— æ•ˆ'; +$wb['default_remote_dbserver_txt'] = '默认远程数æ®åº“æœåŠ¡å™¨'; +$wb['disable_client_remote_dbserver_txt'] = 'ç¦ç”¨å®¢æˆ·çš„远程数æ®åº“æœåŠ¡å™¨éƒ¨åˆ†'; +$wb['ca_name_txt'] = 'å称'; +$wb['ca_issue_txt'] = 'å‘布'; +$wb['ca_wildcard_txt'] = '使用通é…符'; +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['web_php_options_txt'] = 'PHP 处ç†ç¨‹åºï¼ˆä»…适用于 Apache)'; +$wb['client_protection_txt'] = '客户端ä¿æŠ¤'; +$wb['show_support_messages_txt'] = '在帮助模å—ä¸æ˜¾ç¤ºæ¶ˆæ¯åŠŸèƒ½'; +$wb['show_aps_menu_txt'] = '显示 APS èœå•'; +$wb['show_aps_menu_note_txt'] = 'APS 将在ä¸ä¹…çš„å°†æ¥ä»Žé¢æ¿ä¸ç§»é™¤ã€‚'; +$wb['show_aps_menu_note_url_txt'] = '点击这里了解更多信æ¯ã€‚'; +$wb['dns_show_zoneexport_txt'] = '显示区域导出。'; +$wb['le_caa_autocreate_options_txt'] = '在é¢å‘ LE æ—¶å¯ç”¨ CAA 记录的自动创建'; +?> diff --git a/interface/web/admin/lib/lang/cn_tpl_default_admin.lng b/interface/web/admin/lib/lang/cn_tpl_default_admin.lng new file mode 100644 index 0000000000..d5f3ecd21a --- /dev/null +++ b/interface/web/admin/lib/lang/cn_tpl_default_admin.lng @@ -0,0 +1,18 @@ +<?php +$wb['tpl_default_admin_head_txt'] = '全局默认主题设置'; +$wb['tpl_default_admin_desc_txt'] = ''; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_id_txt'] = '客户'; +$wb['name_txt'] = 'PHPå称'; +$wb['Name'] = 'å称'; +$wb['FastCGI Settings'] = 'FastCGI设置'; +$wb['PHP-FPM Settings'] = 'PHP-FPM设置'; +$wb['Additional PHP Versions'] = '其他PHP版本'; +$wb['Form to edit additional PHP versions'] = '编辑其他PHP版本的表å•'; +$wb['server_php_name_error_empty'] = 'å称å—段ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['php_fastcgi_binary_txt'] = 'PHP FastCGI二进制文件路径'; +$wb['php_fastcgi_ini_dir_txt'] = 'php.ini目录路径'; +$wb['php_fpm_init_script_txt'] = 'PHP-FPM init脚本路径'; +$wb['php_fpm_ini_dir_txt'] = 'php.ini目录路径'; +$wb['php_fpm_pool_dir_txt'] = 'PHP-FPMæ± ç›®å½•è·¯å¾„'; +?> diff --git a/interface/web/admin/lib/lang/cn_users.lng b/interface/web/admin/lib/lang/cn_users.lng new file mode 100644 index 0000000000..ccb6eb12cd --- /dev/null +++ b/interface/web/admin/lib/lang/cn_users.lng @@ -0,0 +1,42 @@ +<?php +$wb['users_txt'] = '用户'; +$wb['username_txt'] = '用户å'; +$wb['username_err'] = '用户å过长或包å«æ— 效å—符。'; +$wb['username_empty'] = '用户å为空。'; +$wb['username_unique'] = 'å·²å˜åœ¨è¯¥ç”¨æˆ·å的用户。'; +$wb['password_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['modules_txt'] = '模å—'; +$wb['startmodule_txt'] = '起始模å—'; +$wb['app_theme_txt'] = '主题'; +$wb['typ_txt'] = '类型'; +$wb['active_txt'] = '激活'; +$wb['language_txt'] = 'è¯è¨€'; +$wb['name_txt'] = '姓å'; +$wb['vorname_txt'] = 'åå—'; +$wb['unternehmen_txt'] = 'å…¬å¸'; +$wb['strasse_txt'] = 'è¡—é“'; +$wb['ort_txt'] = '城市'; +$wb['plz_txt'] = '邮编'; +$wb['land_txt'] = '国家'; +$wb['email_txt'] = '电å邮件'; +$wb['url_txt'] = '网å€'; +$wb['telefon_txt'] = '电è¯'; +$wb['fax_txt'] = 'ä¼ çœŸ'; +$wb['groups_txt'] = '用户组'; +$wb['default_group_txt'] = '默认用户组'; +$wb['startmodule_err'] = '起始模å—ä¸åœ¨æ¨¡å—列表内。'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['username_error_collision'] = '用户åä¸å…许是web或webåŠ æ•°å—。"'; +$wb['client_not_admin_err'] = '属于客户的用户ä¸èƒ½è¢«è®¾ç½®ä¸ºç±»åž‹ï¼šç®¡ç†å‘˜'; +$wb['lost_password_function_txt'] = '忘记密ç 功能å¯ç”¨'; +$wb['no_user_insert'] = '类型为“用户â€çš„ CP ç”¨æˆ·ä¼šåœ¨æ·»åŠ å®¢æˆ·æˆ–ç»é”€å•†æ—¶è‡ªåŠ¨æ·»åŠ 和更新。'; +$wb['startmodule_empty'] = '起始模å—为空。'; +$wb['startmodule_regex'] = '起始模å—包å«æ— 效å—符。'; +$wb['app_theme_empty'] = '主题为空。'; +$wb['app_theme_regex'] = '主题包å«æ— 效å—符。'; +$wb['otp_auth_txt'] = 'å¤šå› å身份认è¯'; +?> diff --git a/interface/web/admin/lib/lang/cn_users_list.lng b/interface/web/admin/lib/lang/cn_users_list.lng new file mode 100644 index 0000000000..c85047fb63 --- /dev/null +++ b/interface/web/admin/lib/lang/cn_users_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '用户列表'; +$wb['username_txt'] = '用户å'; +$wb['client_id_txt'] = '用户ID'; +$wb['active_txt'] = '激活状æ€'; +$wb['groups_txt'] = '用户组'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç”¨æˆ·'; +$wb['warning_txt'] = '<b>è¦å‘Šï¼š</b>ä¸è¦åœ¨æ¤å¤„编辑或修改任何客户端用户设置。请改用客户端模å—ä¸çš„客户端和ç»é”€å•†è®¾ç½®ã€‚在æ¤ä¿®æ”¹æˆ–更改客户端用户或组å¯èƒ½ä¼šå¯¼è‡´æ•°æ®ä¸¢å¤±ï¼'; +?> diff --git a/interface/web/admin/list/firewall.list.php b/interface/web/admin/list/firewall.list.php index 884779110a..4835cb9d4a 100644 --- a/interface/web/admin/list/firewall.list.php +++ b/interface/web/admin/list/firewall.list.php @@ -57,11 +57,11 @@ $liste["item"][] = array( 'field' => "active", 'value' => array('y' => $app->lng('yes_txt'), 'n' => $app->lng('no_txt'))); $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/admin/list/remote_user.list.php b/interface/web/admin/list/remote_user.list.php index 7dc0fbf430..de11f0d9a1 100644 --- a/interface/web/admin/list/remote_user.list.php +++ b/interface/web/admin/list/remote_user.list.php @@ -35,7 +35,7 @@ $liste['auth'] = 'yes'; $liste['item'][] = array( 'field' => 'remote_userid', - 'datatype' => 'VARCHAR', + 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'op' => '=', 'prefix' => '', diff --git a/interface/web/admin/list/server_php.list.php b/interface/web/admin/list/server_php.list.php index a4a38901ab..4ea40bdae1 100644 --- a/interface/web/admin/list/server_php.list.php +++ b/interface/web/admin/list/server_php.list.php @@ -39,6 +39,9 @@ $liste['paging_tpl'] = 'templates/paging.tpl.htm'; //* Enable auth $liste['auth'] = 'no'; +// mark columns for php sorting (no real mySQL columns) +$liste["phpsort"] = array('usage'); + /***************************************************** * Suchfelder diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index 32aa270893..c19433b0e4 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -125,7 +125,7 @@ class page_action extends tform_actions { function onShowEnd() { global $app; - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ? AND ((SELECT COUNT(*) FROM server) > 1)", $this->id); + $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ? AND ((SELECT COUNT(*) FROM server) >= 1)", $this->id); $app->tpl->setVar('server_name', $app->functions->htmlentities($tmp['server_name'])); unset($tmp); diff --git a/interface/web/client/form/client_circle.tform.php b/interface/web/client/form/client_circle.tform.php index 64eee542d7..6916c2248b 100644 --- a/interface/web/client/form/client_circle.tform.php +++ b/interface/web/client/form/client_circle.tform.php @@ -112,10 +112,11 @@ $form["tabs"]['circle'] = array ( 'default' => '', 'separator' => ',', 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT client_id,contact_name FROM client WHERE {AUTHSQL} ORDER BY contact_name', + 'querystring' => 'SELECT client_id,CONCAT(company_name, " (",contact_firstname, " ", contact_name, ")") as contact_label FROM client WHERE {AUTHSQL} ORDER BY contact_label', 'keyfield'=> 'client_id', - 'valuefield'=> 'contact_name' + 'valuefield'=> 'contact_label' ), + 'render_inline' => 'n', 'value' => '' ), 'description' => array ( diff --git a/interface/web/client/lib/lang/cn.lng b/interface/web/client/lib/lang/cn.lng new file mode 100644 index 0000000000..cefa8508e9 --- /dev/null +++ b/interface/web/client/lib/lang/cn.lng @@ -0,0 +1,31 @@ +<?php +$wb['Client'] = '客户'; +$wb['Address'] = '地å€'; +$wb['Limits'] = 'é™åˆ¶'; +$wb['Add Client'] = 'æ·»åŠ å®¢æˆ·'; +$wb['Edit Client'] = '编辑客户'; +$wb['Clients'] = '客户'; +$wb['Templates'] = '模æ¿'; +$wb['Limit-Templates'] = 'é™åˆ¶æ¨¡æ¿'; +$wb['Add Reseller'] = 'æ·»åŠ ç»é”€å•†'; +$wb['Edit Reseller'] = '编辑ç»é”€å•†'; +$wb['Resellers'] = 'ç»é”€å•†'; +$wb['error_has_clients'] = '该ç»é”€å•†æœ‰å®¢æˆ·ã€‚è¯·å…ˆåˆ é™¤ç»é”€å•†çš„客户。'; +$wb['add_additional_template_txt'] = 'æ·»åŠ é™„åŠ æ¨¡æ¿'; +$wb['delete_additional_template_txt'] = 'åˆ é™¤é™„åŠ æ¨¡æ¿'; +$wb['Messaging'] = '消æ¯'; +$wb['Send email'] = 'å‘é€ç”µå邮件'; +$wb['Edit Client Circle'] = '编辑客户圈'; +$wb['Domains'] = '域å'; +$wb['Add Domain'] = 'æ·»åŠ åŸŸå'; +$wb['domain_txt'] = '域å'; +$wb['client_txt'] = '客户'; +$wb['error_domain_in dnsuse'] = '该域åä¸èƒ½è¢«åˆ é™¤ï¼Œå› ä¸ºå®ƒæ£åœ¨ç”¨ä½œDNS区域。'; +$wb['error_domain_in dnsslaveuse'] = '该域åä¸èƒ½è¢«åˆ é™¤ï¼Œå› ä¸ºå®ƒæ£åœ¨ç”¨ä½œæ¬¡è¦DNS区域。'; +$wb['error_domain_in mailuse'] = '该域åä¸èƒ½è¢«åˆ é™¤ï¼Œå› ä¸ºå®ƒæ£åœ¨ç”¨ä½œé‚®ä»¶åŸŸå。'; +$wb['error_domain_in webuse'] = '该域åä¸èƒ½è¢«åˆ é™¤ï¼Œå› ä¸ºå®ƒæ£åœ¨ç”¨ä½œç½‘站域å。'; +$wb['error_client_can_not_add_domain'] = 'æ‚¨æ— æ³•æ·»åŠ æ–°åŸŸå。'; +$wb['domain_txt'] = '域å'; +$wb['error_client_group_id_empty'] = '您必须选择一个客户。'; +$wb['Email-Templates'] = '电å邮件模æ¿'; +?> diff --git a/interface/web/client/lib/lang/cn_client.lng b/interface/web/client/lib/lang/cn_client.lng new file mode 100644 index 0000000000..0d477335a8 --- /dev/null +++ b/interface/web/client/lib/lang/cn_client.lng @@ -0,0 +1,210 @@ +<?php +$wb['limit_maildomain_txt'] = '最大电å邮件域åæ•°'; +$wb['limit_mailmailinglist_txt'] = '最大邮件列表数'; +$wb['limit_mailbox_txt'] = '最大邮箱数'; +$wb['limit_mailalias_txt'] = '最大邮件别åæ•°'; +$wb['limit_mailaliasdomain_txt'] = '最大域å别åæ•°'; +$wb['limit_mailforward_txt'] = '最大电å邮件转å‘器数'; +$wb['limit_mailcatchall_txt'] = '最大收件箱数'; +$wb['limit_mailrouting_txt'] = '最大邮件路由数'; +$wb['limit_mail_wblist_txt'] = '最大电å邮件白åå•/黑åå•æ¡ç›®æ•°'; +$wb['limit_mailfilter_txt'] = '最大电å邮件过滤器数'; +$wb['limit_fetchmail_txt'] = '最大fetchmailå¸æˆ·æ•°'; +$wb['limit_mailquota_txt'] = '邮箱é…é¢'; +$wb['limit_spamfilter_wblist_txt'] = '最大垃圾邮件过滤器白åå•/黑åå•æ•°'; +$wb['limit_spamfilter_user_txt'] = '最大垃圾邮件过滤器用户数'; +$wb['limit_spamfilter_policy_txt'] = '最大垃圾邮件过滤器ç–略数'; +$wb['limit_mail_backup_txt'] = 'å¯ç”¨ç”µå邮件备份功能'; +$wb['default_mailserver_txt'] = '默认邮件æœåŠ¡å™¨'; +$wb['company_name_txt'] = 'å…¬å¸å称'; +$wb['contact_firstname_txt'] = 'è”系人åå—'; +$wb['contact_name_txt'] = 'è”系人姓æ°'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['password_click_to_set_txt'] = 'å•å‡»ä»¥è®¾ç½®'; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['language_txt'] = 'è¯è¨€'; +$wb['usertheme_txt'] = '主题'; +$wb['street_txt'] = 'è¡—é“'; +$wb['zip_txt'] = '邮编'; +$wb['city_txt'] = '城市'; +$wb['state_txt'] = 'å·ž'; +$wb['country_txt'] = '国家'; +$wb['telephone_txt'] = '电è¯'; +$wb['mobile_txt'] = '移动电è¯'; +$wb['fax_txt'] = 'ä¼ çœŸ'; +$wb['email_txt'] = '电å邮件'; +$wb['internet_txt'] = '互è”网'; +$wb['icq_txt'] = 'ICQ'; +$wb['notes_txt'] = '备注'; +$wb['company_txt'] = 'å…¬å¸'; +$wb['title_txt'] = '称谓'; +$wb['firstname_txt'] = 'åå—'; +$wb['surname_txt'] = '姓æ°'; +$wb['limit_relayhost_txt'] = '显示SMTPä¸ç»§ä¸»æœºé€‰é¡¹'; +$wb['limit_domain_txt'] = '最大域åæ•°é‡'; +$wb['limit_subdomain_txt'] = '最大å域åæ•°é‡'; +$wb['limit_webquota_txt'] = '网站é…é¢'; +$wb['limit_database_txt'] = '最大数æ®åº“æ•°é‡'; +$wb['limit_cron_txt'] = '最大cron作业数é‡'; +$wb['limit_cron_type_txt'] = '最大å…许的cron作业类型(chrootedå’Œfullæ„味ç€URL)'; +$wb['limit_cron_frequency_txt'] = '执行之间的最å°å»¶è¿Ÿ'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['limit_client_error_notint'] = '客户端é™åˆ¶ä¸æ˜¯æ•°å—。'; +$wb['firstname_error_empty'] = 'åå—为空。'; +$wb['contact_error_empty'] = 'è”系人姓å为空。'; +$wb['default_webserver_txt'] = '默认WebæœåŠ¡å™¨'; +$wb['limit_web_domain_txt'] = '最大Web域åæ•°é‡'; +$wb['limit_web_aliasdomain_txt'] = '最大Web别å域åæ•°é‡'; +$wb['limit_web_subdomain_txt'] = '最大Webå域åæ•°é‡'; +$wb['limit_ftp_user_txt'] = '最大FTP用户数é‡'; +$wb['default_dnsserver_txt'] = '默认DNSæœåŠ¡å™¨'; +$wb['limit_dns_zone_txt'] = '最大DNS区域数é‡'; +$wb['limit_dns_slave_zone_txt'] = '最大DNS从区域数é‡'; +$wb['limit_dns_record_txt'] = '最大DNS记录数é‡'; +$wb['limit_shell_user_txt'] = '最大Shell用户数é‡'; +$wb['limit_webdav_user_txt'] = '最大Webdav用户数é‡'; +$wb['limit_backup_txt'] = '备份功能å¯ç”¨'; +$wb['limit_client_txt'] = '最大客户数'; +$wb['username_error_empty'] = '用户å为空。'; +$wb['username_error_unique'] = '用户å必须唯一。'; +$wb['limit_maildomain_error_notint'] = '电å邮件域é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailmailinglist_error_notint'] = '邮件列表记录é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailbox_error_notint'] = '邮箱é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailalias_error_notint'] = '电å邮件别åé™åˆ¶å¿…须为数å—。'; +$wb['limit_mailaliasdomain_error_notint'] = '电å邮件域别åé™åˆ¶å¿…须为数å—。'; +$wb['limit_mailforward_error_notint'] = '电å邮件转å‘é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailcatchall_error_notint'] = '电å邮件 catch-all é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailrouting_error_notint'] = '电å邮件路由é™åˆ¶å¿…须为数å—。'; +$wb['limit_mail_wblist_error_notint'] = '电å邮件白åå•/黑åå•é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailfilter_error_notint'] = '电å邮件过滤器é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailfetchmail_error_notint'] = 'fetchmail é™åˆ¶å¿…须为数å—。'; +$wb['limit_mailquota_error_notint'] = '电å邮件é…é¢é™åˆ¶å¿…须为数å—。'; +$wb['limit_spamfilter_wblist_error_notint'] = '垃圾邮件过滤器白åå•/黑åå•é™åˆ¶å¿…须为数å—。'; +$wb['limit_spamfilter_user_error_notint'] = '垃圾邮件过滤器用户é™åˆ¶å¿…须为数å—。'; +$wb['limit_spamfilter_policy_error_notint'] = '垃圾邮件过滤ç–ç•¥é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_web_domain_error_notint'] = '网站é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_web_aliasdomain_error_notint'] = '网站别å域é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_web_subdomain_error_notint'] = '网站å域é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_ftp_user_error_notint'] = 'FTP用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_shell_user_error_notint'] = 'Shell用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_webdav_user_error_notint'] = 'Webdav用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_dns_zone_error_notint'] = 'DNS区域é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_dns_slave_zone_error_notint'] = 'DNS从区域é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_dns_record_error_notint'] = 'DNS记录é™åˆ¶å¿…须是一个数å—。'; +$wb['default_dbserver_txt'] = '默认数æ®åº“æœåŠ¡å™¨'; +$wb['limit_database_txt'] = '最大数æ®åº“æ•°é‡'; +$wb['limit_database_error_notint'] = 'æ•°æ®åº“é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_cron_error_notint'] = 'Croné™åˆ¶å¿…须是一个数å—。'; +$wb['limit_cron_error_frequency'] = 'Cron频率é™åˆ¶å¿…须是一个数å—。'; +$wb['username_error_regex'] = '用户å包å«æ— 效å—符。'; +$wb['template_master_txt'] = '主模æ¿'; +$wb['template_additional_txt'] = 'é™„åŠ æ¨¡æ¿'; +$wb['active_template_additional_txt'] = 'æ´»åŠ¨é™„åŠ æ¨¡æ¿'; +$wb['add_additional_template_txt'] = 'æ·»åŠ é™„åŠ æ¨¡æ¿'; +$wb['delete_additional_template_txt'] = 'åˆ é™¤é™„åŠ æ¨¡æ¿'; +$wb['ssh_chroot_txt'] = 'SSH-Chroot选项'; +$wb['web_php_options_txt'] = 'PHP选项'; +$wb['limit_cgi_txt'] = 'å¯ç”¨CGI'; +$wb['limit_ssi_txt'] = 'å¯ç”¨SSI'; +$wb['limit_perl_txt'] = 'å¯ç”¨Perl'; +$wb['limit_ruby_txt'] = 'å¯ç”¨Ruby'; +$wb['limit_python_txt'] = 'å¯ç”¨Python'; +$wb['force_suexec_txt'] = '强制使用SuEXEC'; +$wb['limit_hterror_txt'] = 'å¯ç”¨è‡ªå®šä¹‰é”™è¯¯é¡µé¢'; +$wb['limit_wildcard_txt'] = 'å¯ç”¨é€šé…符å域å'; +$wb['limit_ssl_txt'] = 'å¯ç”¨SSL'; +$wb['limit_ssl_letsencrypt_txt'] = 'å¯ä½¿ç”¨Let\'s Encrypt'; +$wb['limit_client_error'] = '已达到最大客户端数é‡'; +$wb['limit_web_quota_txt'] = 'Webé…é¢'; +$wb['limit_traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['limit_trafficquota_error_notint'] = 'æµé‡é…é¢å¿…须为数å—'; +$wb['customer_no_txt'] = '客户编å·'; +$wb['vat_id_txt'] = '增值税å·'; +$wb['required_fields_txt'] = '* 必填项'; +$wb['company_id_txt'] = 'å…¬å¸/ä¼ä¸šID'; +$wb['limit_openvz_vm_txt'] = '最大虚拟æœåŠ¡å™¨æ•°é‡'; +$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选项。请选择至少一个选项。'; +$wb['username_error_collision'] = '用户åä¸èƒ½ä»¥â€œ-web-â€æˆ–“-web-â€åŽè·Ÿä¸€ä¸ªæ•°å—开头。'; +$wb['bank_account_number_txt'] = '银行账å·'; +$wb['bank_account_owner_txt'] = '银行账å·æŒæœ‰äºº'; +$wb['bank_code_txt'] = '银行代ç '; +$wb['bank_name_txt'] = '银行å称'; +$wb['bank_account_iban_txt'] = 'IBAN'; +$wb['bank_account_swift_txt'] = 'BIC / Swift'; +$wb['web_limits_txt'] = '网站é™åˆ¶'; +$wb['email_limits_txt'] = '邮件é™åˆ¶'; +$wb['xmpp_limits_txt'] = 'XMPPé™åˆ¶'; +$wb['database_limits_txt'] = 'æ•°æ®åº“é™åˆ¶'; +$wb['cron_job_limits_txt'] = '计划任务é™åˆ¶'; +$wb['dns_limits_txt'] = 'DNSé™åˆ¶'; +$wb['virtualization_limits_txt'] = '虚拟化é™åˆ¶'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸ä¸€è‡´ã€‚'; +$wb['password_match_txt'] = '两次输入的密ç 一致。'; +$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'] = '如果选择了“自定义â€ä»¥å¤–的任何主模æ¿ï¼Œåˆ™æ‰€æœ‰è‡ªå®šä¹‰é™åˆ¶è®¾ç½®éƒ½å°†è¢«å¿½ç•¥ã€‚'; +$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'] = 'å·²é”定(ç¦ç”¨é™¤DNS以外的所有内容)'; +$wb['canceled_txt'] = 'å·²å–消(ç¦ç”¨å®¢æˆ·ç«¯ç™»å½•ï¼‰'; +$wb['gender_txt'] = '称谓'; +$wb['gender_m_txt'] = '先生'; +$wb['gender_f_txt'] = '女士'; +$wb['web_servers_txt'] = 'WebæœåŠ¡å™¨'; +$wb['web_servers_placeholder'] = '选择WebæœåŠ¡å™¨'; +$wb['no_web_server_error'] = '必须选择至少一个WebæœåŠ¡å™¨ã€‚'; +$wb['web_servers_used'] = '您试图从æ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨æ£åœ¨ç”¨ä½œWebæœåŠ¡å™¨ã€‚åœ¨åˆ é™¤ä¹‹å‰ï¼Œè¯·ç¡®ä¿æ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['dns_servers_txt'] = 'DNSæœåŠ¡å™¨'; +$wb['dns_servers_placeholder'] = '选择DNSæœåŠ¡å™¨'; +$wb['no_dns_server_error'] = '至少需è¦é€‰æ‹©ä¸€ä¸ªDNSæœåŠ¡å™¨ã€‚'; +$wb['dns_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œDNSæœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰è¯¥æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['db_servers_txt'] = 'æ•°æ®åº“æœåŠ¡å™¨'; +$wb['db_servers_placeholder'] = '选择数æ®åº“æœåŠ¡å™¨'; +$wb['no_db_server_error'] = '至少需è¦é€‰æ‹©ä¸€ä¸ªæ•°æ®åº“æœåŠ¡å™¨ã€‚'; +$wb['db_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œæ•°æ®åº“æœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰è¯¥æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['mail_servers_txt'] = '邮件æœåŠ¡å™¨'; +$wb['mail_servers_placeholder'] = '选择邮件æœåŠ¡å™¨'; +$wb['no_mail_server_error'] = '至少需è¦é€‰æ‹©ä¸€ä¸ªé‚®ä»¶æœåŠ¡å™¨ã€‚'; +$wb['mail_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œé‚®ä»¶æœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰è¯¥æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; + +$wb['xmpp_servers_txt'] = 'XMPP æœåŠ¡å™¨'; +$wb['xmpp_servers_placeholder'] = '选择 XMPP æœåŠ¡å™¨'; +$wb['no_xmpp_server_error'] = '至少è¦é€‰æ‹©ä¸€ä¸ª XMPP æœåŠ¡å™¨ã€‚'; +$wb['xmpp_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œ XMPP æœåŠ¡å™¨ã€‚åœ¨åˆ é™¤ä¹‹å‰ï¼Œè¯·ç¡®ä¿æ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP 域é™åˆ¶å¿…须是数å—。'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP 用户é™åˆ¶å¿…须是数å—。'; +$wb['limit_xmpp_domain_txt'] = '最大 XMPP 域数'; +$wb['limit_xmpp_user_txt'] = '最大 XMPP å¸æˆ·æ•°'; +$wb['limit_xmpp_muc_txt'] = '支æŒå¤šç”¨æˆ·èŠå¤©å®¤'; +$wb['limit_xmpp_pastebin_txt'] = 'æ”¯æŒ MUC çš„ Pastebin'; +$wb['limit_xmpp_httparchive_txt'] = 'æ”¯æŒ MUC çš„ HTTP å˜æ¡£'; +$wb['limit_xmpp_anon_txt'] = '匿å主机å¯ç”¨'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD 用户目录å¯ç”¨'; +$wb['limit_xmpp_proxy_txt'] = 'å—节æµä»£ç†å¯ç”¨'; +$wb['limit_xmpp_status_txt'] = '状æ€ä¸»æœºå¯ç”¨'; +$wb['added_by_txt'] = 'æ·»åŠ è€…'; +$wb['added_date_txt'] = 'æ·»åŠ æ—¥æœŸ'; +$wb['parent_client_id_txt'] = '代ç†å•†çš„客户端'; +$wb['none_txt'] = 'æ— '; +$wb['limit_database_quota_txt'] = 'æ•°æ®åº“é…é¢'; +$wb['limit_database_quota_error_notint'] = 'æ•°æ®åº“é…é¢é™åˆ¶å¿…须是数å—。'; +$wb['limit_database_user_txt'] = '最大数æ®åº“用户数'; +$wb['limit_database_user_error_notint'] = 'æ•°æ®åº“用户é™åˆ¶å¿…须是数å—。'; +$wb['reseller_txt'] = '代ç†å•†'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['invalid_vat_id'] = 'æ— æ•ˆçš„å¢žå€¼ç¨Žå·ç 。'; +$wb['email_error_empty'] = '电å邮件为空'; +$wb['limit_directive_snippets_txt'] = '显示 Web æœåŠ¡å™¨é…置选择'; +$wb['Address'] = '地å€'; +$wb['Limits'] = 'é™åˆ¶'; diff --git a/interface/web/client/lib/lang/cn_client_circle.lng b/interface/web/client/lib/lang/cn_client_circle.lng new file mode 100644 index 0000000000..58248c843e --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_circle.lng @@ -0,0 +1,9 @@ +<?php +$wb['Client Circle'] = '客户循环'; +$wb['Circle'] = '循环'; +$wb['circle_txt'] = '循环'; +$wb['circle_name_txt'] = '循环å称'; +$wb['client_ids_txt'] = '客户/代ç†å•†'; +$wb['description_txt'] = 'æè¿°'; +$wb['active_txt'] = '激活'; +?> diff --git a/interface/web/client/lib/lang/cn_client_circle_list.lng b/interface/web/client/lib/lang/cn_client_circle_list.lng new file mode 100644 index 0000000000..2fbf762682 --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_circle_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '客户圈'; +$wb['circle_id_txt'] = '圈ID'; +$wb['circle_name_txt'] = '圈å'; +$wb['description_txt'] = 'æè¿°'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åœˆ'; +$wb['filter_txt'] = 'ç›é€‰'; +$wb['delete_txt'] = 'åˆ é™¤'; +$wb['active_txt'] = '活跃'; +?> diff --git a/interface/web/client/lib/lang/cn_client_del.lng b/interface/web/client/lib/lang/cn_client_del.lng new file mode 100644 index 0000000000..5598db2e34 --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_del.lng @@ -0,0 +1,10 @@ +<?php +$wb['confirm_action_txt'] = '确认æ“作'; +$wb['delete_explanation'] = 'æ¤æ“ä½œå°†åˆ é™¤ä¸Žæ¤å®¢æˆ·ç›¸å…³è”的以下记录数é‡'; +$wb['btn_save_txt'] = 'åˆ é™¤å®¢æˆ·'; +$wb['btn_cancel_txt'] = 'å–æ¶ˆåˆ é™¤å®¢æˆ·'; +$wb['confirm_client_delete_txt'] = '您确定è¦åˆ 除æ¤å®¢æˆ·å—?'; +$wb['list_head_txt'] = 'åˆ é™¤å®¢æˆ·'; +$wb['table_txt'] = 'è¡¨æ ¼'; +$wb['data_txt'] = 'æ•°æ®'; +?> diff --git a/interface/web/client/lib/lang/cn_client_message.lng b/interface/web/client/lib/lang/cn_client_message.lng new file mode 100644 index 0000000000..080ca70cdd --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_message.lng @@ -0,0 +1,20 @@ +<?php +$wb['page_head_txt'] = 'å‘客户和ç»é”€å•†å‘é€ç”µå邮件'; +$wb['btn_send_txt'] = 'å‘é€ç”µå邮件'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['sender_txt'] = 'å‘件人电å邮件地å€'; +$wb['subject_txt'] = '主题'; +$wb['message_txt'] = 'ä¿¡æ¯'; +$wb['form_legend_client_txt'] = 'å‘客户å‘é€ç”µå邮件。'; +$wb['form_legend_admin_txt'] = 'å‘客户和ç»é”€å•†å‘é€ç”µå邮件。'; +$wb['sender_invalid_error'] = 'å‘件人电åé‚®ä»¶æ— æ•ˆã€‚'; +$wb['subject_invalid_error'] = '主题为空。'; +$wb['message_invalid_error'] = 'ä¿¡æ¯ä¸ºç©ºã€‚'; +$wb['email_sent_to_txt'] = '电å邮件å‘é€è‡³ï¼š'; +$wb['recipient_txt'] = '收件人'; +$wb['all_clients_resellers_txt'] = '所有客户和ç»é”€å•†'; +$wb['all_clients_txt'] = '所有客户'; +$wb['variables_txt'] = 'å˜é‡ï¼š'; +$wb['gender_m_txt'] = '先生'; +$wb['gender_f_txt'] = '女士'; +?> diff --git a/interface/web/client/lib/lang/cn_client_message_template.lng b/interface/web/client/lib/lang/cn_client_message_template.lng new file mode 100644 index 0000000000..7ec95daad1 --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_message_template.lng @@ -0,0 +1,13 @@ +<?php +$wb['template_type_txt'] = '电å邮件类型'; +$wb['template_name_txt'] = '模æ¿å称'; +$wb['subject_txt'] = '主题'; +$wb['message_txt'] = '消æ¯'; +$wb['Email template'] = '电å邮件模æ¿'; +$wb['Settings'] = '设置'; +$wb['variables_txt'] = 'å˜é‡'; +$wb['variables_description_txt'] = '(用户å和密ç å˜é‡ä»…在欢迎电å邮件ä¸å¯ç”¨ã€‚)'; +$wb['duplicate_welcome_error'] = 'åªèƒ½æœ‰ä¸€ä¸ªé»˜è®¤çš„欢迎电å邮件模æ¿ã€‚请编辑现有模æ¿ï¼Œè€Œä¸æ˜¯æ·»åŠ 新模æ¿ã€‚'; +$wb['subject_error_empty'] = '主题为空'; +$wb['message_error_empty'] = '消æ¯ä¸ºç©º'; +?> diff --git a/interface/web/client/lib/lang/cn_client_message_template_list.lng b/interface/web/client/lib/lang/cn_client_message_template_list.lng new file mode 100644 index 0000000000..8e6fbaf90e --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_message_template_list.lng @@ -0,0 +1,5 @@ +<?php +$wb['list_head_txt'] = 'Email 模æ¿'; +$wb['template_type_txt'] = '消æ¯ç±»åž‹'; +$wb['template_name_txt'] = '模æ¿ç±»åž‹'; +?> diff --git a/interface/web/client/lib/lang/cn_client_template.lng b/interface/web/client/lib/lang/cn_client_template.lng new file mode 100644 index 0000000000..1e4eace66f --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_template.lng @@ -0,0 +1,131 @@ +<?php +$wb['ssh_chroot_notempty'] = '未选择SSH chroot选项。请选择至少一个选项。'; +$wb['template_type_txt'] = '模æ¿ç±»åž‹'; +$wb['template_name_txt'] = '模æ¿å称'; +$wb['limit_client_error_notint'] = '客户é™åˆ¶ä¸æ˜¯æ•°å—。'; +$wb['limit_mail_backup_txt'] = 'å¯ç”¨ç”µå邮件备份功能'; +$wb['default_mailserver_txt'] = '默认邮件æœåŠ¡å™¨'; +$wb['limit_maildomain_txt'] = '最大电å邮件域åæ•°'; +$wb['limit_mailbox_txt'] = '最大邮箱数'; +$wb['limit_mailalias_txt'] = '最大电å邮件别åæ•°'; +$wb['limit_mailaliasdomain_txt'] = '最大域别åæ•°'; +$wb['limit_mailmailinglist_txt'] = '最大邮件列表数'; +$wb['limit_mailforward_txt'] = '最大电å邮件转å‘æ•°'; +$wb['limit_mailcatchall_txt'] = '最大电å邮件全接收账户数'; +$wb['limit_mailrouting_txt'] = '最大电å邮件路由数'; +$wb['limit_mail_wblist_txt'] = '最大电å邮件白/黑åå•æ¡ç›®æ•°'; +$wb['limit_mailfilter_txt'] = '最大电å邮件过滤器数'; +$wb['limit_fetchmail_txt'] = '最大fetchmail账户数'; +$wb['limit_mailquota_txt'] = '邮箱é…é¢'; +$wb['limit_spamfilter_wblist_txt'] = '最大垃圾邮件过滤器白/黑åå•æ•°'; +$wb['limit_spamfilter_user_txt'] = '最大垃圾邮件过滤器用户数'; +$wb['limit_spamfilter_policy_txt'] = '最大垃圾邮件过滤器ç–略数'; +$wb['limit_relayhost_txt'] = '显示SMTPä¸ç»§ä¸»æœºé€‰é¡¹'; +$wb['limit_domain_txt'] = 'limit_domain'; +$wb['limit_subdomain_txt'] = 'limit_subdomain'; +$wb['limit_webquota_txt'] = 'limit_webquota'; +$wb['limit_database_txt'] = 'limit_database'; +$wb['limit_cron_txt'] = '最大计划任务数'; +$wb['limit_cron_type_txt'] = '最大的计划任务类型数é‡ï¼ˆchrootedå’Œfull表示url)'; +$wb['limit_cron_frequency_txt'] = '执行之间的最å°å»¶è¿Ÿæ—¶é—´'; +$wb['default_webserver_txt'] = '默认WebæœåŠ¡å™¨'; +$wb['limit_web_domain_txt'] = '最大的网站域åæ•°é‡'; +$wb['limit_web_aliasdomain_txt'] = '最大的网站别å域åæ•°é‡'; +$wb['limit_web_subdomain_txt'] = '最大的网站å域åæ•°é‡'; +$wb['limit_ftp_user_txt'] = '最大的FTP用户数é‡'; +$wb['default_dnsserver_txt'] = '默认DNSæœåŠ¡å™¨'; +$wb['limit_dns_zone_txt'] = '最大的DNS区域数é‡'; +$wb['default_slave_dnsserver_txt'] = '默认辅助DNSæœåŠ¡å™¨'; +$wb['limit_dns_slave_zone_txt'] = '最大的辅助DNS区域数é‡'; +$wb['limit_dns_record_txt'] = '最大的DNS记录数é‡'; +$wb['limit_shell_user_txt'] = '最大的Shell用户数é‡'; +$wb['limit_webdav_user_txt'] = '最大的Webdav用户数é‡'; +$wb['limit_backup_txt'] = 'å¯ç”¨å¤‡ä»½åŠŸèƒ½'; +$wb['limit_client_txt'] = '最大的客户端数é‡'; +$wb['limit_maildomain_error_notint'] = '邮件域åé™åˆ¶å¿…须是数å—。'; +$wb['limit_mailmailinglist_error_notint'] = '邮件列表记录é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailbox_error_notint'] = '邮箱é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailalias_error_notint'] = '电å邮件别åé™åˆ¶å¿…须是数å—。'; +$wb['limit_mailaliasdomain_error_notint'] = '电å邮件域å别åé™åˆ¶å¿…须是数å—。'; +$wb['limit_mailforward_error_notint'] = '电å邮件转å‘é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailcatchall_error_notint'] = '电å邮件全收件箱é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailrouting_error_notint'] = '电å邮件路由é™åˆ¶å¿…须是数å—。'; +$wb['limit_mail_wblist_error_notint'] = '电å邮件白åå•/黑åå•é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailfilter_error_notint'] = '电å邮件过滤器é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailfetchmail_error_notint'] = 'fetchmailé™åˆ¶å¿…须是数å—。'; +$wb['limit_mailquota_error_notint'] = '电å邮件é…é¢é™åˆ¶å¿…须是数å—。'; +$wb['limit_spamfilter_wblist_error_notint'] = '垃圾邮件过滤器白åå•/黑åå•é™åˆ¶å¿…须是数å—。'; +$wb['limit_spamfilter_user_error_notint'] = '垃圾邮件过滤器用户é™åˆ¶å¿…须是数å—。'; +$wb['limit_spamfilter_policy_error_notint'] = '垃圾邮件过滤器ç–ç•¥é™åˆ¶å¿…须是数å—。'; +$wb['limit_web_domain_error_notint'] = '网站é™åˆ¶å¿…须为数å—。'; +$wb['limit_web_aliasdomain_error_notint'] = '网站别å域é™åˆ¶å¿…须为数å—。'; +$wb['limit_web_subdomain_error_notint'] = '网站å域åé™åˆ¶å¿…须为数å—。'; +$wb['limit_ftp_user_error_notint'] = 'FTP用户é™åˆ¶å¿…须为数å—。'; +$wb['limit_shell_user_error_notint'] = 'Shell用户é™åˆ¶å¿…须为数å—。'; +$wb['limit_webdav_user_error_notint'] = 'Webdav用户é™åˆ¶å¿…须为数å—。'; +$wb['limit_dns_zone_error_notint'] = 'DNS区域é™åˆ¶å¿…须为数å—。'; +$wb['limit_dns_slave_zone_error_notint'] = 'DNS从属区域é™åˆ¶å¿…须为数å—。'; +$wb['limit_dns_record_error_notint'] = 'DNS记录é™åˆ¶å¿…须为数å—。'; +$wb['default_dbserver_txt'] = '默认数æ®åº“æœåŠ¡å™¨'; +$wb['limit_database_txt'] = 'æ•°æ®åº“最大数é‡'; +$wb['limit_database_error_notint'] = 'æ•°æ®åº“é™åˆ¶å¿…须为数å—。'; +$wb['limit_cron_error_notint'] = 'Cron任务é™åˆ¶å¿…须为数å—。'; +$wb['limit_cron_error_frequency'] = 'Cron频率é™åˆ¶å¿…须为数å—。'; +$wb['error_template_name_empty'] = '请输入模æ¿å称'; +$wb['limit_web_quota_txt'] = '网站é…é¢'; +$wb['limit_traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['limit_trafficquota_error_notint'] = 'æµé‡é…é¢å¿…须为数å—。'; +$wb['template_del_aborted_txt'] = 'åˆ é™¤ä¸æ¢ã€‚ä»ç„¶æœ‰å®¢æˆ·ç«¯é€‰æ‹©äº†æ¤æ¨¡æ¿ã€‚'; +$wb['limit_openvz_vm_txt'] = '虚拟æœåŠ¡å™¨æœ€å¤§æ•°é‡'; +$wb['limit_openvz_vm_template_id_txt'] = '强制使用虚拟æœåŠ¡å™¨æ¨¡æ¿'; +$wb['limit_openvz_vm_error_notint'] = '虚拟æœåŠ¡å™¨é™åˆ¶å¿…须为数å—。'; +$wb['ssh_chroot_txt'] = 'SSH-Chroot选项'; +$wb['web_php_options_txt'] = 'PHP选项'; +$wb['limit_cgi_txt'] = 'å¯ç”¨CGI'; +$wb['limit_ssi_txt'] = 'å¯ç”¨SSI'; +$wb['limit_perl_txt'] = 'å¯ç”¨Perl'; +$wb['limit_ruby_txt'] = 'å¯ç”¨Ruby'; +$wb['limit_python_txt'] = 'å¯ç”¨Python'; +$wb['force_suexec_txt'] = '强制使用SuEXEC'; +$wb['limit_hterror_txt'] = 'å¯ç”¨è‡ªå®šä¹‰é”™è¯¯æ–‡æ¡£'; +$wb['limit_wildcard_txt'] = 'å¯ç”¨é€šé…符å域å'; +$wb['limit_ssl_txt'] = 'å¯ç”¨SSL'; +$wb['limit_ssl_letsencrypt_txt'] = 'å¯ç”¨Let\'s Encrypt'; +$wb['web_limits_txt'] = '网站é™åˆ¶'; +$wb['email_limits_txt'] = '电å邮件é™åˆ¶'; +$wb['database_limits_txt'] = 'æ•°æ®åº“é™åˆ¶'; +$wb['cron_job_limits_txt'] = 'Cron任务é™åˆ¶'; +$wb['dns_limits_txt'] = 'DNS é™åˆ¶'; +$wb['virtualization_limits_txt'] = '虚拟化é™åˆ¶'; +$wb['aps_limits_txt'] = 'APS 安装é™åˆ¶'; +$wb['limit_aps_txt'] = '最大 APS 实例数'; +$wb['limit_aps_error_notint'] = 'APS 实例é™åˆ¶å¿…须是数å—。'; +$wb['limit_domainmodule_txt'] = 'Domainmodule é™åˆ¶'; +$wb['client_limits_txt'] = '客户端é™åˆ¶'; +$wb['limit_database_quota_txt'] = 'æ•°æ®åº“é…é¢'; +$wb['limit_database_quota_error_notint'] = 'æ•°æ®åº“é…é¢é™åˆ¶å¿…须是数å—。'; +$wb['xmpp_limits_txt'] = 'XMPP é™åˆ¶'; +$wb['xmpp_servers_txt'] = 'XMPP æœåŠ¡å™¨'; +$wb['xmpp_servers_placeholder'] = '选择 XMPP æœåŠ¡å™¨'; +$wb['no_xmpp_server_error'] = '至少需è¦é€‰æ‹©ä¸€ä¸ª XMPP æœåŠ¡å™¨ã€‚'; +$wb['xmpp_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œ XMPP æœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰æ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP 域é™åˆ¶å¿…须是数å—。'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP 用户é™åˆ¶å¿…须是数å—。'; +$wb['limit_xmpp_domain_txt'] = '最大 XMPP 域数'; +$wb['limit_xmpp_user_txt'] = '最大 XMPP å¸æˆ·æ•°'; +$wb['limit_xmpp_muc_txt'] = '多用户èŠå¤©å¯ç”¨'; +$wb['limit_xmpp_pastebin_txt'] = 'MUC ä¸çš„粘贴æ¿å¯ç”¨'; +$wb['limit_xmpp_httparchive_txt'] = 'MUC ä¸çš„ HTTP å˜æ¡£å¯ç”¨'; +$wb['limit_xmpp_anon_txt'] = '匿å主机å¯ç”¨'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD 用户目录å¯ç”¨'; +$wb['limit_xmpp_proxy_txt'] = 'å—节æµä»£ç†å¯ç”¨'; +$wb['limit_xmpp_status_txt'] = '状æ€ä¸»æœºå¯ç”¨'; +$wb['dns_servers_txt'] = 'DNS æœåŠ¡å™¨'; +$wb['limit_directive_snippets_txt'] = '显示 Web æœåŠ¡å™¨é…置选择'; +$wb['limit_database_user_txt'] = '最大数æ®åº“用户数'; +$wb['web_servers_txt'] = 'Web æœåŠ¡å™¨'; +$wb['dns_servers_txt'] = 'DNS æœåŠ¡å™¨'; +$wb['xmpp_servers_txt'] = 'XMPP æœåŠ¡å™¨'; +$wb['db_servers_txt'] = 'æ•°æ®åº“æœåŠ¡å™¨'; +$wb['mail_servers_txt'] = '邮件æœåŠ¡å™¨'; +$wb['Limits'] = 'é™åˆ¶'; diff --git a/interface/web/client/lib/lang/cn_client_template_list.lng b/interface/web/client/lib/lang/cn_client_template_list.lng new file mode 100644 index 0000000000..8fb3dccd1d --- /dev/null +++ b/interface/web/client/lib/lang/cn_client_template_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '客户和分销商模æ¿'; +$wb['template_type_txt'] = '类型'; +$wb['template_name_txt'] = '模æ¿å称'; +$wb['template_id_txt'] = '模æ¿ID'; +$wb['sys_groupid_txt'] = '分销商'; +?> diff --git a/interface/web/client/lib/lang/cn_clients_list.lng b/interface/web/client/lib/lang/cn_clients_list.lng new file mode 100644 index 0000000000..c12c0f7009 --- /dev/null +++ b/interface/web/client/lib/lang/cn_clients_list.lng @@ -0,0 +1,14 @@ +<?php +$wb['list_head_txt'] = '客户'; +$wb['client_id_txt'] = 'ID'; +$wb['company_name_txt'] = 'å…¬å¸å称'; +$wb['contact_name_txt'] = 'è”系人姓å'; +$wb['username_txt'] = '用户å'; +$wb['city_txt'] = '城市'; +$wb['country_txt'] = '国家'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°å®¢æˆ·'; +$wb['customer_no_txt'] = '客户编å·'; +$wb['locked_txt'] = 'å·²é”定'; +$wb['yes_txt'] = '是'; +$wb['no_txt'] = 'å¦'; +?> diff --git a/interface/web/client/lib/lang/cn_domain.lng b/interface/web/client/lib/lang/cn_domain.lng new file mode 100644 index 0000000000..dbdac298a6 --- /dev/null +++ b/interface/web/client/lib/lang/cn_domain.lng @@ -0,0 +1,6 @@ +<?php +$wb['domain_error_empty'] = '域å为空'; +$wb['domain_error_unique'] = '域åå·²å˜åœ¨'; +$wb['domain_error_regex'] = '该域åä¸è¢«å…许'; +$wb['Domain'] = '域å'; +?> diff --git a/interface/web/client/lib/lang/cn_domain_list.lng b/interface/web/client/lib/lang/cn_domain_list.lng new file mode 100644 index 0000000000..8eed884ad9 --- /dev/null +++ b/interface/web/client/lib/lang/cn_domain_list.lng @@ -0,0 +1,6 @@ +<?php +$wb['list_head_txt'] = '域å列表'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åŸŸå'; +$wb['domain_txt'] = '域å'; +$wb['user_txt'] = '客户'; +?> diff --git a/interface/web/client/lib/lang/cn_reseller.lng b/interface/web/client/lib/lang/cn_reseller.lng new file mode 100644 index 0000000000..0f002ddc2d --- /dev/null +++ b/interface/web/client/lib/lang/cn_reseller.lng @@ -0,0 +1,216 @@ +<?php +$wb['limit_maildomain_txt'] = '最大邮件域åæ•°'; +$wb['limit_mailmailinglist_txt'] = '最大邮件列表数'; +$wb['limit_mailbox_txt'] = '最大邮箱数'; +$wb['limit_mailalias_txt'] = '最大邮件别åæ•°'; +$wb['limit_mailaliasdomain_txt'] = '最大域å别åæ•°'; +$wb['limit_mailforward_txt'] = '最大邮件转å‘æ•°'; +$wb['limit_mailcatchall_txt'] = '最大邮件全收账户数'; +$wb['limit_mailrouting_txt'] = '最大邮件路由数'; +$wb['limit_mail_wblist_txt'] = '最大邮件白åå• / 黑åå•æ•°'; +$wb['limit_mailfilter_txt'] = '最大邮件过滤器数'; +$wb['limit_fetchmail_txt'] = '最大fetchmail账户数'; +$wb['limit_mailquota_txt'] = '邮箱é…é¢'; +$wb['limit_spamfilter_wblist_txt'] = '最大垃圾邮件过滤白åå• / 黑åå•æ•°'; +$wb['limit_spamfilter_user_txt'] = '最大垃圾邮件过滤用户数'; +$wb['limit_spamfilter_policy_txt'] = '最大垃圾邮件过滤ç–略数'; +$wb['limit_mail_backup_txt'] = '邮件备份功能å¯ç”¨'; +$wb['default_mailserver_txt'] = '默认邮件æœåŠ¡å™¨'; +$wb['company_name_txt'] = 'å…¬å¸å称'; +$wb['contact_firstname_txt'] = 'è”系人åå—'; +$wb['contact_name_txt'] = 'è”系人姓æ°'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['password_click_to_set_txt'] = '点击设置'; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['language_txt'] = 'è¯è¨€'; +$wb['usertheme_txt'] = '主题'; +$wb['street_txt'] = 'è¡—é“'; +$wb['zip_txt'] = '邮政编ç '; +$wb['city_txt'] = '城市'; +$wb['state_txt'] = 'å·ž / çœ'; +$wb['country_txt'] = '国家'; +$wb['telephone_txt'] = '电è¯'; +$wb['mobile_txt'] = '手机'; +$wb['fax_txt'] = 'ä¼ çœŸ'; +$wb['email_txt'] = '电å邮件'; +$wb['internet_txt'] = '互è”网'; +$wb['icq_txt'] = 'ICQ'; +$wb['notes_txt'] = '注释'; +$wb['company_txt'] = 'å…¬å¸'; +$wb['title_txt'] = '称谓'; +$wb['firstname_txt'] = 'åå—'; +$wb['surname_txt'] = '姓æ°'; +$wb['limit_relayhost_txt'] = '显示SMTPä¸ç»§ä¸»æœºé€‰é¡¹'; +$wb['limit_domain_txt'] = '域åé™åˆ¶'; +$wb['limit_subdomain_txt'] = 'å域åé™åˆ¶'; +$wb['limit_webquota_txt'] = 'Webé…é¢é™åˆ¶'; +$wb['limit_database_txt'] = 'æ•°æ®åº“é™åˆ¶'; +$wb['limit_database_user_txt'] = '最大数æ®åº“用户数'; +$wb['limit_cron_txt'] = '最大cron作业数'; +$wb['limit_cron_type_txt'] = '最大cron作业类型数(chrootedå’Œfullæ„味ç€url)'; +$wb['limit_cron_frequency_txt'] = '执行之间的最å°å»¶è¿Ÿ'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['limit_client_error_notint'] = '客户端é™åˆ¶ä¸æ˜¯æ•°å—。'; +$wb['firstname_error_empty'] = 'åå—为空。'; +$wb['contact_error_empty'] = 'è”系人åå—为空。'; +$wb['default_webserver_txt'] = '默认WebæœåŠ¡å™¨'; +$wb['limit_web_domain_txt'] = '最大Web域数'; +$wb['limit_web_aliasdomain_txt'] = '最大Web别å域数'; +$wb['limit_web_subdomain_txt'] = '最大Webå域数'; +$wb['limit_ftp_user_txt'] = '最大FTP用户数'; +$wb['default_dnsserver_txt'] = '默认DNSæœåŠ¡å™¨'; +$wb['limit_dns_zone_txt'] = '最大DNS区域数'; +$wb['limit_dns_slave_zone_txt'] = '最大DNS从属区域数'; +$wb['limit_dns_record_txt'] = '最大DNS记录数'; +$wb['limit_shell_user_txt'] = '最大Shell用户数'; +$wb['limit_webdav_user_txt'] = '最大Webdav用户数'; +$wb['limit_backup_txt'] = '备份功能å¯ç”¨'; +$wb['limit_client_txt'] = '最大客户端数'; +$wb['username_error_empty'] = '用户å为空。'; +$wb['username_error_unique'] = '用户å必须唯一。'; +$wb['limit_maildomain_error_notint'] = '电å邮件域åé™åˆ¶å¿…须是数å—。'; +$wb['limit_mailmailinglist_error_notint'] = '邮件列表记录é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailbox_error_notint'] = '邮箱é™åˆ¶å¿…须是数å—。'; +$wb['limit_mailalias_error_notint'] = '邮件别åé™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mailforward_error_notint'] = '邮件转å‘é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mailcatchall_error_notint'] = '邮件 catchall é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mailrouting_error_notint'] = '邮件路由é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mail_wblist_error_notint'] = '邮件白åå•/黑åå•é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mailfilter_error_notint'] = '邮件过滤器é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mailfetchmail_error_notint'] = 'fetchmail é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_mailquota_error_notint'] = '邮件é…é¢é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_spamfilter_wblist_error_notint'] = '垃圾邮件过滤白åå•/黑åå•é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_spamfilter_user_error_notint'] = '垃圾邮件过滤用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_spamfilter_policy_error_notint'] = '垃圾邮件过滤ç–ç•¥é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_web_domain_error_notint'] = '网站é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_web_aliasdomain_error_notint'] = '网站别å域åé™åˆ¶å¿…须是一个数å—。'; +$wb['limit_web_subdomain_error_notint'] = '网站å域åé™åˆ¶å¿…须是一个数å—。'; +$wb['limit_ftp_user_error_notint'] = 'FTP 用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_webdav_user_error_notint'] = 'WebDAV 用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_shell_user_error_notint'] = 'Shell 用户é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_dns_zone_error_notint'] = 'DNS 区域é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_dns_slave_zone_error_notint'] = 'DNS 从区域é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_dns_record_error_notint'] = 'DNS 记录é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_client_error_notint'] = 'å客户端é™åˆ¶å¿…须是一个数å—。'; +$wb['default_dbserver_txt'] = '默认数æ®åº“æœåŠ¡å™¨'; +$wb['limit_database_txt'] = '最大数æ®åº“æ•°'; +$wb['limit_database_error_notint'] = 'æ•°æ®åº“é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_cron_error_notint'] = '计划任务é™åˆ¶å¿…须是一个数å—。'; +$wb['limit_cron_error_frequency'] = '计划任务频率é™åˆ¶å¿…须是一个数å—。'; +$wb['username_error_regex'] = '用户å包å«æ— 效å—符。'; +$wb['template_master_txt'] = '主模æ¿'; +$wb['template_additional_txt'] = 'é™„åŠ æ¨¡æ¿'; +$wb['add_additional_template_txt'] = 'æ·»åŠ é¢å¤–模æ¿'; +$wb['delete_additional_template_txt'] = 'åˆ é™¤é¢å¤–模æ¿'; +$wb['ssh_chroot_txt'] = 'SSH-Chroot选项'; +$wb['web_php_options_txt'] = 'PHP选项'; +$wb['limit_cgi_txt'] = 'å¯ç”¨CGI'; +$wb['limit_ssi_txt'] = 'å¯ç”¨SSI'; +$wb['limit_perl_txt'] = 'å¯ç”¨Perl'; +$wb['limit_ruby_txt'] = 'å¯ç”¨Ruby'; +$wb['limit_python_txt'] = 'å¯ç”¨Python'; +$wb['force_suexec_txt'] = '强制SuEXEC'; +$wb['limit_hterror_txt'] = '自定义错误文档å¯ç”¨'; +$wb['limit_wildcard_txt'] = '通é…符å域åå¯ç”¨'; +$wb['limit_ssl_txt'] = 'å¯ç”¨SSL'; +$wb['limit_ssl_letsencrypt_txt'] = 'å¯ç”¨Let\'s Encrypt'; +$wb['limit_client_error'] = '达到最大客户数。'; +$wb['limit_client_error_positive_or_unlimited'] = '客户数é‡å¿…é¡»> 0或-1ï¼ˆæ— é™åˆ¶ï¼‰'; +$wb['limit_web_quota_txt'] = 'Webé…é¢'; +$wb['limit_traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['limit_trafficquota_error_notint'] = 'æµé‡é…é¢å¿…须是数å—。'; +$wb['customer_no_txt'] = '客户编å·'; +$wb['vat_id_txt'] = '增值税编å·'; +$wb['required_fields_txt'] = '*å¿…å¡«å—段'; +$wb['limit_openvz_vm_txt'] = '最大虚拟æœåŠ¡å™¨æ•°'; +$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选项。请选择至少一个选项。'; +$wb['username_error_collision'] = '用户åä¸èƒ½ä»¥-web-或-web-åŽè·Ÿæ•°å—开头。'; +$wb['web_limits_txt'] = 'Webé™åˆ¶'; +$wb['email_limits_txt'] = '电å邮件é™åˆ¶'; +$wb['database_limits_txt'] = 'æ•°æ®åº“é™åˆ¶'; +$wb['cron_job_limits_txt'] = '计划任务é™åˆ¶'; +$wb['dns_limits_txt'] = 'DNSé™åˆ¶'; +$wb['virtualization_limits_txt'] = '虚拟化é™åˆ¶'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['email_error_isemail'] = '请输入有效的电å邮件地å€ã€‚'; +$wb['customer_no_error_unique'] = '客户编å·å¿…须唯一(或为空)。'; +$wb['paypal_email_error_isemail'] = '请输入有效的PayPal电å邮件地å€ã€‚'; +$wb['paypal_email_txt'] = 'PayPal电å邮件'; +$wb['company_id_txt'] = 'å…¬å¸/ä¼ä¸šID'; +$wb['bank_account_number_txt'] = '银行账å·'; +$wb['bank_account_owner_txt'] = '银行账户所有者'; +$wb['bank_code_txt'] = '银行代ç '; +$wb['bank_name_txt'] = '银行å称'; +$wb['bank_account_iban_txt'] = 'IBAN'; +$wb['bank_account_swift_txt'] = 'BIC/Swift'; +$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'] = 'å·²é”定'; +$wb['canceled_txt'] = 'å·²å–消'; +$wb['gender_m_txt'] = '先生'; +$wb['gender_f_txt'] = '女士'; +$wb['gender_txt'] = '称呼'; +$wb['web_servers_txt'] = 'WebæœåŠ¡å™¨'; +$wb['web_servers_placeholder'] = '选择WebæœåŠ¡å™¨'; +$wb['no_web_server_error'] = '至少必须选择一个WebæœåŠ¡å™¨ã€‚'; +$wb['web_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œWebæœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰ï¼Œæ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['dns_servers_txt'] = 'DNSæœåŠ¡å™¨'; +$wb['dns_servers_placeholder'] = '选择DNSæœåŠ¡å™¨'; +$wb['no_dns_server_error'] = '至少必须选择一个DNSæœåŠ¡å™¨ã€‚'; +$wb['dns_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œDNSæœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰ï¼Œæ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['db_servers_txt'] = 'æ•°æ®åº“æœåŠ¡å™¨'; +$wb['db_servers_placeholder'] = '选择数æ®åº“æœåŠ¡å™¨'; +$wb['no_db_server_error'] = '至少必须选择一个数æ®åº“æœåŠ¡å™¨ã€‚'; +$wb['db_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨ç”¨ä½œæ•°æ®åº“æœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰ï¼Œæ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['mail_servers_txt'] = '邮件æœåŠ¡å™¨'; +$wb['mail_servers_placeholder'] = '选择邮件æœåŠ¡å™¨'; +$wb['no_mail_server_error'] = '至少必须选择一个邮件æœåŠ¡å™¨ã€‚'; +$wb['mail_servers_used'] = '您å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨æ£åœ¨ç”¨ä½œé‚®ä»¶æœåŠ¡å™¨ã€‚请确ä¿åœ¨åˆ 除之å‰æ¤æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['customer_no_template_txt'] = '客户编å·æ¨¡æ¿'; +$wb['customer_no_template_error_regex_txt'] = '客户编å·æ¨¡æ¿åŒ…å«æ— 效å—符。'; +$wb['customer_no_start_txt'] = '客户编å·èµ·å§‹å€¼'; +$wb['customer_no_counter_txt'] = '客户编å·è®¡æ•°å™¨'; + +$wb['xmpp_limits_txt'] = 'XMPP é™åˆ¶'; +$wb['xmpp_servers_txt'] = 'XMPP æœåŠ¡å™¨'; +$wb['xmpp_servers_placeholder'] = '选择 XMPP æœåŠ¡å™¨'; +$wb['no_xmpp_server_error'] = '必须选择至少一个 XMPP æœåŠ¡å™¨ã€‚'; +$wb['xmpp_servers_used'] = '您æ£åœ¨å°è¯•ä»Žæ¤å®¢æˆ·ç«¯ä¸åˆ 除的æœåŠ¡å™¨è¢«ç”¨ä½œ XMPP æœåŠ¡å™¨ã€‚åœ¨åˆ é™¤ä¹‹å‰ï¼Œè¯·ç¡®ä¿è¯¥æœåŠ¡å™¨æœªè¢«æ¤å®¢æˆ·ç«¯ä½¿ç”¨ã€‚'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP 域é™åˆ¶å¿…须为数å—。'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP 用户é™åˆ¶å¿…须为数å—。'; +$wb['limit_xmpp_domain_txt'] = 'XMPP 域最大数é‡'; +$wb['limit_xmpp_user_txt'] = 'XMPP å¸æˆ·æœ€å¤§æ•°é‡'; +$wb['limit_xmpp_muc_txt'] = '支æŒå¤šç”¨æˆ·èŠå¤©'; +$wb['limit_xmpp_pastebin_txt'] = 'æ”¯æŒ MUC çš„ Pastebin'; +$wb['limit_xmpp_httparchive_txt'] = 'æ”¯æŒ MUC çš„ HTTP å˜æ¡£'; +$wb['limit_xmpp_anon_txt'] = '匿å主机å¯ç”¨'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD 用户目录å¯ç”¨'; +$wb['limit_xmpp_proxy_txt'] = 'Bytestream 代ç†å¯ç”¨'; +$wb['limit_xmpp_status_txt'] = '状æ€ä¸»æœºå¯ç”¨'; +$wb['added_by_txt'] = 'æ·»åŠ äºº'; +$wb['added_date_txt'] = 'æ·»åŠ æ—¥æœŸ'; +$wb['limit_domainmodule_error_notint'] = '域模å—é™åˆ¶å¿…须为数å—。'; +$wb['limit_domainmodule_txt'] = '域模å—é™åˆ¶'; +$wb['client_limits_txt'] = '客户端é™åˆ¶'; +$wb['err_msg_master_tpl_set'] = '如果选择了除 "自定义" 之外的任何主模æ¿ï¼Œåˆ™å¿½ç•¥æ‰€æœ‰è‡ªå®šä¹‰é™åˆ¶è®¾ç½®ã€‚'; +$wb['invalid_vat_id'] = 'æ— æ•ˆçš„å¢žå€¼ç¨Žå·ã€‚'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['email_error_empty'] = '电å邮件为空'; +$wb['limit_directive_snippets_txt'] = '显示WebæœåŠ¡å™¨é…置选项'; +$wb['limit_database_user_txt'] = '最大数æ®åº“用户数'; +$wb['limit_database_user_error_notint'] = 'æ•°æ®åº“用户é™åˆ¶å¿…须为数å—。'; +$wb['limit_database_quota_txt'] = 'æ•°æ®åº“é…é¢'; +$wb['limit_database_quota_error_notint'] = 'æ•°æ®åº“é…é¢é™åˆ¶å¿…须为数å—。'; +$wb['Reseller'] = 'ç»é”€å•†'; +$wb['Address'] = '地å€'; +$wb['Limits'] = 'é™åˆ¶'; diff --git a/interface/web/client/lib/lang/cn_resellers_list.lng b/interface/web/client/lib/lang/cn_resellers_list.lng new file mode 100644 index 0000000000..b8768e3224 --- /dev/null +++ b/interface/web/client/lib/lang/cn_resellers_list.lng @@ -0,0 +1,11 @@ +<?php +$wb['list_head_txt'] = '代ç†å•†'; +$wb['client_id_txt'] = 'ID'; +$wb['company_name_txt'] = 'å…¬å¸å称'; +$wb['contact_name_txt'] = 'è”系人姓å'; +$wb['city_txt'] = '城市'; +$wb['country_txt'] = '国家'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ä»£ç†å•†'; +$wb['customer_no_txt'] = '客户å·'; +$wb['username_txt'] = '用户å'; +?> diff --git a/interface/web/client/list/domain.list.php b/interface/web/client/list/domain.list.php index 8fc81eeef9..c156d857c3 100644 --- a/interface/web/client/list/domain.list.php +++ b/interface/web/client/list/domain.list.php @@ -86,7 +86,7 @@ $liste["item"][] = array( 'field' => "domain", 'value' => ""); $liste["item"][] = array( 'field' => "sys_groupid", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", 'op' => "=", 'prefix' => "", diff --git a/interface/web/client/templates/client_circle_edit.htm b/interface/web/client/templates/client_circle_edit.htm index 0bdf2f49a0..b497fd9509 100644 --- a/interface/web/client/templates/client_circle_edit.htm +++ b/interface/web/client/templates/client_circle_edit.htm @@ -9,12 +9,6 @@ <div class="form-group"> <label for="circle_name" class="col-sm-3 control-label">{tmpl_var name='circle_name_txt'}*</label> <div class="col-sm-9"><input type="text" name="circle_name" id="circle_name" value="{tmpl_var name='circle_name'}" class="form-control" /></div></div> - <div class="form-group"> - <label class="col-sm-3 control-label">{tmpl_var name='client_ids_txt'}</label> - <div class="col-sm-9"> - {tmpl_var name='client_ids'} - </div> - </div> <div class="form-group"> <label for="description" class="col-sm-3 control-label">{tmpl_var name='description_txt'}</label> <div class="col-sm-9"><textarea class="form-control" name="description" id="description" rows='10' cols='30'>{tmpl_var name='description'}</textarea></div> @@ -25,6 +19,13 @@ {tmpl_var name='active'} </div> </div> + <hr> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='client_ids_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='client_ids'} + </div> + </div> {tmpl_var name='required_fields_txt'} @@ -33,4 +34,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="client/client_circle_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="client/client_circle_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> \ No newline at end of file + </div></div> diff --git a/interface/web/dashboard/lib/lang/cn.lng b/interface/web/dashboard/lib/lang/cn.lng new file mode 100644 index 0000000000..9a1b4e3bf9 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn.lng @@ -0,0 +1,4 @@ +<?php +$wb['welcome_user_txt'] = '欢迎 %s'; +$wb['available_modules_txt'] = 'å¯ç”¨æ¨¡å—'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_customer.lng b/interface/web/dashboard/lib/lang/cn_dashlet_customer.lng new file mode 100644 index 0000000000..3cc1389c37 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_customer.lng @@ -0,0 +1,4 @@ +<?php +$wb['customerdata_txt'] = '我的资料'; +$wb['edit_txt'] = '编辑'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/cn_dashlet_databasequota.lng new file mode 100644 index 0000000000..b03712a821 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_databasequota.lng @@ -0,0 +1,7 @@ +<?php +$wb['databasequota_txt'] = 'æ•°æ®åº“é…é¢'; +$wb['database_txt'] = 'æ•°æ®åº“å称'; +$wb['used_txt'] = '已使用空间'; +$wb['quota_txt'] = 'é…é¢'; +$wb['no_database_accounts_txt'] = '未找到数æ®åº“。'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_donate.lng b/interface/web/dashboard/lib/lang/cn_dashlet_donate.lng new file mode 100644 index 0000000000..f12fe56696 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_donate.lng @@ -0,0 +1,7 @@ +<?php +$wb['donate_txt'] = 'ISPConfig Hosting控制é¢æ¿æ˜¯å…费软件。也许您知é“,开å‘ã€ç»´æŠ¤å’Œæ”¯æŒè¿™æ ·ä¸€ä¸ªå¤æ‚的软件项目需è¦å¤§é‡çš„时间和精力。如果您想支æŒISPConfig的进一æ¥å‘展,请考虑æèµ ã€‚ä½œä¸ºå¥–åŠ±ï¼Œæ‚¨å°†èŽ·å¾—å½“å‰ISPConfig手册的副本。'; +$wb['donate2_txt'] = 'æèµ é‡‘é¢å¯ä»¥ä¸º5欧元或更多,金é¢åœ¨ç»“账时选择。支付方å¼ä¸ºPayPal。您将收到æ¥è‡ªISPConfig UGçš„PDF收æ®ã€‚'; +$wb['hide_btn_txt'] = 'éšè—'; +$wb['donate_btn_txt'] = '支æŒISPConfig并获å–手册'; +$wb['more_btn_txt'] = '更多'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/cn_dashlet_invoice_client_settings.lng new file mode 100644 index 0000000000..338c8910d2 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_invoice_client_settings.lng @@ -0,0 +1,4 @@ +<?php +$wb['invoice_client_settings_txt'] = 'å‘票客户端设置'; +$wb['edit_txt'] = '编辑'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/cn_dashlet_invoices.lng new file mode 100644 index 0000000000..50bbf57294 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_invoices.lng @@ -0,0 +1,18 @@ +<?php +$wb['invoices_txt'] = 'å‘票'; +$wb['invoice_no_txt'] = 'å‘票å·ç '; +$wb['amount_txt'] = '金é¢'; +$wb['date_txt'] = '日期'; +$wb['invoice_status_txt'] = '状æ€'; +$wb['no_invoices_txt'] = 'æ— å¯ç”¨å‘票。'; +$wb['paid_txt'] = '已付款'; +$wb['unpaid_txt'] = '未付款'; +$wb['paynow_txt'] = 'ç«‹å³ä»˜æ¬¾'; +$wb['proforma_txt'] = 'å½¢å¼å‘票'; +$wb['refunded_txt'] = '已退款'; +$wb['not_refunded_txt'] = '未退款'; +$wb['invoice_type_invoice_txt'] = 'å‘票'; +$wb['invoice_type_proforma_txt'] = 'å½¢å¼å‘票'; +$wb['invoice_type_refund_txt'] = '退款'; +$wb['invoice_type_reminder_txt'] = '催款'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_limits.lng b/interface/web/dashboard/lib/lang/cn_dashlet_limits.lng new file mode 100644 index 0000000000..29adaf9ad8 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_limits.lng @@ -0,0 +1,34 @@ +<?php +$wb['limits_txt'] = '账户é™åˆ¶'; +$wb['of_txt'] = 'çš„'; +$wb['limit_maildomain_txt'] = '电å邮件域åæ•°é‡'; +$wb['limit_mailmailinglist_txt'] = '邮件列表数é‡'; +$wb['limit_mailbox_txt'] = '邮箱数é‡'; +$wb['limit_mailalias_txt'] = '邮件别åæ•°é‡'; +$wb['limit_mailaliasdomain_txt'] = '电å邮件域别åæ•°é‡'; +$wb['limit_mailforward_txt'] = '电å邮件转å‘器数é‡'; +$wb['limit_mailcatchall_txt'] = '邮件全接收账户数é‡'; +$wb['limit_mailrouting_txt'] = '电å邮件路由数é‡'; +$wb['limit_mailfilter_txt'] = '电å邮件过滤器数é‡'; +$wb['limit_fetchmail_txt'] = 'Fetchmail 账户数é‡'; +$wb['limit_spamfilter_wblist_txt'] = '垃圾邮件过滤器白åå• / 黑åå•æ•°é‡'; +$wb['limit_spamfilter_user_txt'] = '垃圾邮件过滤器用户数é‡'; +$wb['limit_spamfilter_policy_txt'] = '垃圾邮件过滤器ç–略数é‡'; +$wb['limit_cron_txt'] = '计划任务数é‡'; +$wb['limit_web_domain_txt'] = 'Web 域åæ•°é‡'; +$wb['limit_web_aliasdomain_txt'] = 'Web 域å别åæ•°é‡'; +$wb['limit_web_subdomain_txt'] = 'Web å域åæ•°é‡'; +$wb['limit_ftp_user_txt'] = 'FTP 用户数é‡'; +$wb['limit_dns_zone_txt'] = 'DNS 区域数é‡'; +$wb['limit_dns_slave_zone_txt'] = 'DNS 从区域数é‡'; +$wb['limit_dns_record_txt'] = 'DNS 记录数é‡'; +$wb['limit_shell_user_txt'] = 'Shell 用户数é‡'; +$wb['limit_webdav_user_txt'] = 'Webdav 用户数é‡'; +$wb['limit_client_txt'] = '客户数é‡'; +$wb['limit_database_txt'] = 'æ•°æ®åº“æ•°é‡'; +$wb['limit_domain_txt'] = '域åæ•°é‡'; +$wb['limit_mailquota_txt'] = '分é…的邮箱é…é¢'; +$wb['limit_web_quota_txt'] = '分é…çš„ Web é…é¢'; +$wb['limit_database_quota_txt'] = '分é…çš„æ•°æ®åº“é…é¢'; +$wb['limit_mail_wblist_txt'] = '电å邮件白åå• / 黑åå•æ¡ç›®æ•°é‡'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/cn_dashlet_mailquota.lng new file mode 100644 index 0000000000..4e7361a9f9 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_mailquota.lng @@ -0,0 +1,8 @@ +<?php +$wb['mailquota_txt'] = '邮箱é…é¢'; +$wb['email_txt'] = '电å邮件地å€'; +$wb['name_txt'] = 'å称'; +$wb['used_txt'] = '已使用空间'; +$wb['quota_txt'] = 'é…é¢'; +$wb['no_email_accounts_txt'] = '未找到电å邮件å¸æˆ·ã€‚'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_modules.lng b/interface/web/dashboard/lib/lang/cn_dashlet_modules.lng new file mode 100644 index 0000000000..0077b02676 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_modules.lng @@ -0,0 +1,4 @@ +<?php +$wb['available_modules_txt'] = 'å¯ç”¨æ¨¡å—'; +$wb['go_to_txt'] = 'å‰å¾€'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_products.lng b/interface/web/dashboard/lib/lang/cn_dashlet_products.lng new file mode 100644 index 0000000000..f9c161934e --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_products.lng @@ -0,0 +1,9 @@ +<?php +$wb['products_txt'] = '我的产å“'; +$wb['name_txt'] = 'å称'; +$wb['price_txt'] = 'ä»·æ ¼'; +$wb['next_payment_date_txt'] = '下一个账å•æ—¥æœŸ'; +$wb['no_products_txt'] = '没有找到产å“。'; +$wb['edit_txt'] = '编辑'; +$wb['cancellation_date_txt'] = 'ç”±è°å–消'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_quota.lng b/interface/web/dashboard/lib/lang/cn_dashlet_quota.lng new file mode 100644 index 0000000000..123ffc314a --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_quota.lng @@ -0,0 +1,8 @@ +<?php +$wb['quota_txt'] = '网站硬盘é…é¢'; +$wb['domain_txt'] = '域å / 网站'; +$wb['used_txt'] = '已用空间'; +$wb['hard_txt'] = '硬é™åˆ¶'; +$wb['soft_txt'] = '软é™åˆ¶'; +$wb['no_sites_txt'] = '未找到网站。'; +?> diff --git a/interface/web/dashboard/lib/lang/cn_dashlet_shop.lng b/interface/web/dashboard/lib/lang/cn_dashlet_shop.lng new file mode 100644 index 0000000000..e5977b2586 --- /dev/null +++ b/interface/web/dashboard/lib/lang/cn_dashlet_shop.lng @@ -0,0 +1,8 @@ +<?php +$wb['shop_txt'] = '订å•'; +$wb['name_txt'] = 'å称'; +$wb['price_txt'] = 'ä»·æ ¼'; +$wb['setup_fee_txt'] = '安装费'; +$wb['no_products_txt'] = '未找到产å“。'; +$wb['order_txt'] = '订è´'; +?> diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php index b0c19bfff0..711e237db1 100644 --- a/interface/web/dns/dns_import.php +++ b/interface/web/dns/dns_import.php @@ -622,7 +622,11 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name' $error[] = $wb['zone_file_soa_parser']; $error[] = print_r( $soa, true ); } - if ($settings['use_domain_module'] == 'y' && ! $app->tools_sites->checkDomainModuleDomain($soa['name']) ) { + + $tmp_soa_name = trim($soa['name'], "."); + $tmp_domain_id = $app->db->queryOneRecord('SELECT domain_id FROM domain where domain = ?', $tmp_soa_name); + + if ($settings['use_domain_module'] == 'y' && ! $app->tools_sites->checkDomainModuleDomain($tmp_domain_id['domain_id']) ) { $valid_zone_file = false; $error[] = $wb['zone_not_allowed']; } diff --git a/interface/web/dns/form/dns_soa.tform.php b/interface/web/dns/form/dns_soa.tform.php index 6259cceddb..7deb109456 100644 --- a/interface/web/dns/form/dns_soa.tform.php +++ b/interface/web/dns/form/dns_soa.tform.php @@ -302,6 +302,7 @@ $form["tabs"]['dns_soa'] = array ( 'separator' => ',', 'default' => 'ECDSAP256SHA256', 'value' => array('NSEC3RSASHA1' => '7 (NSEC3RSASHA1)','ECDSAP256SHA256' => '13 (ECDSAP256SHA256)'), + 'data-check-fields' => 'dnssec_wanted', 'width' => '30', 'maxlength' => '255' ), diff --git a/interface/web/dns/lib/lang/ar_dns_slave.lng b/interface/web/dns/lib/lang/ar_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/ar_dns_slave.lng +++ b/interface/web/dns/lib/lang/ar_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/ar_dns_soa.lng b/interface/web/dns/lib/lang/ar_dns_soa.lng index 4333c3793a..ae2e022195 100644 --- a/interface/web/dns/lib/lang/ar_dns_soa.lng +++ b/interface/web/dns/lib/lang/ar_dns_soa.lng @@ -17,7 +17,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['mbox_error_empty'] = 'Email is empty.'; $wb['mbox_error_regex'] = 'Email format invalid.'; diff --git a/interface/web/dns/lib/lang/bg_dns_soa.lng b/interface/web/dns/lib/lang/bg_dns_soa.lng index c1e57edf8b..9e75200a63 100644 --- a/interface/web/dns/lib/lang/bg_dns_soa.lng +++ b/interface/web/dns/lib/lang/bg_dns_soa.lng @@ -17,7 +17,7 @@ $wb['no_zone_perm'] = 'Вие намате права да добавÑте за $wb['server_id_error_empty'] = 'ÐÑма избран Ñървър'; $wb['origin_error_empty'] = 'Зоната е празна.'; $wb['origin_error_unique'] = 'Вече има такъв Ð·Ð°Ð¿Ð¸Ñ Ð² тази зона.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS Ð·Ð°Ð¿Ð¸Ñ Ð°Ðµ в грешен формат.'; $wb['mbox_error_empty'] = 'Полето Ñ ÐµÐ¼Ð°Ð¹Ð» е празно.'; $wb['mbox_error_regex'] = 'Полето е емайл е в грешен формат.'; diff --git a/interface/web/dns/lib/lang/cn.lng b/interface/web/dns/lib/lang/cn.lng new file mode 100644 index 0000000000..ec4dc6ef2d --- /dev/null +++ b/interface/web/dns/lib/lang/cn.lng @@ -0,0 +1,23 @@ +<?php + +$wb['DNS'] = 'DNS'; +$wb['Zones'] = '区域'; +$wb['DNS A'] = 'DNS A'; +$wb['DNS ALIAS'] = 'DNS ALIAS'; +$wb['DNS CNAME'] = 'DNS CNAME'; +$wb['DNS hinfo'] = 'DNS HINFO'; +$wb['DNS mx'] = 'DNS MX'; +$wb['DNS ns'] = 'DNS NS'; +$wb['DNS ptr'] = 'DNS PTR'; +$wb['DNS RP'] = 'DNS RP'; +$wb['DNS Zone'] = 'DNS区域'; +$wb['Records'] = '记录'; +$wb['DNS SRV'] = 'DNS SRV'; +$wb['DNS TXT Record'] = 'DNS TXT记录'; +$wb['DNS TXT'] = 'DNS TXT'; +$wb['DNS Wizard'] = 'DNSå‘导'; +$wb['Add DNS Zone'] = 'æ·»åŠ DNS区域'; +$wb['Templates'] = '模æ¿'; +$wb['Secondary Zones'] = '辅助DNS区域'; +$wb['Import Zone File'] = '导入区域文件'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_a.lng b/interface/web/dns/lib/lang/cn_dns_a.lng new file mode 100644 index 0000000000..463e5e9760 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_a.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = '主机å'; +$wb['type_txt'] = '类型'; +$wb['data_txt'] = 'IP地å€'; +$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'] = 'IP地å€ä¸ºç©ºã€‚'; +$wb['ip_error_wrong'] = 'IP地å€æ ¼å¼æ— 效。'; +$wb['data_error_duplicate'] = 'é‡å¤çš„Aã€ALIAS或CNAME记录。'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_a_list.lng b/interface/web/dns/lib/lang/cn_dns_a_list.lng new file mode 100644 index 0000000000..17d90d7c40 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_a_list.lng @@ -0,0 +1,15 @@ +<?php +$wb['list_head_txt'] = 'A记录'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = 'å称'; +$wb['data_txt'] = 'æ•°æ®'; +$wb['aux_txt'] = '优先级'; +$wb['ttl_txt'] = 'TTL'; +$wb['type_txt'] = '类型'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„ DNS A 记录'; +$wb['page_txt'] = '页'; +$wb['page_of_txt'] = 'å…±'; +$wb['delete_confirmation'] = '您确定è¦åˆ 除æ¤è®°å½•å—?'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_aaaa.lng b/interface/web/dns/lib/lang/cn_dns_aaaa.lng new file mode 100644 index 0000000000..265fed59b2 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_aaaa.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = '主机å'; +$wb['type_txt'] = '类型'; +$wb['data_txt'] = 'IPv6地å€'; +$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'] = 'IPv6地å€ä¸ºç©ºã€‚'; +$wb['data_error_duplicate'] = 'é‡å¤çš„AAAA,ALIAS或CNAME记录。'; +$wb['ip_error_wrong'] = 'IPv6地å€æ ¼å¼æ— 效。'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_alias.lng b/interface/web/dns/lib/lang/cn_dns_alias.lng new file mode 100644 index 0000000000..892325cc48 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_alias.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'] = 'é‡å¤çš„Aã€AAAAã€ALIASã€CNAME或DNAME记录'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_caa.lng b/interface/web/dns/lib/lang/cn_dns_caa.lng new file mode 100644 index 0000000000..d823310e38 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_caa.lng @@ -0,0 +1,18 @@ +<?php +$wb['ca_list_txt'] = '认è¯æœºæž„'; +$wb['ca_domain_txt'] = '域å'; +$wb['ca_hostname_txt'] = 'é¢å¤–主机å'; +$wb['ca_hostname_note_txt'] = '(以逗å·åˆ†éš”的列表-留空以使用所有主机å)'; +$wb['ca_options_txt'] = 'é™„åŠ é€‰é¡¹'; +$wb['ca_options_note_txt'] = '认è¯æœºæž„è¦æ±‚的选项(以逗å·åˆ†éš”的列表)'; +$wb['ca_wildcard_txt'] = '使用通é…符 SSL'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = '生效'; +$wb['select_txt'] = '选择认è¯æœºæž„'; +$wb['no_zone_perm'] = 'æ‚¨æ— æƒå‘æ¤ DNS åŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['limit_dns_record_txt'] = '您的账户已达到 DNS 记录的最大数é‡ã€‚'; +$wb['ca_error_txt'] = '未选择认è¯æœºæž„'; +$wb['caa_exists_error'] = 'CAA 记录已å˜åœ¨'; +$wb['ca_option_error'] = 'é™„åŠ é€‰é¡¹çš„æ ¼å¼æ— 效;选项=值'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_cname.lng b/interface/web/dns/lib/lang/cn_dns_cname.lng new file mode 100644 index 0000000000..2328a23e8c --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_cname.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'] = 'é‡å¤çš„ Aã€AAAAã€ALIASã€CNAME 或 DNAME 记录。'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_dkim.lng b/interface/web/dns/lib/lang/cn_dns_dkim.lng new file mode 100644 index 0000000000..f584280d29 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_dkim.lng @@ -0,0 +1,13 @@ +<?php +$wb['public_key_txt'] = '公钥'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = '激活'; +$wb['record_exists_txt'] = 'DNS 记录已å˜åœ¨'; +$wb['dkim_disabled_txt'] = 'æ¤é‚®ä»¶åŸŸå未å¯ç”¨ DKIM'; +$wb['limit_dns_record_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°æœ€å¤§ DNS 记录数'; +$wb['no_zone_perm'] = '您没有æƒé™å‘æ¤ DNS åŒºåŸŸæ·»åŠ è®°å½•'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒'; +$wb['selector_txt'] = 'DKIM 选择器'; +$wb['data_error_empty'] = '公钥缺失'; +$wb['dkim_selector_empty_txt'] = 'DKIM 选择器为空'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_dmarc.lng b/interface/web/dns/lib/lang/cn_dns_dmarc.lng new file mode 100644 index 0000000000..074fc0d2cb --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_dmarc.lng @@ -0,0 +1,50 @@ +<?php +$wb['data_txt'] = 'DMARC 记录'; +$wb['domain_txt'] = '域å'; +$wb['dmarc_policy_txt'] = '邮件接收方ç–ç•¥'; +$wb['dmarc_policy_note_txt'] = '邮件接收方如何处ç†æœªé€šè¿‡ SPF 或 DKIM(DMARC)的邮件。'; +$wb['dmarc_policy_none_txt'] = 'æ— '; +$wb['dmarc_policy_quarantine_txt'] = '隔离'; +$wb['dmarc_policy_reject_txt'] = 'æ‹’ç»'; +$wb['dmarc_rua_txt'] = 'èšåˆæ•°æ®æŠ¥å‘Šåœ°å€'; +$wb['dmarc_rua_note_txt'] = '接收æ¥è‡ª ISPs 的关于该域å未通过 DMARC 检查的邮件的报告的电å邮件地å€ï¼ˆä»¥ç©ºæ ¼åˆ†éš”)。'; +$wb['dmarc_ruf_txt'] = 'å–è¯æ•°æ®æŠ¥å‘Šåœ°å€'; +$wb['dmarc_ruf_note_txt'] = '接收未通过 DMARC æ£€æŸ¥çš„æ ·æœ¬é‚®ä»¶çš„ç”µå邮件地å€ï¼ˆä»¥ç©ºæ ¼åˆ†éš”)。'; +$wb['dmarc_fo_txt'] = 'å–è¯æŠ¥å‘Šé€‰é¡¹'; +$wb['dmarc_fo0_txt'] = '当所有基础身份验è¯æœºåˆ¶å‡æ— æ³•ç”Ÿæˆ DMARC “通过â€ç»“果时生æˆæŠ¥å‘Šã€‚'; +$wb['dmarc_fo1_txt'] = '当任何机制失败时生æˆæŠ¥å‘Šã€‚'; +$wb['dmarc_fod_txt'] = '当 DKIM ç¾å未能验è¯æ—¶ç”ŸæˆæŠ¥å‘Šã€‚'; +$wb['dmarc_fos_txt'] = '当 SPF 失败时生æˆæŠ¥å‘Šã€‚'; +$wb['dmarc_adkim_txt'] = 'DKIM æ ‡è¯†ç¬¦å¯¹é½'; +$wb['dmarc_adkim_note_txt'] = '“strict†è¦æ±‚ DKIM 域与电å邮件的å‘件人完全匹é…'; +$wb['dmarc_adkim_r_txt'] = '放æ¾'; +$wb['dmarc_adkim_s_txt'] = 'ä¸¥æ ¼'; +$wb['dmarc_aspf_txt'] = 'SPF æ ‡è¯†ç¬¦å¯¹é½'; +$wb['dmarc_aspf_note_txt'] = '“strict†è¦æ±‚ SPF 域与电å邮件的å‘件人完全匹é…'; +$wb['dmarc_aspf_r_txt'] = '放æ¾'; +$wb['dmarc_aspf_s_txt'] = 'ä¸¥æ ¼'; +$wb['dmarc_rf_txt'] = 'æŠ¥å‘Šæ ¼å¼'; +$wb['dmarc_rf_afrf_txt'] = '身份验è¯å¤±è´¥æŠ¥å‘Šæ ¼å¼'; +$wb['dmarc_rf_iodef_txt'] = '事件对象æ述交æ¢æ ¼å¼'; +$wb['dmarc_pct_txt'] = 'ç–略适用于的百分比'; +$wb['dmarc_pct_note_txt'] = '%(默认为 100)。è¦æ±‚ ISPs 检查该域å邮件的百分比。'; +$wb['dmarc_ri_txt'] = '报告间隔'; +$wb['dmarc_ri_note_txt'] = '秒数(默认为86400秒),生æˆèšåˆæŠ¥å‘Šçš„时间(86400代表1天)。'; +$wb['dmarc_sp_txt'] = 'å域ç–略(默认与域相åŒï¼‰ã€‚'; +$wb['dmarc_sp_same_txt'] = '与域相åŒ'; +$wb['dmarc_sp_none_txt'] = 'æ— '; +$wb['dmarc_sp_quarantine_txt'] = '隔离'; +$wb['dmarc_sp_reject_txt'] = 'æ‹’ç»'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = '激活'; +$wb['dmarc_policy_error_txt'] = '仅在使用DKIMç¾å电å邮件的情况下å…è®¸â€œæ— â€ç–略。'; +$wb['dmarc_no_dkim_txt'] = '没有活动的DKIM记录。'; +$wb['dmarc_no_spf_txt'] = '没有活动的SPF记录。'; +$wb['dmarc_more_spf_txt'] = 'å˜åœ¨å¤šä¸ªæ´»åŠ¨çš„SPF记录'; +$wb['dmarc_invalid_email_txt'] = 'æ— æ•ˆçš„ç”µå邮件'; +$wb['dmarc_empty_txt'] = 'DMARC记录为空-至少指定一个选项'; +$wb['record_exists_txt'] = 'DNS记录已ç»å˜åœ¨'; +$wb['limit_dns_record_txt'] = '您的å¸æˆ·æœ€å¤šå¯ä»¥æ‹¥æœ‰çš„DNS记录数已达到上é™ã€‚'; +$wb['no_zone_perm'] = '您没有æƒé™å‘æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_dname.lng b/interface/web/dns/lib/lang/cn_dns_dname.lng new file mode 100644 index 0000000000..a28d9d1e32 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_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'] = 'é‡å¤çš„CNAME或DNAME记录'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_ds.lng b/interface/web/dns/lib/lang/cn_dns_ds.lng new file mode 100644 index 0000000000..92f2a8da88 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_ds.lng @@ -0,0 +1,18 @@ +<?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['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +$wb['invalid_type_ds'] = 'DS è®°å½•æ ¼å¼é”™è¯¯ã€‚'; + +?> diff --git a/interface/web/dns/lib/lang/cn_dns_hinfo.lng b/interface/web/dns/lib/lang/cn_dns_hinfo.lng new file mode 100644 index 0000000000..476c0c1ab8 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_hinfo.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'] = '您没有æƒé™åœ¨æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['name_error_empty'] = '主机å为空。'; +$wb['name_error_regex'] = '主机åæ ¼å¼é”™è¯¯ã€‚'; +$wb['data_error_empty'] = '主机信æ¯ä¸ºç©ºã€‚'; +$wb['data_error_regex'] = '主机信æ¯æ ¼å¼æ— 效。'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_import.lng b/interface/web/dns/lib/lang/cn_dns_import.lng new file mode 100644 index 0000000000..22e24db0a4 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_import.lng @@ -0,0 +1,25 @@ +<?php +$wb['zone_file_import_txt'] = '导入区域文件'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_txt'] = '客户'; +$wb['btn_save_txt'] = '导入区域文件'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['domain_txt'] = '域å'; +$wb['zone_file_successfully_imported_txt'] = '区域文件已æˆåŠŸå¯¼å…¥ã€‚'; +$wb['error_no_valid_zone_file_txt'] = 'æ¤åŒºåŸŸæ–‡ä»¶æ— 效。'; +$wb['zonefile_to_import_txt'] = '区域文件'; +$wb['domain_field_desc_txt'] = '如果为空,域å将从SOA记录ä¸èŽ·å–。'; +$wb['title'] = '导入区域文件'; +$wb['no_file_uploaded_error'] = 'æœªä¸Šä¼ åŒºåŸŸæ–‡ä»¶ã€‚'; +$wb['error_no_server_id'] = '未æä¾›æœåŠ¡å™¨ã€‚'; +$wb['error_not_allowed_server_id'] = '所选æœåŠ¡å™¨ä¸å…许æ¤å¸æˆ·ä½¿ç”¨ã€‚'; +$wb['zone_already_exists'] = '该区域已å˜åœ¨ï¼Œè¯·å…ˆåˆ 除或é‡å‘½å。'; +$wb['zone_not_allowed'] = 'æ¤åŒºåŸŸä¸å…许æ¤å¸æˆ·ä½¿ç”¨ã€‚'; +$wb['zone_file_missing_soa'] = '区域文件必须包å«SOA记录。'; +$wb['zone_file_multiple_soa'] = '区域文件ä¸èƒ½åŒ…å«å¤šä¸ªSOA记录。'; +$wb['zone_file_soa_parser'] = 'æ¤åŒºåŸŸæ–‡ä»¶ä¸çš„SOAè®°å½•æ— æ³•å¤„ç†ã€‚ç¡®ä¿SERIALã€REFRESHã€RETRYã€EXPIREå’ŒMINIMUM都与其他数æ®åˆ†åˆ«åœ¨ä¸€è¡Œä¸Šã€‚'; +$wb['ignore_record_not_class_in'] = '忽略DNS记录,ä¸æ˜¯IN类。'; +$wb['ignore_record_unknown_type'] = '忽略DNS记录,未知类型。'; +$wb['ignore_record_invalid_owner'] = '忽略DNSè®°å½•ï¼Œæ— æ³•éªŒè¯æ‰€æœ‰è€…å称。'; +$wb['zone_file_import_fail'] = '区域文件未导入。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_loc.lng b/interface/web/dns/lib/lang/cn_dns_loc.lng new file mode 100644 index 0000000000..2321e08771 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_loc.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'] = '您没有æƒé™å‘æ¤ DNS åŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['name_error_empty'] = '主机å为空。'; +$wb['name_error_regex'] = '主机åæ ¼å¼é”™è¯¯ã€‚'; +$wb['data_error_empty'] = '主机信æ¯ä¸ºç©ºã€‚'; +$wb['data_error_regex'] = '主机信æ¯æ ¼å¼æ— 效。'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_mx.lng b/interface/web/dns/lib/lang/cn_dns_mx.lng new file mode 100644 index 0000000000..b22775cb59 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_mx.lng @@ -0,0 +1,18 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = '主机å'; +$wb['type_txt'] = '类型'; +$wb['data_txt'] = '邮件æœåŠ¡å™¨ä¸»æœºå'; +$wb['aux_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['duplicate_mx_record_txt'] = 'é‡å¤çš„MX记录。'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_naptr.lng b/interface/web/dns/lib/lang/cn_dns_naptr.lng new file mode 100644 index 0000000000..91316593cd --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_naptr.lng @@ -0,0 +1,21 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = '主机å'; +$wb['order_txt'] = '排åº'; +$wb['pref_txt'] = '优先级'; +$wb['flags_txt'] = 'æ ‡è®°'; +$wb['service_txt'] = 'æœåŠ¡'; +$wb['regexp_txt'] = 'æ£åˆ™è¡¨è¾¾å¼'; +$wb['replacement_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'] = 'NAPTR 记录为空。'; +$wb['naptr_error_regex'] = 'æ— æ•ˆçš„ NAPTR 记录。NAPTR 记录必须包括排åºï¼Œä¼˜å…ˆçº§ä»¥åŠæ£åˆ™è¡¨è¾¾å¼æˆ–替æ¢ã€‚'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +$wb['record_parse_error'] = 'æ— æ³•è§£æžæ•°æ®åº“ä¸æ‰¾åˆ°çš„记录。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_ns.lng b/interface/web/dns/lib/lang/cn_dns_ns.lng new file mode 100644 index 0000000000..a632dbc500 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_ns.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'] = '您没有æƒé™å‘æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['name_error_empty'] = '区域为空。'; +$wb['name_error_regex'] = 'åŒºåŸŸæ ¼å¼é”™è¯¯ã€‚'; +$wb['data_error_empty'] = '域åæœåŠ¡å™¨ä¸ºç©ºã€‚'; +$wb['data_error_regex'] = '域åæœåŠ¡å™¨æ ¼å¼æ— 效。'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_ptr.lng b/interface/web/dns/lib/lang/cn_dns_ptr.lng new file mode 100644 index 0000000000..70de8c265a --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_ptr.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'] = '您没有æƒé™å‘æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['name_error_empty'] = 'å称为空。'; +$wb['name_error_regex'] = 'åç§°æ ¼å¼é”™è¯¯ã€‚'; +$wb['data_error_empty'] = '规范主机å为空'; +$wb['data_error_regex'] = '规范主机åæ ¼å¼æ— 效'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_rp.lng b/interface/web/dns/lib/lang/cn_dns_rp.lng new file mode 100644 index 0000000000..14c7ac878c --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_rp.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'] = '您没有æƒé™å‘æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['name_error_empty'] = '主机å为空。'; +$wb['name_error_regex'] = '主机åæ ¼å¼ä¸æ£ç¡®ã€‚'; +$wb['data_error_empty'] = '负责人å—段为空。'; +$wb['data_error_regex'] = '负责人å—æ®µæ ¼å¼æ— 效。'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_slave.lng b/interface/web/dns/lib/lang/cn_dns_slave.lng new file mode 100644 index 0000000000..1a511d7138 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_slave.lng @@ -0,0 +1,17 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['origin_txt'] = 'DNS区域'; +$wb['secondary_zone_txt'] = '从属DNS区域'; +$wb['ns_txt'] = 'NS(IP地å€ï¼‰'; +$wb['active_txt'] = '激活'; +$wb['limit_dns_slave_zone_txt'] = '您的å¸æˆ·çš„从属DNS区域数é‡å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['client_txt'] = '客户'; +$wb['xfer_txt'] = 'å…许区域转移到这些IP(以逗å·åˆ†éš”的列表)<br />'; +$wb['server_id_error_empty'] = '未选择æœåŠ¡å™¨'; +$wb['origin_error_empty'] = '区域为空。'; +$wb['origin_error_unique'] = 'æ¤åŒºåŸŸå·²å˜åœ¨è®°å½•ã€‚'; +$wb['origin_error_regex'] = 'åŒºåŸŸæ ¼å¼æ— 效。'; +$wb['ns_error_regex'] = 'NSæ ¼å¼æ— 效。'; +$wb['eg_domain_tld'] = '例如:domain.tld。'; +$wb['ipv4_form_txt'] = '用逗å·åˆ†éš”多个IP。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cn_dns_slave_admin_list.lng new file mode 100644 index 0000000000..fe03211936 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'æ¬¡è¦ DNS 区域'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['origin_txt'] = '区域'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„æ¬¡è¦ DNS 区域'; +$wb['eg_domain_tld'] = '例如:domain.tld。'; +$wb['sys_groupid_txt'] = '客户'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_slave_list.lng b/interface/web/dns/lib/lang/cn_dns_slave_list.lng new file mode 100644 index 0000000000..24c365e579 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_slave_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = 'æ¬¡è¦ DNS 区域'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['origin_txt'] = '区域'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„æ¬¡è¦ DNS 区域'; +$wb['eg_domain_tld'] = '例如:domain.tld。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_soa.lng b/interface/web/dns/lib/lang/cn_dns_soa.lng new file mode 100644 index 0000000000..86a7f78b47 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_soa.lng @@ -0,0 +1,47 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['origin_txt'] = '区域 (SOA)'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = '电å邮件'; +$wb['serial_txt'] = 'åºåˆ—å·'; +$wb['refresh_txt'] = '刷新'; +$wb['retry_txt'] = 'é‡è¯•'; +$wb['expire_txt'] = '过期'; +$wb['minimum_txt'] = '最å°å€¼ (è´Ÿç¼“å˜ TTL)'; +$wb['ttl_txt'] = 'TTL'; +$wb['xfer_txt'] = 'å…è®¸åŒºåŸŸä¼ è¾“åˆ°è¿™äº› IP (逗å·åˆ†éš”的列表)'; +$wb['active_txt'] = '活动'; +$wb['dnssec_info_txt'] = 'DNSSEC DS-Data 注册信æ¯'; +$wb['dnssec_wanted_txt'] = 'ç¾ç½²åŒºåŸŸ (DNSSEC)'; +$wb['dnssec_wanted_info'] = 'ç¦ç”¨ DNSSEC åŽï¼Œå¦‚果之å‰å¯ç”¨è¿‡ DNSSEC 并且已ç»ç”Ÿæˆäº†å¯†é’¥ï¼Œåˆ™ä¸ä¼šåˆ 除密钥,但是该区域ä¸å†ä»¥ç¾åæ ¼å¼æ供。如果您使用 PowerDNSï¼Œåˆ™å°†åˆ é™¤å¯†é’¥ï¼'; +$wb['limit_dns_zone_txt'] = '已达到您的å¸æˆ·çš„ DNS 区域的最大数é‡ã€‚'; +$wb['client_txt'] = '客户'; +$wb['no_zone_perm'] = 'æ‚¨æ— æƒå‘æ¤ DNS åŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['server_id_error_empty'] = '未选择æœåŠ¡å™¨'; +$wb['origin_error_empty'] = '区域为空。'; +$wb['origin_error_unique'] = 'æ¤åŒºåŸŸå·²ç»å˜åœ¨è®°å½•ã€‚'; +$wb['origin_error_regex'] = 'åŒºåŸŸæ ¼å¼æ— 效。'; +$wb['ns_error_regex'] = 'NS æ ¼å¼æ— 效。'; +$wb['mbox_error_empty'] = '邮箱为空。'; +$wb['mbox_error_regex'] = 'é‚®ç®±æ ¼å¼æ— 效。'; +$wb['also_notify_txt'] = 'åŒæ—¶é€šçŸ¥'; +$wb['also_notify_error_regex'] = 'åŒæ—¶é€šçŸ¥ï¼šè¯·ä½¿ç”¨æœ‰æ•ˆçš„ IP 范围ã€ä¸€ä¸ªæˆ–多个以逗å·åˆ†éš”çš„ IP 地å€ï¼Œæˆ–使用关键å—:any。'; +$wb['xfer_error_regex'] = 'åŒºåŸŸä¼ è¾“ï¼šè¯·ä½¿ç”¨æœ‰æ•ˆçš„ IP 范围ã€ä¸€ä¸ªæˆ–多个以逗å·åˆ†éš”çš„ IP 地å€ï¼Œæˆ–使用关键å—:any。'; +$wb['update_acl_txt'] = 'æ›´æ–° ACL'; +$wb['seconds_txt'] = '秒'; +$wb['eg_domain_tld'] = '例如 domain.tld'; +$wb['eg_ns1_domain_tld'] = '例如 ns1.domain.tld'; +$wb['eg_webmaster_domain_tld'] = '例如 webmaster@domain.tld'; +$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = '域åæ— æ³•æ›´æ”¹ã€‚å¦‚æžœæ‚¨æƒ³æ›´æ”¹åŸŸå,请咨询管ç†å‘˜ã€‚'; +$wb['refresh_range_error'] = '最å°åˆ·æ–°æ—¶é—´ä¸º 60 秒。'; +$wb['retry_range_error'] = '最å°é‡è¯•æ—¶é—´ä¸º 60 秒。'; +$wb['expire_range_error'] = '最å°è¿‡æœŸæ—¶é—´ä¸º 60 秒。'; +$wb['minimum_range_error'] = '最å°æœ€çŸæ—¶é—´ä¸º 60 秒。'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +$wb['error_not_allowed_server_id'] = '所选æœåŠ¡å™¨ä¸å…许æ¤å¸æˆ·ã€‚'; +$wb['soa_cannot_be_changed_txt'] = '区域 (SOA) æ— æ³•æ›´æ”¹ã€‚è¯·è”系管ç†å‘˜æ›´æ”¹åŒºåŸŸã€‚'; +$wb['configuration_error_txt'] = 'é…置错误'; +$wb['dnssec_algo_txt'] = 'DNSSEC 算法'; +$wb['rendered_zone_txt'] = 'ç»‘å®šåŒºåŸŸæ ¼å¼ï¼Œç”¨äºŽå‚考和导出。'; +$wb['rendered_zone_unavailable_txt'] = '抱æ‰ï¼Œæš‚时没有å¯ç”¨æ•°æ®ã€‚'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cn_dns_soa_admin_list.lng new file mode 100644 index 0000000000..35ee4306d4 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_soa_admin_list.lng @@ -0,0 +1,12 @@ +<?php +$wb['list_head_txt'] = 'DNS区域'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['origin_txt'] = '区域'; +$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/cn_dns_soa_list.lng b/interface/web/dns/lib/lang/cn_dns_soa_list.lng new file mode 100644 index 0000000000..a6c0876a45 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_soa_list.lng @@ -0,0 +1,11 @@ +<?php +$wb['list_head_txt'] = 'DNS区域'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['origin_txt'] = '区域'; +$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'] = '导入区域文件'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_spf.lng b/interface/web/dns/lib/lang/cn_dns_spf.lng new file mode 100644 index 0000000000..9c09e4881e --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_spf.lng @@ -0,0 +1,30 @@ +<?php +$wb['data_txt'] = 'SPF记录'; +$wb['name_txt'] = '主机å'; +$wb['spf_mechanism_txt'] = 'SPF机制'; +$wb['spf_mechanism_pass_txt'] = '通过 - å…许其他å‘件人å‘é€é‚®ä»¶'; +$wb['spf_mechanism_fail_txt'] = '失败 - æ‹’ç»å…¶ä»–å‘件人å‘é€é‚®ä»¶'; +$wb['spf_mechanism_softfail_txt'] = 'SoftFail - å…许其他å‘件人å‘é€é‚®ä»¶ä½†æ ‡è®°é‚®ä»¶'; +$wb['spf_mechanism_neutral_txt'] = 'ä¸æ€§ - ä¸åšä»»ä½•äº‹æƒ…'; +$wb['spf_mx_txt'] = 'å…许列为MXçš„æœåŠ¡å™¨å‘é€æ¤åŸŸçš„电å邮件'; +$wb['spf_a_txt'] = 'å…许æ¤åŸŸçš„当å‰IP地å€å‘é€ç”µå邮件'; +$wb['spf_ip_txt'] = '以CIDRæ ¼å¼æ供或ä¸ç»§æ¤åŸŸé‚®ä»¶çš„其他IP地å€'; +$wb['spf_ip_note_txt'] = 'ï¼ˆç”¨ç©ºæ ¼åˆ†éš”IP)'; +$wb['spf_invalid_ip_txt'] = 'æ— æ•ˆçš„IP地å€'; +$wb['spf_hostname_txt'] = 'å¯èƒ½ä¼ 递或ä¸ç»§æ¤åŸŸé‚®ä»¶çš„任何其他æœåŠ¡å™¨ä¸»æœºå'; +$wb['spf_hostname_note_txt'] = 'ï¼ˆç”¨ç©ºæ ¼åˆ†éš”ä¸»æœºå)'; +$wb['spf_invalid_hostname_txt'] = 'æ— æ•ˆçš„ä¸»æœºå'; +$wb['spf_domain_txt'] = 'å¯èƒ½ä¼ 递或ä¸ç»§æ¤åŸŸé‚®ä»¶çš„任何域å'; +$wb['spf_domain_note_txt'] = 'ï¼ˆç”¨ç©ºæ ¼åˆ†éš”åŸŸå)'; +$wb['spf_invalid_domain_txt'] = 'æ— æ•ˆçš„åŸŸå'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = '激活'; +$wb['record_exists_txt'] = 'DNS记录已å˜åœ¨'; +$wb['spf_record_exists_txt'] = '主机å"{hostname}"å·²å˜åœ¨SPF记录。您è¦<a href="#" data-load-content="dns/dns_spf_edit.php?id={existing_record_id}">编辑现有记录</a>å—?'; +$wb['spf_record_exists_multiple_txt'] = '主机å"{hostname}"å˜åœ¨å¤šä¸ªSPF记录。这会导致收件人拒ç»æ‚¨çš„邮件ï¼åˆ 除或åˆå¹¶é‡å¤çš„现有记录,然åŽé‡è¯•ã€‚'; +$wb['limit_dns_record_txt'] = '您的å¸æˆ·è¾¾åˆ°äº†DNS记录的最大数é‡ã€‚'; +$wb['no_zone_perm'] = 'æ‚¨æ— æƒå‘æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +$wb['name_error_regex'] = '主机åæ ¼å¼é”™è¯¯ã€‚'; +$wb['btn_edit_as_txt_record_txt'] = '作为TXT记录编辑'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_srv.lng b/interface/web/dns/lib/lang/cn_dns_srv.lng new file mode 100644 index 0000000000..82a585890f --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_srv.lng @@ -0,0 +1,20 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = '主机å'; +$wb['type_txt'] = '类型'; +$wb['target_txt'] = 'ç›®æ ‡'; +$wb['weight_txt'] = 'æƒé‡'; +$wb['port_txt'] = '端å£'; +$wb['ttl_txt'] = 'TTL'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['aux_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['srv_error_regex'] = 'æ— æ•ˆçš„æœåŠ¡å™¨è®°å½•æ ¼å¼ã€‚æœåŠ¡å™¨è®°å½•å¿…须包å«ç”±ç©ºæ ¼åˆ†éš”çš„ 3 个文本å—符串。'; +$wb['ttl_range_error'] = 'æœ€å° TTL 时间为 60 秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_sshfp.lng b/interface/web/dns/lib/lang/cn_dns_sshfp.lng new file mode 100644 index 0000000000..e056f69265 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_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'] = 'æ‚¨æ— æƒå‘æ¤DNSåŒºåŸŸæ·»åŠ è®°å½•ã€‚'; +$wb['name_error_empty'] = '主机å为空。'; +$wb['name_error_regex'] = '主机åæ ¼å¼ä¸æ£ç¡®ã€‚'; +$wb['data_error_empty'] = '文本为空。'; +$wb['data_error_regex'] = 'æ–‡æœ¬æ ¼å¼ä¸æ£ç¡®ã€‚'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_template.lng b/interface/web/dns/lib/lang/cn_dns_template.lng new file mode 100644 index 0000000000..f0993a4cde --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_template.lng @@ -0,0 +1,7 @@ +<?php +$wb['name_txt'] = 'å称'; +$wb['fields_txt'] = 'å—段'; +$wb['template_txt'] = '模æ¿'; +$wb['visible_txt'] = 'å¯è§'; +$wb['placeholder_txt'] = 'å ä½ç¬¦'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_template_list.lng b/interface/web/dns/lib/lang/cn_dns_template_list.lng new file mode 100644 index 0000000000..e0d37c8dc9 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_template_list.lng @@ -0,0 +1,6 @@ +<?php +$wb['list_head_txt'] = 'DNS-Wizard 模æ¿'; +$wb['visible_txt'] = 'å¯è§'; +$wb['name_txt'] = 'å称'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°è®°å½•'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_tlsa.lng b/interface/web/dns/lib/lang/cn_dns_tlsa.lng new file mode 100644 index 0000000000..3544350e56 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_tlsa.lng @@ -0,0 +1,16 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['zone_txt'] = '区域'; +$wb['name_txt'] = 'æœåŠ¡æ述符'; +$wb['type_txt'] = '类型'; +$wb['data_txt'] = 'TLSAæ•°æ®'; +$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'] = '主机åæ ¼å¼é”™è¯¯ã€‚æ£ç¡®æ ¼å¼ï¼š_<端å£>._(tcp|udp).<主机å>'; +$wb['data_error_empty'] = 'TLSAæ•°æ®ä¸ºç©ºã€‚'; +$wb['data_error_regex'] = 'TLSAæ•°æ®æ ¼å¼ä¸æ£ç¡®ã€‚æ£ç¡®æ ¼å¼ï¼šn n n HASH'; +$wb['ttl_range_error'] = '最å°TTL时间为60秒。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_txt.lng b/interface/web/dns/lib/lang/cn_dns_txt.lng new file mode 100644 index 0000000000..33fda2069c --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_txt.lng @@ -0,0 +1,19 @@ +<?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['ttl_range_error'] = '最å°TTL时间为60秒。'; +$wb['invalid_type_dkim'] = 'ä¸å…许使用DKIM。请使用DKIM按钮。'; +$wb['invalid_type_dmarc'] = 'ä¸å…许使用DMARC。请使用DMARC按钮。'; +$wb['invalid_type_spf'] = 'ä¸å…许使用SPF。请使用SPF按钮。'; +?> diff --git a/interface/web/dns/lib/lang/cn_dns_wizard.lng b/interface/web/dns/lib/lang/cn_dns_wizard.lng new file mode 100644 index 0000000000..e14da5c7a9 --- /dev/null +++ b/interface/web/dns/lib/lang/cn_dns_wizard.lng @@ -0,0 +1,45 @@ +<?php +$wb['list_head_txt'] = 'DNS区域å‘导'; +$wb['list_desc_txt'] = '通过å‘导创建DNS区域'; +$wb['dns_zone_txt'] = 'DNS区域'; +$wb['template_id_txt'] = '模æ¿'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_txt'] = '客户'; +$wb['btn_save_txt'] = '创建新的DNS区域'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['domain_txt'] = '域å'; +$wb['email_txt'] = '邮箱'; +$wb['dkim_txt'] = 'DKIM'; +$wb['dnssec_txt'] = 'ç¾å区域(DNSSEC)'; +$wb['ns1_txt'] = 'NS1'; +$wb['ns2_txt'] = 'NS2'; +$wb['ip_txt'] = 'IP地å€'; +$wb['ipv6_txt'] = 'IPv6地å€'; +$wb['error_origin_empty'] = '原点为空。'; +$wb['error_ns_empty'] = 'NS为空。'; +$wb['error_mbox_empty'] = '邮箱为空。'; +$wb['error_refresh_empty'] = '刷新为空。'; +$wb['error_retry_empty'] = 'é‡è¯•ä¸ºç©ºã€‚'; +$wb['error_expire_empty'] = '过期为空。'; +$wb['error_minimum_empty'] = '最å°å€¼ä¸ºç©ºã€‚'; +$wb['error_ttl_empty'] = 'TTL为空。'; +$wb['error_domain_empty'] = '域å为空'; +$wb['error_ip_empty'] = 'IP为空。'; +$wb['error_ipv6_empty'] = 'IPv6为空。'; +$wb['error_ns1_empty'] = 'NS1为空。'; +$wb['error_ns2_empty'] = 'NS2为空。'; +$wb['error_email_empty'] = '邮箱为空。'; +$wb['error_domain_regex'] = '域å包å«æ— 效å—符。'; +$wb['error_ns1_regex'] = 'NS1包å«æ— 效å—符。'; +$wb['error_ns2_regex'] = 'NS2包å«æ— 效å—符。'; +$wb['error_email_regex'] = '电å邮件ä¸åŒ…å«æœ‰æ•ˆçš„电å邮件地å€ã€‚'; +$wb['globalsearch_resultslimit_of_txt'] = 'çš„'; +$wb['globalsearch_resultslimit_results_txt'] = '结果'; +$wb['globalsearch_noresults_text_txt'] = '没有结果。'; +$wb['globalsearch_noresults_limit_txt'] = '0个结果'; +$wb['globalsearch_searchfield_watermark_txt'] = 'æœç´¢'; +$wb['globalsearch_suggestions_text_txt'] = '建议'; +$wb['error_no_server_id'] = '未æä¾›æœåŠ¡å™¨ã€‚'; +$wb['error_not_allowed_server_id'] = '所选æœåŠ¡å™¨ä¸å…许æ¤å¸æˆ·ä½¿ç”¨ã€‚'; +$wb['limit_dns_zone_txt'] = '已达到您å¸æˆ·çš„DNS区域最大数é‡ã€‚'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_slave.lng b/interface/web/dns/lib/lang/en_dns_slave.lng index 4de10b2769..3cc0aec72c 100644 --- a/interface/web/dns/lib/lang/en_dns_slave.lng +++ b/interface/web/dns/lib/lang/en_dns_slave.lng @@ -10,7 +10,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng index a5f1adfae5..95a007fcd6 100644 --- a/interface/web/dns/lib/lang/en_dns_soa.lng +++ b/interface/web/dns/lib/lang/en_dns_soa.lng @@ -20,7 +20,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['mbox_error_empty'] = 'Email is empty.'; $wb['mbox_error_regex'] = 'Email format invalid.'; diff --git a/interface/web/dns/lib/lang/fi_dns_slave.lng b/interface/web/dns/lib/lang/fi_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/fi_dns_slave.lng +++ b/interface/web/dns/lib/lang/fi_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/hu_dns_slave.lng b/interface/web/dns/lib/lang/hu_dns_slave.lng index 7bc27e3a51..64174c0fc2 100644 --- a/interface/web/dns/lib/lang/hu_dns_slave.lng +++ b/interface/web/dns/lib/lang/hu_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/hu_dns_soa.lng b/interface/web/dns/lib/lang/hu_dns_soa.lng index fdabdd99c2..81c730de76 100644 --- a/interface/web/dns/lib/lang/hu_dns_soa.lng +++ b/interface/web/dns/lib/lang/hu_dns_soa.lng @@ -17,7 +17,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['mbox_error_empty'] = 'Email is empty.'; $wb['mbox_error_regex'] = 'Email format invalid.'; diff --git a/interface/web/dns/lib/lang/ja_dns_slave.lng b/interface/web/dns/lib/lang/ja_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/ja_dns_slave.lng +++ b/interface/web/dns/lib/lang/ja_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/pt_dns_slave.lng b/interface/web/dns/lib/lang/pt_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/pt_dns_slave.lng +++ b/interface/web/dns/lib/lang/pt_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/ro_dns_slave.lng b/interface/web/dns/lib/lang/ro_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/ro_dns_slave.lng +++ b/interface/web/dns/lib/lang/ro_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/se_dns_slave.lng b/interface/web/dns/lib/lang/se_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/se_dns_slave.lng +++ b/interface/web/dns/lib/lang/se_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/lib/lang/sk_dns_slave.lng b/interface/web/dns/lib/lang/sk_dns_slave.lng index 416e3d6e72..9e8aaa17f9 100644 --- a/interface/web/dns/lib/lang/sk_dns_slave.lng +++ b/interface/web/dns/lib/lang/sk_dns_slave.lng @@ -9,7 +9,7 @@ $wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list $wb['server_id_error_empty'] = 'No server selected'; $wb['origin_error_empty'] = 'Zone empty.'; $wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; +$wb['origin_error_regex'] = 'Zone has an invalid format.'; $wb['ns_error_regex'] = 'NS has a invalid format.'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; diff --git a/interface/web/dns/list/dns_a.list.php b/interface/web/dns/list/dns_a.list.php index 169ec4af06..ad21dce219 100644 --- a/interface/web/dns/list/dns_a.list.php +++ b/interface/web/dns/list/dns_a.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/dns/list/dns_slave.list.php b/interface/web/dns/list/dns_slave.list.php index de0fd3a211..0483373c08 100644 --- a/interface/web/dns/list/dns_slave.list.php +++ b/interface/web/dns/list/dns_slave.list.php @@ -63,11 +63,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource'=> array ( 'type' => 'CUSTOM', 'class' => 'custom_datasource', 'function' => 'slave_dns_servers' diff --git a/interface/web/dns/list/dns_soa.list.php b/interface/web/dns/list/dns_soa.list.php index c08a3802cb..4eb1adb593 100644 --- a/interface/web/dns/list/dns_soa.list.php +++ b/interface/web/dns/list/dns_soa.list.php @@ -61,13 +61,23 @@ $liste["item"][] = array( 'field' => "active", 'width' => "", 'value' => array('Y' => $app->lng('yes_txt'), 'N' => $app->lng('no_txt'))); +$liste["item"][] = array( 'field' => "dnssec_initialized", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => '', +); + $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'CUSTOM', 'class'=> 'custom_datasource', 'function'=> 'dns_servers' diff --git a/interface/web/dns/templates/dns_soa_admin_list.htm b/interface/web/dns/templates/dns_soa_admin_list.htm index fe381eaac3..72450a3518 100644 --- a/interface/web/dns/templates/dns_soa_admin_list.htm +++ b/interface/web/dns/templates/dns_soa_admin_list.htm @@ -57,7 +57,7 @@ <tbody> <tmpl_loop name="records"> <tr> - <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records">{tmpl_var name="active"}</td> + <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records">{tmpl_var name="active"}<tmpl_if name="dnssec_initialized" op="==" value="Y"> <i class="fa fa-key" aria-hidden="true"></i></tmpl_if></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records">{tmpl_var name="sys_groupid"}</a></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='origin'}">{tmpl_var name="origin"}</a></td> diff --git a/interface/web/dns/templates/dns_soa_list.htm b/interface/web/dns/templates/dns_soa_list.htm index ec23975175..0d8af18338 100644 --- a/interface/web/dns/templates/dns_soa_list.htm +++ b/interface/web/dns/templates/dns_soa_list.htm @@ -55,7 +55,7 @@ <tbody> <tmpl_loop name="records"> <tr> - <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records">{tmpl_var name="active"}</td> + <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records">{tmpl_var name="active"}<tmpl_if name="dnssec_initialized" op="==" value="Y"> <i class="fa fa-key" aria-hidden="true"></i></tmpl_if></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='origin'}">{tmpl_var name="origin"}</a></td> <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}&next_tab=dns_records" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ns'}">{tmpl_var name="ns"}</a></td> diff --git a/interface/web/help/lib/lang/cn.lng b/interface/web/help/lib/lang/cn.lng new file mode 100644 index 0000000000..e4de48539a --- /dev/null +++ b/interface/web/help/lib/lang/cn.lng @@ -0,0 +1,15 @@ +<?php +$wb['Support Message'] = '支æŒä¿¡æ¯'; +$wb['Message'] = 'ä¿¡æ¯'; +$wb['Send message'] = 'å‘é€æ¶ˆæ¯'; +$wb['View messages'] = '查看消æ¯'; +$wb['Support'] = '支æŒ'; +$wb['About ISPConfig'] = '关于ISPConfig'; +$wb['Version'] = '版本'; +$wb['Frequently Asked Questions'] = '常è§é—®é¢˜'; +$wb['FAQ Sections'] = 'FAQ部分'; +$wb['Manage Sections'] = '管ç†éƒ¨åˆ†'; +$wb['Add a Question & Answer Pair'] = 'æ·»åŠ é—®é¢˜å’Œç”案对'; +$wb['Manage Questions'] = '管ç†é—®é¢˜'; + +?> diff --git a/interface/web/help/lib/lang/cn_faq_form.lng b/interface/web/help/lib/lang/cn_faq_form.lng new file mode 100644 index 0000000000..8b40ce148b --- /dev/null +++ b/interface/web/help/lib/lang/cn_faq_form.lng @@ -0,0 +1,6 @@ +<?php +$wb['faq_faq_txt'] = '常è§é—®é¢˜'; +$wb['faq_question_txt'] = '问题'; +$wb['faq_answer_txt'] = 'ç”案'; +$wb['faq_section_txt'] = 'ç« èŠ‚'; +?> diff --git a/interface/web/help/lib/lang/cn_faq_manage_questions_list.lng b/interface/web/help/lib/lang/cn_faq_manage_questions_list.lng new file mode 100644 index 0000000000..4250c1d314 --- /dev/null +++ b/interface/web/help/lib/lang/cn_faq_manage_questions_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['faq_question_txt'] = '问题'; +$wb['faq_section_name_txt'] = '部分'; +$wb['faq_delete_txt'] = 'åˆ é™¤'; +$wb['faq_edit_txt'] = '编辑'; +$wb['faq_sections_txt'] = '部分'; +$wb['faq_faq_questions_txt'] = '常è§é—®é¢˜'; +$wb['faq_new_question_txt'] = 'æ·»åŠ æ–°çš„é—®é¢˜å’Œç”案对'; +?> diff --git a/interface/web/help/lib/lang/cn_faq_sections_form.lng b/interface/web/help/lib/lang/cn_faq_sections_form.lng new file mode 100644 index 0000000000..0f79ab5898 --- /dev/null +++ b/interface/web/help/lib/lang/cn_faq_sections_form.lng @@ -0,0 +1,3 @@ +<?php +$wb['faq_section_name_txt'] = 'ç« èŠ‚å称'; +?> diff --git a/interface/web/help/lib/lang/cn_help_faq_list.lng b/interface/web/help/lib/lang/cn_help_faq_list.lng new file mode 100644 index 0000000000..5d779fddcb --- /dev/null +++ b/interface/web/help/lib/lang/cn_help_faq_list.lng @@ -0,0 +1,3 @@ +<?php +$wb['edit_txt'] = '编辑'; +?> diff --git a/interface/web/help/lib/lang/cn_help_faq_sections_list.lng b/interface/web/help/lib/lang/cn_help_faq_sections_list.lng new file mode 100644 index 0000000000..4d9c30efa3 --- /dev/null +++ b/interface/web/help/lib/lang/cn_help_faq_sections_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['faq_section_name_txt'] = '部分å称'; +$wb['faq_delete_txt'] = 'åˆ é™¤'; +$wb['faq_edit_txt'] = '编辑'; +$wb['faq_sections_txt'] = '部分'; +$wb['faq_faq_sections_txt'] = '常è§é—®é¢˜è§£ç”部分'; +$wb['faq_new_section_txt'] = 'æ·»åŠ æ–°çš„éƒ¨åˆ†'; +?> diff --git a/interface/web/help/lib/lang/cn_support_message.lng b/interface/web/help/lib/lang/cn_support_message.lng new file mode 100644 index 0000000000..8385513637 --- /dev/null +++ b/interface/web/help/lib/lang/cn_support_message.lng @@ -0,0 +1,16 @@ +<?php +$wb['recipient_id_txt'] = '收件人ID'; +$wb['sender_id_txt'] = 'å‘件人ID'; +$wb['subject_txt'] = '主题'; +$wb['message_txt'] = '消æ¯'; +$wb['tstamp_txt'] = '时间戳'; +$wb['reply_txt'] = '回å¤'; +$wb['date_txt'] = '日期'; +$wb['support_request_subject_txt'] = '支æŒè¯·æ±‚'; +$wb['support_request_txt'] = '您收到了一个支æŒè¯·æ±‚。请ä¸è¦å›žå¤æ¤é‚®ä»¶ï¼Œè€Œæ˜¯åœ¨ISPConfig内处ç†æ”¯æŒè¯·æ±‚。'; +$wb['answer_to_support_request_txt'] = '您收到了对您的支æŒè¯·æ±‚的回å¤ã€‚请ä¸è¦å›žå¤æ¤é‚®ä»¶ï¼Œè€Œæ˜¯åœ¨ISPConfig内处ç†æ¶ˆæ¯ã€‚'; +$wb['answer_to_support_request_sent_txt'] = '您的对支æŒè¯·æ±‚的回å¤å·²å‘é€ã€‚请ä¸è¦å›žå¤æ¤é‚®ä»¶ã€‚'; +$wb['support_request_sent_txt'] = '您的支æŒè¯·æ±‚å·²å‘é€ã€‚请ä¸è¦å›žå¤æ¤é‚®ä»¶ã€‚'; +$wb['recipient_or_sender_email_address_not_valid_txt'] = '由于收件人和/或å‘件人的电å邮件地å€æ— æ•ˆï¼Œå› æ¤æ— 法å‘é€æ¶ˆæ¯ã€‚'; +$wb['subject_is_empty'] = '主题ä¸èƒ½ä¸ºç©ºã€‚'; +?> diff --git a/interface/web/help/lib/lang/cn_support_message_list.lng b/interface/web/help/lib/lang/cn_support_message_list.lng new file mode 100644 index 0000000000..36aecdbdac --- /dev/null +++ b/interface/web/help/lib/lang/cn_support_message_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '支æŒæ¶ˆæ¯'; +$wb['sender_id_txt'] = 'å‘件人'; +$wb['subject_txt'] = '主题'; +$wb['add_new_record_txt'] = '创建新的支æŒæ¶ˆæ¯'; +$wb['date_txt'] = '日期'; +?> diff --git a/interface/web/help/list/support_message.list.php b/interface/web/help/list/support_message.list.php index efb24322e7..d92160eb35 100644 --- a/interface/web/help/list/support_message.list.php +++ b/interface/web/help/list/support_message.list.php @@ -36,7 +36,7 @@ $liste['auth'] = 'yes'; *****************************************************/ $liste['item'][] = array( 'field' => 'sender_id', - 'datatype' => 'VARCHAR', + 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'op' => '=', 'prefix' => '', diff --git a/interface/web/login/lib/lang/cn.lng b/interface/web/login/lib/lang/cn.lng new file mode 100644 index 0000000000..07e89c2ab5 --- /dev/null +++ b/interface/web/login/lib/lang/cn.lng @@ -0,0 +1,43 @@ +<?php +$wb['error_user_password_empty'] = '用户å或密ç 为空。'; +$wb['error_user_password_incorrect'] = '用户å或密ç 错误。'; +$wb['error_user_blocked'] = '用户已被阻æ¢ã€‚'; +$wb['error_user_too_many_logins'] = '登录å°è¯•è¿‡å¤šã€‚请在15分钟åŽé‡è¯•ã€‚'; +$wb['pass_reset_txt'] = '如果下é¢è¾“入的电å邮件地å€ä¸Žæ‚¨çš„客户端设置ä¸çš„电å邮件地å€åŒ¹é…,则将生æˆä¸€ä¸ªæ–°å¯†ç 并å‘é€åˆ°æ‚¨çš„电å邮件地å€ã€‚'; +$wb['pw_reset'] = '密ç å·²é‡ç½®å¹¶å‘é€åˆ°æ‚¨çš„电å邮件地å€ã€‚'; +$wb['pw_reset_act'] = '您已收到密ç é‡ç½®é“¾æŽ¥ã€‚请访问链接确认您的密ç é‡ç½®è¯·æ±‚。'; +$wb['pw_error'] = '用户å或电å邮件地å€ä¸åŒ¹é…。'; +$wb['pw_error_noinput'] = '请输入电å邮件地å€å’Œç”¨æˆ·å。'; +$wb['pw_reset_error_smtp_connection'] = 'å°è¯•å‘é€æœ‰å…³å¯†ç é‡ç½®è¯·æ±‚的电å邮件时å‘生连接问题。'; +$wb['pw_reset_mail_msg'] = '您的ISPConfig 3控制é¢æ¿å¸æˆ·å¯†ç å·²é‡ç½®ã€‚新密ç 为:'; +$wb['pw_reset_mail_title'] = 'ISPConfig 3控制é¢æ¿å¯†ç å·²é‡ç½®'; +$wb['pw_reset_act_mail_title'] = '确认ISPConfig 3控制é¢æ¿å¯†ç é‡ç½®'; +$wb['pw_reset_act_mail_msg'] = '请通过访问以下激活链接确认您è¦é‡ç½®ISPConfig 3控制é¢æ¿å¸æˆ·å¯†ç 的请求:'; +$wb['user_regex_error'] = '用户å包å«æœªå…许的å—符或超过64个å—符。'; +$wb['pw_error_length'] = '密ç 长度å°äºŽ1或大于256个å—符。'; +$wb['email_error'] = '电å邮件包å«æœªå…许的å—ç¬¦æˆ–æ ¼å¼æ— 效。'; +$wb['login_txt'] = '登录'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['login_button_txt'] = '登录'; +$wb['pw_lost_txt'] = '忘记密ç '; +$wb['pw_reset_txt'] = '密ç é‡ç½®'; +$wb['pw_button_txt'] = 'é‡æ–°å‘é€å¯†ç '; +$wb['email_txt'] = 'Email'; +$wb['back_txt'] = '返回'; +$wb['error_maintenance_mode'] = 'æ¤ ISPConfig 安装当å‰æ£åœ¨ç»´æŠ¤ä¸ã€‚我们很快就会回æ¥ã€‚感谢您的è€å¿ƒç‰å¾…。'; +$wb['theme_not_compatible'] = '选择的主题与当å‰çš„ ISPConfig 版本ä¸å…¼å®¹ã€‚请检查主题的新版本。<br />默认主题已自动激活。'; +$wb['stay_logged_in_txt'] = 'ä¿æŒç™»å½•çŠ¶æ€'; +$wb['lost_password_function_disabled_txt'] = 'æ¤ç”¨æˆ·ä¸å¯ç”¨äºŽæ‰¾å›žå¯†ç 功能。'; +$wb['lost_password_function_wait_txt'] = '您还ä¸èƒ½è¯·æ±‚新密ç 。请ç‰å¾…å‡ åˆ†é’Ÿã€‚'; +$wb['lost_password_function_expired_txt'] = 'æ¤æ¿€æ´»é“¾æŽ¥å·²è¿‡æœŸã€‚请请求新的链接。'; +$wb['lost_password_function_denied_txt'] = 'æ¤æ¿€æ´»é“¾æŽ¥æ— 效。'; +$wb['otp_code_txt'] = 'åŒå› ç´ èº«ä»½éªŒè¯'; +$wb['otp_code_desc_txt'] = '输入您从身份验è¯å™¨åº”用或通过电å邮件获得的代ç 。'; +$wb['otp_code_placeholder_txt'] = 'OTP代ç '; +$wb['otp_code_email_sent_txt'] = '电å邮件已å‘é€è‡³'; +$wb['otp_code_email_subject_txt'] = 'ISPConfig 登录验è¯'; +$wb['otp_code_resend_txt'] = '请求新代ç '; +$wb['otp_code_email_sent_failed_txt'] = 'å‘ %s å‘é€ç”µå邮件失败'; +$wb['otp_code_email_sent_wait_txt'] = '请ç¨ç‰ï¼Œé‡æ–°å‘é€ä»£ç åªèƒ½åœ¨ %s 秒åŽæ‰èƒ½è¿›è¡Œã€‚'; +?> diff --git a/interface/web/login/lib/lang/cn_login_as.lng b/interface/web/login/lib/lang/cn_login_as.lng new file mode 100644 index 0000000000..5b84baa68c --- /dev/null +++ b/interface/web/login/lib/lang/cn_login_as.lng @@ -0,0 +1,15 @@ +<?php +$wb['login_1_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['active_txt'] = '激活'; +$wb['tcp_ports_error_regex'] = 'tcp端å£å®šä¹‰ä¸ä¸å…许使用该å—符。å…许使用的å—符包括数å—ã€":"å’Œ","。'; +$wb['udp_ports_error_regex'] = 'udp端å£å®šä¹‰ä¸ä¸å…许使用该å—符。å…许使用的å—符包括数å—ã€":"å’Œ","。'; +$wb['login_as_or_logout_txt'] = '您是å¦è¦é‡æ–°ç™»å½•ä¸º {UTYPE} 或注销?'; +$wb['btn_reloginas_txt'] = '是的,作为 %s é‡æ–°ç™»å½•'; +$wb['btn_nologout_txt'] = 'å¦ï¼Œæ³¨é”€'; +?> diff --git a/interface/web/login/otp.php b/interface/web/login/otp.php index 53490318d0..e44c08d26b 100644 --- a/interface/web/login/otp.php +++ b/interface/web/login/otp.php @@ -175,13 +175,25 @@ if($_SESSION['otp']['type'] == 'email') { $app->ispcmail->setOptions($mail_config); } - $clientuser = $app->db->queryOneRecord('SELECT email FROM sys_user u LEFT JOIN client c ON (u.client_id=c.client_id) WHERE u.userid = ?', $_SESSION['s_pending']['user']['userid']); - if (!empty($clientuser['email'])) { - $email_to = $clientuser['email']; + $sys_user = $app->db->queryOneRecord('SELECT otp_data FROM sys_user WHERE userid = ?', $_SESSION['s_pending']['user']['userid']); + $data = json_decode($sys_user['otp_data'], TRUE); + + if (!empty($data['otp_email_override'] )) { + // Handle otp_email_override. + $email_to = $data['otp_email_override']; } else { - // Admin users are not related to a client, thus use the globally configured email address. - $email_to = $mail_config['admin_mail']; + $clientuser = $app->db->queryOneRecord('SELECT email FROM sys_user u LEFT JOIN client c ON (u.client_id=c.client_id) WHERE u.userid = ?', $_SESSION['s_pending']['user']['userid']); + if (!empty($clientuser['email'])) { + $email_to = $clientuser['email']; + } + elseif(!empty($mail_config['admin_mail'])) { + // Admin users are not related to a client, thus use the globally configured email address. + $email_to = $mail_config['admin_mail']; + } + else { + $app->error('No mail address available to sent an OTP code to.', 'index.php'); + } } $app->ispcmail->setSender($mail_config['admin_mail'], $mail_config['admin_name']); diff --git a/interface/web/mail/form/mail_domain.tform.php b/interface/web/mail/form/mail_domain.tform.php index 6e768193e0..4a042abf2e 100644 --- a/interface/web/mail/form/mail_domain.tform.php +++ b/interface/web/mail/form/mail_domain.tform.php @@ -132,7 +132,7 @@ $form["tabs"]['domain'] = array ( 'width' => '20', 'maxlength' => '63', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-z0-9]{0,63}$/', + 'regex' => '/^(?=.*[a-z])[a-z0-9]{1,63}$/', 'errmsg'=> 'dkim_selector_error'), ), ), diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php index 32e58686e2..f513aeb9d3 100644 --- a/interface/web/mail/form/mail_user.tform.php +++ b/interface/web/mail/form/mail_user.tform.php @@ -166,7 +166,7 @@ $form["tabs"]['mailuser'] = array( 'regex' => '/^([0-9]{1,})$/', 'errmsg'=> 'quota_error_value'), ), - 'default' => '-1', + 'default' => '0', 'value' => '', 'width' => '30', 'maxlength' => '255' diff --git a/interface/web/mail/lib/lang/ar.lng b/interface/web/mail/lib/lang/ar.lng index 3d15a518a1..0139aab017 100644 --- a/interface/web/mail/lib/lang/ar.lng +++ b/interface/web/mail/lib/lang/ar.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/bg.lng b/interface/web/mail/lib/lang/bg.lng index c117c863a2..bc55f2cd31 100644 --- a/interface/web/mail/lib/lang/bg.lng +++ b/interface/web/mail/lib/lang/bg.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/br.lng b/interface/web/mail/lib/lang/br.lng index 4fafa1b507..f48798198f 100644 --- a/interface/web/mail/lib/lang/br.lng +++ b/interface/web/mail/lib/lang/br.lng @@ -51,3 +51,4 @@ $wb['Relay Recipients'] = 'Destinatários de retransmissão'; $wb['Mailbox quota'] = 'Cotas das contas de email'; $wb['add_header_txt'] = 'Cabeçalho (adicionar "X-Spam: Yes")'; $wb['rewrite_subject_txt'] = 'Assunto (adicionar "***SPAM***" no inÃcio)'; +$wb['inactive'] = 'inactive'; diff --git a/interface/web/mail/lib/lang/ca.lng b/interface/web/mail/lib/lang/ca.lng index 0531f19bd0..568f82afeb 100644 --- a/interface/web/mail/lib/lang/ca.lng +++ b/interface/web/mail/lib/lang/ca.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/cn.lng b/interface/web/mail/lib/lang/cn.lng new file mode 100644 index 0000000000..6066c08b9e --- /dev/null +++ b/interface/web/mail/lib/lang/cn.lng @@ -0,0 +1,52 @@ +<?php +$wb['Email Alias'] = '电å邮件别å'; +$wb['Email Blacklist'] = '电å邮件黑åå•'; +$wb['Blacklist'] = '黑åå•'; +$wb['Mail Content Filter'] = '邮件内容过滤器'; +$wb['Filter'] = '过滤器'; +$wb['Mail Domain'] = '邮件域å'; +$wb['Domain'] = '域å'; +$wb['Email Catchall'] = '邮件默认收件箱'; +$wb['Email Forward'] = '邮件转å‘'; +$wb['Get Email'] = '获å–电å邮件'; +$wb['Spamfilter'] = '垃圾邮件过滤器'; +$wb['Email Routing'] = '电å邮件路由'; +$wb['Email transport'] = '电åé‚®ä»¶ä¼ è¾“'; +$wb['Mailbox'] = '邮箱'; +$wb['Autoresponder'] = '自动回å¤'; +$wb['Mail Filter'] = '邮件过滤器'; +$wb['Custom Rules'] = '自定义规则'; +$wb['Email filter'] = '电å邮件过滤器'; +$wb['Email Whitelist'] = '电å邮件白åå•'; +$wb['Whitelist'] = '白åå•'; +$wb['Spamfilter blacklist'] = '垃圾邮件过滤器黑åå•'; +$wb['Blacklist'] = '黑åå•'; +$wb['Spamfilter Config'] = '垃圾邮件过滤器é…ç½®'; +$wb['Server'] = 'æœåŠ¡å™¨'; +$wb['Spamfilter policy'] = '垃圾邮件过滤器ç–ç•¥'; +$wb['Policy'] = 'ç–ç•¥'; +$wb['Quarantine'] = '隔离'; +$wb['Tag-Level'] = 'æ ‡ç¾çº§åˆ«'; +$wb['Other'] = '其他'; +$wb['Spamfilter users'] = '垃圾邮件过滤器用户'; +$wb['Users'] = '用户'; +$wb['Spamfilter Whitelist'] = '垃圾邮件过滤器白åå•'; +$wb['Whitelist'] = '白åå•'; +$wb['Email'] = '电å邮件'; +$wb['Email Mailbox'] = '电å邮件邮箱'; +$wb['Email Accounts'] = '电å邮件账户'; +$wb['User / Domain'] = '用户 / 域å'; +$wb['Server Settings'] = 'æœåŠ¡å™¨è®¾ç½®'; +$wb['Spamfilter'] = '垃圾邮件过滤器'; +$wb['Fetchmail'] = '邮件获å–工具'; +$wb['Mailbox traffic'] = '邮箱æµé‡'; +$wb['Statistics'] = '统计'; +$wb['Postfix Whitelist'] = 'Postfix 白åå•'; +$wb['Postfix Blacklist'] = 'Postfix 黑åå•'; +$wb['Content Filter'] = '内容过滤器'; +$wb['Global Filters'] = '全局过滤器'; +$wb['Domain Alias'] = '域å别å'; +$wb['Relay Recipients'] = '转å‘收件人'; +$wb['Mailbox quota'] = '邮箱é…é¢'; +$wb['add_header_txt'] = 'å¤´éƒ¨ï¼ˆæ·»åŠ "X-Spam: Yes")'; +$wb['rewrite_subject_txt'] = 'ä¸»é¢˜ï¼ˆåœ¨å¼€å¤´æ·»åŠ "***SPAM***")'; diff --git a/interface/web/mail/lib/lang/cn_backup_stats_list.lng b/interface/web/mail/lib/lang/cn_backup_stats_list.lng new file mode 100644 index 0000000000..c45a878de7 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_backup_stats_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '备份统计'; +$wb['active_txt'] = '激活'; +$wb['domain_txt'] = '邮件'; +$wb['backup_count_txt'] = '备份次数'; +$wb['backup_server_txt'] = 'æœåŠ¡å™¨'; +$wb['backup_interval_txt'] = '备份间隔 / 次数'; +$wb['backup_size_txt'] = '备份大å°'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_alias.lng b/interface/web/mail/lib/lang/cn_mail_alias.lng new file mode 100644 index 0000000000..76075bb651 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_alias.lng @@ -0,0 +1,16 @@ +<?php +$wb['email_txt'] = '电å邮件'; +$wb['destination_txt'] = '目的地'; +$wb['active_txt'] = '激活的'; +$wb['email_error_isemail'] = '电å邮件地å€æ— 效。'; +$wb['email_error_unique'] = 'é‡å¤çš„电å邮件地å€ã€‚'; +$wb['no_domain_perm'] = '您没有æ¤åŸŸçš„æƒé™ã€‚'; +$wb['destination_error_isemail'] = 'ç›®æ ‡ç”µå邮件地å€æ— 效。'; +$wb['limit_mailalias_txt'] = '已达到您的å¸æˆ·çš„电å邮件别å的最大数é‡ã€‚'; +$wb['duplicate_mailbox_txt'] = 'å·²ç»å˜åœ¨ä¸€ä¸ªä½¿ç”¨æ¤ç”µå邮件地å€çš„邮箱。'; +$wb['domain_txt'] = '域å'; +$wb['duplicate_email_alias_txt'] = 'æ¤ç”µå邮件别åå·²ç»å˜åœ¨ã€‚'; +$wb['source_txt'] = '别å'; +$wb['send_as_txt'] = '以...çš„å义å‘é€'; +$wb['send_as_exp'] = 'å…è®¸ç›®æ ‡ä½¿ç”¨æ¤åˆ«å作为å‘件人å‘é€é‚®ä»¶'; +$wb['greylisting_txt'] = 'å¯ç”¨ç°åå•'; diff --git a/interface/web/mail/lib/lang/cn_mail_alias_list.lng b/interface/web/mail/lib/lang/cn_mail_alias_list.lng new file mode 100644 index 0000000000..809edd00f6 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_alias_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Email别å'; +$wb['active_txt'] = '激活'; +$wb['source_txt'] = 'æ¥æº'; +$wb['destination_txt'] = 'ç›®æ ‡'; +$wb['email_txt'] = 'Email'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„Email别å'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_aliasdomain.lng b/interface/web/mail/lib/lang/cn_mail_aliasdomain.lng new file mode 100644 index 0000000000..0f331158dc --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_aliasdomain.lng @@ -0,0 +1,11 @@ +<?php +$wb['source_txt'] = 'æº'; +$wb['destination_txt'] = 'ç›®æ ‡'; +$wb['active_txt'] = '激活'; +$wb['no_domain_perm'] = '您没有æ¤åŸŸåçš„æƒé™ã€‚'; +$wb['limit_mailaliasdomain_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°ç”µå邮件别å域的最大数é‡ã€‚'; +$wb['source_destination_identical_txt'] = 'æºåŸŸå’Œç›®æ ‡åŸŸç›¸åŒã€‚'; +$wb['source_error_empty'] = 'æºåŸŸä¸ºç©ºã€‚'; +$wb['source_error_unique'] = 'æºåŸŸé‡å¤ã€‚'; +$wb['source_error_regex'] = 'æ— æ•ˆçš„æºåŸŸå。'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/cn_mail_aliasdomain_list.lng new file mode 100644 index 0000000000..e237380179 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '域å别å'; +$wb['active_txt'] = '激活'; +$wb['source_txt'] = 'æº'; +$wb['destination_txt'] = '目的地'; +$wb['source_txt'] = 'æº'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„åŸŸå别å'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_backup_list.lng b/interface/web/mail/lib/lang/cn_mail_backup_list.lng new file mode 100644 index 0000000000..41eaefce85 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_backup_list.lng @@ -0,0 +1,16 @@ +<?php +$wb['list_head_txt'] = '现有备份'; +$wb['date_txt'] = '日期'; +$wb['backup_type_txt'] = '类型'; +$wb['filename_txt'] = '备份文件'; +$wb['restore_backup_txt'] = 'æ¢å¤'; +$wb['restore_info_txt'] = '已开始还原备份。æ¤æ“作需è¦å‡ 分钟æ‰èƒ½å®Œæˆã€‚'; +$wb['restore_confirm_txt'] = '还原å¯èƒ½ä¼šè¦†ç›–您邮箱ä¸çš„现有文件。您确定è¦è¿˜åŽŸæ¤å¤‡ä»½å—?'; +$wb['download_pending_txt'] = '已有一个待处ç†çš„备份下载作业。'; +$wb['restore_pending_txt'] = '已有一个待处ç†çš„备份还原作业。'; +$wb['delete_backup_txt'] = 'åˆ é™¤å¤‡ä»½'; +$wb['delete_info_txt'] = 'å·²å¼€å§‹åˆ é™¤å¤‡ä»½ã€‚æ¤æ“作需è¦å‡ 分钟æ‰èƒ½å®Œæˆã€‚'; +$wb['delete_confirm_txt'] = '确定è¦åˆ 除æ¤å¤‡ä»½å—?'; +$wb['delete_pending_txt'] = '已有一个待处ç†çš„å¤‡ä»½åˆ é™¤ä½œä¸šã€‚'; +$wb['filesize_txt'] = '文件大å°'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_blacklist.lng b/interface/web/mail/lib/lang/cn_mail_blacklist.lng new file mode 100644 index 0000000000..f257dc38c0 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_blacklist.lng @@ -0,0 +1,12 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_txt'] = '黑åå•åœ°å€'; +$wb['recipient_txt'] = '收件人'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['source_error_notempty'] = '地å€ä¸ºç©ºã€‚'; +$wb['type_txt'] = '类型'; +$wb['limit_mailfilter_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°ç”µå邮件过滤器的最大数é‡é™åˆ¶ã€‚'; +$wb['limit_mail_wblist_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°ç”µå邮件白åå• / 黑åå•çš„最大数é‡é™åˆ¶ã€‚'; +$wb['mail_access_unique'] = '黑åå•åœ°å€å·²ç»åœ¨ä½¿ç”¨ä¸ã€‚'; +$wb['client_txt'] = '客户'; +$wb['sender_txt'] = 'å‘件人'; diff --git a/interface/web/mail/lib/lang/cn_mail_blacklist_list.lng b/interface/web/mail/lib/lang/cn_mail_blacklist_list.lng new file mode 100644 index 0000000000..217aaf60c1 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_blacklist_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'Email黑åå•'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_txt'] = '被列入黑åå•çš„地å€'; +$wb['type_txt'] = '类型'; +$wb['recipient_txt'] = '收件人'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„é»‘åå•è®°å½•'; +$wb['access_txt'] = '访问'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_content_filter.lng b/interface/web/mail/lib/lang/cn_mail_content_filter.lng new file mode 100644 index 0000000000..c319a94317 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_content_filter.lng @@ -0,0 +1,9 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['type_txt'] = '过滤器'; +$wb['pattern_txt'] = 'æ£åˆ™è¡¨è¾¾å¼æ¨¡å¼'; +$wb['data_txt'] = 'æ•°æ®'; +$wb['action_txt'] = 'æ“作'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['pattern_error_empty'] = '模å¼ä¸ºç©ºã€‚'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_content_filter_list.lng b/interface/web/mail/lib/lang/cn_mail_content_filter_list.lng new file mode 100644 index 0000000000..2fa02087ad --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_content_filter_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Postfix 头和æ£æ–‡æ£€æŸ¥'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['pattern_txt'] = '模å¼'; +$wb['action_txt'] = '动作'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°å†…å®¹è¿‡æ»¤å™¨'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_domain.lng b/interface/web/mail/lib/lang/cn_mail_domain.lng new file mode 100644 index 0000000000..279e9a3bf7 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_domain.lng @@ -0,0 +1,25 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['type_txt'] = '类型'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['dkim_txt'] = 'å¯ç”¨ DKIM'; +$wb['dkim_private_txt'] = 'DKIM ç§é’¥'; +$wb['dkim_public_txt'] = 'DKIM 公钥' . "\n" . 'ä»…ä¾›å‚考'; +$wb['dkim_generate_txt'] = 'ç”Ÿæˆ DKIM ç§é’¥'; +$wb['dkim_dns_txt'] = 'DNS 记录'; +$wb['dkim_private_key_error'] = 'æ— æ•ˆçš„ DKIM ç§é’¥'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = 'é‡å¤çš„域å。'; +$wb['domain_error_regex'] = 'æ— æ•ˆçš„åŸŸå。'; +$wb['dkim_settings_txt'] = '域å密钥识别邮件(DKIM)'; +$wb['client_txt'] = '客户'; +$wb['limit_maildomain_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°ç”µå邮件域的最大数é‡ã€‚'; +$wb['policy_txt'] = '垃圾邮件过滤器'; +$wb['no_policy'] = '- 未å¯ç”¨ -'; +$wb['error_not_allowed_server_id'] = 'æ¤å¸æˆ·ä¸å…许选择æ¤æœåŠ¡å™¨ã€‚'; +$wb['dkim_selector_txt'] = 'DKIM 选择器'; +$wb['dkim_selector_error'] = 'æ— æ•ˆçš„ DKIM 选择器。仅使用å°å†™å—æ¯æ•°å—å—符(a-z或0-9),最多63个å—符'; +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost 用户'; +$wb['relayhost_password_txt'] = 'Relayhost 密ç '; diff --git a/interface/web/mail/lib/lang/cn_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/cn_mail_domain_admin_list.lng new file mode 100644 index 0000000000..b3894ed510 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_domain_admin_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Email 域'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åŸŸå'; +$wb['active_txt'] = '激活'; +$wb['sys_groupid_txt'] = '客户'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_domain_catchall.lng b/interface/web/mail/lib/lang/cn_mail_domain_catchall.lng new file mode 100644 index 0000000000..adf71b00b1 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_domain_catchall.lng @@ -0,0 +1,14 @@ +<?php +$wb['domain_txt'] = '域å'; +$wb['destination_txt'] = 'ç›®æ ‡é‚®ç®±'; +$wb['active_txt'] = '激活'; +$wb['domain_error_unique'] = 'æ¤åŸŸåå·²ç»å˜åœ¨ä¸€ä¸ªCatchall记录。'; +$wb['no_domain_perm'] = '您没有æ¤åŸŸåçš„æƒé™ã€‚'; +$wb['domain_error_regex'] = 'æ— æ•ˆçš„åŸŸå或域å包å«æ— 效å—符。'; +$wb['limit_mailcatchall_txt'] = '您的å¸æˆ·çš„邮件catchallå¸æˆ·æ•°é‡å·²è¾¾åˆ°æœ€å¤§é™åˆ¶ã€‚'; +$wb['domain_txt'] = '域å'; +$wb['source_txt'] = 'æ¥æº'; +$wb['destination_error_isemail'] = 'ç›®æ ‡ä¸æ˜¯æœ‰æ•ˆçš„电å邮件地å€ã€‚'; +$wb['greylisting_txt'] = 'å¯ç”¨ç°åå•'; +$wb['send_as_txt'] = 'å‘é€ä¸º'; +$wb['send_as_exp'] = 'å…è®¸ç›®æ ‡ä»Žæ¤åŸŸä¸çš„电å邮件地å€å‘é€ã€‚'; diff --git a/interface/web/mail/lib/lang/cn_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/cn_mail_domain_catchall_list.lng new file mode 100644 index 0000000000..1f7dec8e7a --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_domain_catchall_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '邮件 Catchall'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['source_txt'] = 'æº'; +$wb['destination_txt'] = 'ç›®æ ‡ç”µå邮件地å€'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–° Catchall'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_domain_list.lng b/interface/web/mail/lib/lang/cn_mail_domain_list.lng new file mode 100644 index 0000000000..4865d56fa1 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_domain_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '邮件域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åŸŸå'; +$wb['active_txt'] = 'å¯ç”¨'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_forward.lng b/interface/web/mail/lib/lang/cn_mail_forward.lng new file mode 100644 index 0000000000..9e9d8906f2 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_forward.lng @@ -0,0 +1,15 @@ +<?php +$wb['email_txt'] = '电å邮件'; +$wb['destination_txt'] = 'ç›®æ ‡ç”µå邮件'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['limit_mailforward_txt'] = '您的å¸æˆ·çš„电å邮件转å‘器数é‡å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['duplicate_mailbox_txt'] = 'å·²ç»å˜åœ¨ä½¿ç”¨è¯¥ç”µå邮件地å€çš„邮箱'; +$wb['domain_txt'] = '域å'; +$wb['source_txt'] = 'æºç”µå邮件'; +$wb['destination_error_empty'] = 'ç›®æ ‡ç”µå邮件ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['destination_error_isemail'] = 'ç›®æ ‡ç”µå邮件包å«è‡³å°‘ä¸€ä¸ªæ— æ•ˆçš„ç”µå邮件地å€ã€‚'; +$wb['email_error_isemail'] = '请输入有效的电å邮件地å€ã€‚'; +$wb['email_error_unique'] = 'é‡å¤çš„电å邮件地å€ã€‚'; +$wb['send_as_txt'] = 'å‘é€äºº'; +$wb['send_as_exp'] = 'å…è®¸ç›®æ ‡ä½¿ç”¨æ¤åœ°å€ä½œä¸ºæ¥æºå‘é€é‚®ä»¶ï¼ˆå¦‚æžœç›®æ ‡æ˜¯å†…éƒ¨çš„ï¼‰ã€‚'; +$wb['greylisting_txt'] = 'å¯ç”¨ç°åå•'; diff --git a/interface/web/mail/lib/lang/cn_mail_forward_list.lng b/interface/web/mail/lib/lang/cn_mail_forward_list.lng new file mode 100644 index 0000000000..c8686da3ef --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_forward_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '邮件转å‘'; +$wb['active_txt'] = '激活'; +$wb['source_txt'] = 'æº'; +$wb['destination_txt'] = '目的地'; +$wb['email_txt'] = '电å邮件'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„ç”µå邮件转å‘'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_get.lng b/interface/web/mail/lib/lang/cn_mail_get.lng new file mode 100644 index 0000000000..20ad473996 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_get.lng @@ -0,0 +1,19 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['type_txt'] = '类型'; +$wb['source_server_txt'] = 'Pop3/ImapæœåŠ¡å™¨'; +$wb['source_username_txt'] = '用户å'; +$wb['source_password_txt'] = '密ç '; +$wb['source_delete_txt'] = '检索åŽåˆ 除邮件'; +$wb['source_delete_note_txt'] = '在å¯ç”¨æ¤é€‰é¡¹ä¹‹å‰ï¼Œè¯·å…ˆæ£€æŸ¥ç”µå邮件检索是å¦æœ‰æ•ˆã€‚'; +$wb['source_read_all_txt'] = '检索所有邮件(包括已读邮件)'; +$wb['destination_txt'] = '目的地'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['limit_fetchmail_txt'] = '您的å¸æˆ·çš„最大Fetchmail记录数已达到。'; +$wb['source_server_error_isempty'] = 'æœåŠ¡å™¨ä¸ºç©ºã€‚'; +$wb['source_username_error_isempty'] = '用户å为空。'; +$wb['source_password_error_isempty'] = '密ç 为空。'; +$wb['destination_error_isemail'] = '未选择目的地。'; +$wb['source_server_error_regex'] = 'Pop3/ImapæœåŠ¡å™¨ä¸æ˜¯æœ‰æ•ˆçš„域å。'; +$wb['error_delete_read_all_combination'] = '选项组åˆä¸åˆæ³•ã€‚您ä¸èƒ½åŒæ—¶ä½¿ç”¨â€œæ£€ç´¢åŽåˆ 除邮件â€= no和“检索所有邮件â€= yes'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_get_list.lng b/interface/web/mail/lib/lang/cn_mail_get_list.lng new file mode 100644 index 0000000000..529c4c3618 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_get_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '从外部POP3/IMAPæœåŠ¡å™¨èŽ·å–电å邮件'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_server_txt'] = '外部æœåŠ¡å™¨'; +$wb['source_username_txt'] = '用户å'; +$wb['destination_txt'] = '目的地'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°å¸æˆ·'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_mailinglist.lng b/interface/web/mail/lib/lang/cn_mail_mailinglist.lng new file mode 100644 index 0000000000..cb08db4821 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_mailinglist.lng @@ -0,0 +1,23 @@ +<?php +$wb['mailinglist_txt'] = '邮件列表'; +$wb['limit_mailmailinglist_txt'] = '已达到é™åˆ¶'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['listname_error_empty'] = '列表å称为空。'; +$wb['listname_error_regex'] = '列表åç§°æ— æ•ˆã€‚æœ€å°é•¿åº¦ä¸º2个å—符(å…许使用:[a-z 1-9 - _])。'; +$wb['domain_error_regex'] = 'æ— æ•ˆçš„åŸŸå。'; +$wb['email_in_use_txt'] = '电å邮件已被使用'; +$wb['no_domain_perm'] = '您没有æ¤åŸŸåçš„æƒé™ã€‚'; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['listname_txt'] = '列表å称'; +$wb['client_txt'] = '客户'; +$wb['email_txt'] = '电å邮件'; +$wb['password_txt'] = '密ç '; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['listname_error_unique'] = 'æœåŠ¡å™¨ä¸Šå·²å˜åœ¨åŒå的邮件列表。请æ¢ä¸€ä¸ªåˆ—表å称。'; +$wb['email_error_isemail'] = '电å邮件地å€æ— 效。'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/cn_mail_mailinglist_list.lng new file mode 100644 index 0000000000..d185267944 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_mailinglist_list.lng @@ -0,0 +1,5 @@ +<?php +$wb['list_head_txt'] = '邮件列表'; +$wb['domain_txt'] = '域å'; +$wb['listname_txt'] = '列表å'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_relay_domain.lng b/interface/web/mail/lib/lang/cn_mail_relay_domain.lng new file mode 100644 index 0000000000..6c6144e2e3 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_relay_domain.lng @@ -0,0 +1,9 @@ +<?php +$wb['mail_relay_domain_title'] = 'Email ä¸è½¬åŸŸ'; +$wb['tab_relay_domain_title'] = 'ä¸è½¬åŸŸ'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['domain_txt'] = '域å'; +$wb['domain_error_regex'] = 'æ— æ•ˆçš„åŸŸå。'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = '该域åå·²å˜åœ¨äºŽæ¤æœåŠ¡å™¨ä¸Šä½œä¸ºé‚®ä»¶ä¸ç»§åŸŸã€‚'; diff --git a/interface/web/mail/lib/lang/cn_mail_relay_domain_list.lng b/interface/web/mail/lib/lang/cn_mail_relay_domain_list.lng new file mode 100644 index 0000000000..f49dd8e96a --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_relay_domain_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'ä¸è½¬åŸŸ'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„ä¸è½¬åŸŸ'; +$wb['access_txt'] = '访问'; diff --git a/interface/web/mail/lib/lang/cn_mail_relay_recipient.lng b/interface/web/mail/lib/lang/cn_mail_relay_recipient.lng new file mode 100644 index 0000000000..ff72944f41 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_relay_recipient.lng @@ -0,0 +1,9 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_txt'] = 'ä¸ç»§æŽ¥æ”¶è€…'; +$wb['recipient_txt'] = '收件人'; +$wb['active_txt'] = '激活'; +$wb['source_error_notempty'] = '地å€ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['type_txt'] = '类型'; +$wb['limit_mailfilter_txt'] = '已达到您的账户的电å邮件过滤器的最大数é‡ã€‚'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/cn_mail_relay_recipient_list.lng new file mode 100644 index 0000000000..bb0e05eddf --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_relay_recipient_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = 'ä¸è½¬æ”¶ä»¶äºº'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_txt'] = '收件人地å€'; +$wb['recipient_txt'] = '转å‘到'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„ä¸è½¬æ”¶ä»¶äºº'; +$wb['access_txt'] = '访问'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_spamfilter.lng b/interface/web/mail/lib/lang/cn_mail_spamfilter.lng new file mode 100644 index 0000000000..207d99b565 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_spamfilter.lng @@ -0,0 +1,17 @@ +<?php +$wb['email_txt'] = '电å邮件'; +$wb['spam_rewrite_score_int_txt'] = 'é‡å†™å¾—分'; +$wb['spam_redirect_score_int_txt'] = 'é‡å®šå‘得分'; +$wb['spam_delete_score_int_txt'] = 'åˆ é™¤å¾—åˆ†'; +$wb['spam_rewrite_subject_txt'] = 'é‡å†™ä¸»é¢˜'; +$wb['spam_redirect_maildir_txt'] = 'é‡å®šå‘邮箱'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['spam_rewrite_txt'] = '当得分高于æ¤å€¼æ—¶ï¼Œé‡å†™ç”µå邮件主题。'; +$wb['spam_redirect_txt'] = '当得分高于æ¤å€¼æ—¶ï¼Œå°†ç”µå邮件é‡å®šå‘到选择的邮箱。'; +$wb['spam_delete_txt'] = '当得分高于æ¤å€¼æ—¶ï¼Œåˆ 除电å邮件。'; +$wb['disable_txt'] = 'æ示:è¦ç¦ç”¨è¿‡æ»¤é€‰é¡¹ï¼Œè¯·å°†åˆ†æ•°è®¾ç½®ä¸º 0.00。'; +$wb['email_error_isemail'] = '电å邮件地å€æ— 效。'; +$wb['email_error_unique'] = 'æ¤ç”µå邮件地å€å·²ç»å˜åœ¨ Spamfilter 记录。'; +$wb['spam_redirect_maildir_purge_txt'] = 'é‡å®šå‘åŽæ¸…除 Maildir 时间'; +$wb['days_txt'] = '天。'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/cn_mail_spamfilter_list.lng new file mode 100644 index 0000000000..b53ab02a7d --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_spamfilter_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '垃圾邮件过滤器'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['server_name_txt'] = 'æœåŠ¡å™¨å称'; +$wb['email_txt'] = '电å邮件'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„åžƒåœ¾é‚®ä»¶è¿‡æ»¤è®°å½•'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_transport.lng b/interface/web/mail/lib/lang/cn_mail_transport.lng new file mode 100644 index 0000000000..17fa0ac760 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_transport.lng @@ -0,0 +1,11 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['destination_txt'] = '目的地'; +$wb['type_txt'] = '类型'; +$wb['mx_txt'] = 'æ— MX 查询'; +$wb['sort_order_txt'] = '排åº'; +$wb['active_txt'] = '激活'; +$wb['limit_mailrouting_txt'] = '您的å¸æˆ·çš„路由最大数é‡å·²è¾¾åˆ°ã€‚'; +$wb['transport_txt'] = 'ä¼ è¾“'; +$wb['domain_error_unique'] = 'æ¤åŸŸåçš„é‚®ä»¶ä¼ è¾“å·²å˜åœ¨äºŽæ¤æœåŠ¡å™¨ä¸Šã€‚'; diff --git a/interface/web/mail/lib/lang/cn_mail_transport_list.lng b/interface/web/mail/lib/lang/cn_mail_transport_list.lng new file mode 100644 index 0000000000..c0b3b6bcc4 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_transport_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '高级电å邮件路由'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['transport_txt'] = 'ä¼ è¾“'; +$wb['sort_order_txt'] = '排åº'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ä¼ è¾“'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_user.lng b/interface/web/mail/lib/lang/cn_mail_user.lng new file mode 100644 index 0000000000..9461e25228 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_user.lng @@ -0,0 +1,77 @@ +<?php +$wb['custom_mailfilter_txt'] = '自定义邮件过滤规则'; +$wb['email_txt'] = '邮箱'; +$wb['cryptpwd_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['email_error_isemail'] = '邮箱地å€æ— 效。'; +$wb['email_error_unique'] = 'é‡å¤çš„邮箱地å€ã€‚'; +$wb['autoresponder_subject_txt'] = '邮件主题'; +$wb['autoresponder_subject'] = '自动回å¤'; +$wb['autoresponder_text_txt'] = '内容'; +$wb['autoresponder_txt'] = 'å¯ç”¨'; +$wb['autoresponder_start_date_txt'] = '开始日期'; +$wb['autoresponder_start_date_ispast'] = '开始日期ä¸èƒ½ä¸ºè¿‡åŽ»æ—¶é—´ã€‚'; +$wb['autoresponder_end_date_txt'] = '截æ¢æ—¥æœŸ'; +$wb['autoresponder_end_date_isgreater'] = '截æ¢æ—¥æœŸå¿…须晚于开始日期。'; +$wb['no_domain_perm'] = '您没有æ¤åŸŸçš„æƒé™ã€‚'; +$wb['error_no_pwd'] = '密ç 为空。'; +$wb['quota_error_isint'] = '邮箱大å°å¿…须为数å—。'; +$wb['quota_txt'] = 'é‚®ç®±å®¹é‡ (0 ä¸ºæ— é™åˆ¶)'; +$wb['server_id_txt'] = 'æœåŠ¡ ID'; +$wb['password_txt'] = '密ç '; +$wb['password_click_to_set_txt'] = '点击设置'; +$wb['maildir_txt'] = 'Maildir'; +$wb['postfix_txt'] = 'å¯ç”¨æŽ¥æ”¶é‚®ä»¶'; +$wb['tooltip_postfix_txt'] = 'å…许æ¤é‚®ç®±æŽ¥æ”¶é‚®ä»¶ã€‚'; +$wb['greylisting_txt'] = 'å¯ç”¨ç°åå•'; +$wb['access_txt'] = 'å¯ç”¨è®¿é—®'; +$wb['policy_txt'] = '垃圾邮件过滤ç–ç•¥'; +$wb['inherit_policy'] = '- 继承域å设置 -'; +$wb['limit_mailbox_txt'] = '您的å¸æˆ·çš„邮箱数é‡å·²è¾¾åˆ°æœ€å¤§å€¼ã€‚'; +$wb['limit_mailquota_txt'] = '您的å¸æˆ·çš„邮箱空间已满。最大å¯ç”¨ç©ºé—´ä¸º MB。'; +$wb['disablesmtp_txt'] = 'ç¦ç”¨å‘é€é‚®ä»¶'; +$wb['tooltip_disablesmtp_txt'] = 'ç¦æ¢æ¤é‚®ç®±å‘é€é‚®ä»¶ã€‚'; +$wb['disabledeliver_txt'] = 'ç¦ç”¨ï¼ˆæœ¬åœ°ï¼‰ä¼ 递'; +$wb['tooltip_disabledeliver_txt'] = 'ç¦æ¢ä¼ 递到收件箱,并通过邮件过滤器和ç›é€‰å™¨è„šæœ¬è¿›è¡Œå¤„ç†ã€‚邮件转å‘到\'å‘é€å‰¯æœ¬\'地å€ã€‚'; +$wb['disableimap_txt'] = 'ç¦ç”¨ IMAP'; +$wb['disablepop3_txt'] = 'ç¦ç”¨ POP3'; +$wb['duplicate_alias_or_forward_txt'] = 'å·²å˜åœ¨ç›¸åŒçš„别å或转å‘地å€ã€‚'; +$wb['quota_error_value'] = 'æ— æ•ˆçš„é‚®ç®±å®¹é‡å€¼ã€‚å…许的值为:0 è¡¨ç¤ºæ— é™åˆ¶ï¼Œå¤§äºŽ 1 çš„æ•°å—。'; +$wb['move_junk_txt'] = '将垃圾邮件移至垃圾箱。'; +$wb['move_junk_y_txt'] = '在自定义ç›é€‰å™¨ä¹‹å‰ç§»åŠ¨ã€‚'; +$wb['move_junk_a_txt'] = '在自定义ç›é€‰å™¨ä¹‹åŽç§»åŠ¨ã€‚'; +$wb['move_junk_n_txt'] = 'ä¸è¦å°†åžƒåœ¾é‚®ä»¶ç§»è‡³åžƒåœ¾ç®±ã€‚'; +$wb['name_txt'] = 'å称'; +$wb['name_optional_txt'] = '(å¯é€‰ï¼‰'; +$wb['autoresponder_active'] = 'å¯ç”¨è‡ªåŠ¨å›žå¤'; +$wb['cc_txt'] = 'å‘é€å‰¯æœ¬è‡³'; +$wb['cc_error_isemail'] = '“å‘é€å‰¯æœ¬è‡³â€å—段ä¸ä¸åŒ…å«æœ‰æ•ˆçš„电å邮件地å€ã€‚'; +$wb['forward_in_lda_txt'] = '交付过程ä¸å¤åˆ¶'; +$wb['tooltip_forward_in_lda_txt'] = '控制邮件å¤åˆ¶æ˜¯å¦åœ¨äº¤ä»˜ä¹‹å‰æˆ–之ä¸è¿›è¡Œã€‚'; +$wb['sender_cc_txt'] = 'å‘é€å‡ºç«™å¯†ä»¶å‰¯æœ¬è‡³'; +$wb['sender_cc_error_isemail'] = '“å‘é€å‡ºç«™å¯†ä»¶å‰¯æœ¬è‡³â€å—段ä¸ä¸åŒ…å«æœ‰æ•ˆçš„电å邮件地å€ã€‚'; +$wb['domain_txt'] = '域å'; +$wb['now_txt'] = '现在'; +$wb['login_error_unique'] = '登录åå·²å˜åœ¨ã€‚'; +$wb['login_error_regex'] = '有效å—符包括 A-Zã€a-zã€0-9ã€.ã€_ å’Œ -。'; +$wb['login_txt'] = '登录å'; +$wb['error_login_email_txt'] = 'æ¤ç™»å½•åä¸å…许使用。请使用ä¸åŒçš„登录å或使用电å邮件地å€ä½œä¸ºç™»å½•å。'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['backup_interval_txt'] = '备份间隔'; +$wb['backup_copies_txt'] = '备份副本数é‡'; +$wb['no_backup_txt'] = 'ä¸å¤‡ä»½'; +$wb['daily_backup_txt'] = 'æ¯æ—¥'; +$wb['weekly_backup_txt'] = 'æ¯å‘¨'; +$wb['monthly_backup_txt'] = 'æ¯æœˆ'; +$wb['email_error_isascii'] = '请勿在密ç ä¸ä½¿ç”¨ç‰¹æ®Šçš„ Unicode å—符。这å¯èƒ½ä¼šå¯¼è‡´æ‚¨çš„邮件客户端出现问题。'; +$wb['cc_note_txt'] = '(使用逗å·åˆ†éš”多个电å邮件地å€ï¼‰'; +$wb['sender_cc_note_txt'] = '(仅é™ä¸€ä¸ªç”µå邮件地å€ï¼‰'; +$wb['purge_trash_days_txt'] = '自动在 X 天åŽæ¸…空垃圾箱'; +$wb['tooltip_purge_trash_days_txt'] = '0 = ç¦ç”¨'; +$wb['purge_junk_days_txt'] = '自动在 X 天åŽæ¸…空垃圾邮件'; +$wb['tooltip_purge_junk_days_txt'] = '0 = ç¦ç”¨'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_user_filter.lng b/interface/web/mail/lib/lang/cn_mail_user_filter.lng new file mode 100644 index 0000000000..c898708dce --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_user_filter.lng @@ -0,0 +1,31 @@ +<?php +$wb['rulename_txt'] = 'å称'; +$wb['action_txt'] = 'æ“作'; +$wb['target_txt'] = '文件夹'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['rulename_error_empty'] = 'å称为空。'; +$wb['searchterm_is_empty'] = 'æœç´¢æ¡ä»¶ä¸ºç©ºã€‚'; +$wb['source_txt'] = 'æ¥æº'; +$wb['target_error_regex'] = 'ç›®æ ‡åªèƒ½åŒ…å«ä»¥ä¸‹å—符:a-z,0-9,-,.,_,&,/,和{space}。'; +$wb['limit_mailfilter_txt'] = '邮件过滤器的最大数é‡å·²è¾¾åˆ°ã€‚'; +$wb['subject_txt'] = '主题'; +$wb['from_txt'] = 'å‘件人'; +$wb['to_txt'] = '收件人'; +$wb['list_id_txt'] = '列表ID'; +$wb['contains_txt'] = '包å«'; +$wb['is_txt'] = '为'; +$wb['begins_with_txt'] = '开头为'; +$wb['ends_with_txt'] = '结尾为'; +$wb['regex_txt'] = '匹é…æ£åˆ™è¡¨è¾¾å¼'; +$wb['move_stop_txt'] = '移动到'; +$wb['delete_txt'] = 'åˆ é™¤'; +$wb['header_txt'] = '邮件头'; +$wb['size_over_txt'] = '邮件大å°è¶…过(KB)'; +$wb['size_under_txt'] = '邮件大å°ä½ŽäºŽï¼ˆKB)'; +$wb['localpart_txt'] = '用户å'; +$wb['domain_txt'] = '域å'; +$wb['keep_txt'] = 'ä¿ç•™'; +$wb['reject_txt'] = 'æ‹’ç»'; +$wb['stop_txt'] = 'åœæ¢'; +$wb['move_to_txt'] = '移动到'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_user_filter_list.lng b/interface/web/mail/lib/lang/cn_mail_user_filter_list.lng new file mode 100644 index 0000000000..d847c7006d --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_user_filter_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['rulename_txt'] = 'å称'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°è¿‡æ»¤å™¨'; +$wb['page_txt'] = '页'; +$wb['page_of_txt'] = 'çš„'; +$wb['delete_confirmation'] = '您确定è¦åˆ 除邮件过滤器å—?'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_user_list.lng b/interface/web/mail/lib/lang/cn_mail_user_list.lng new file mode 100644 index 0000000000..cc27e6d1f4 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_user_list.lng @@ -0,0 +1,13 @@ +<?php +$wb['list_head_txt'] = '邮箱'; +$wb['email_txt'] = '邮箱'; +$wb['autoresponder_txt'] = '自动回å¤'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°é‚®ç®±'; +$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/cn_mail_user_stats_list.lng b/interface/web/mail/lib/lang/cn_mail_user_stats_list.lng new file mode 100644 index 0000000000..ee06c753cf --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_user_stats_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '邮件æµé‡'; +$wb['email_txt'] = '电å邮件'; +$wb['this_month_txt'] = '本月'; +$wb['last_month_txt'] = '上月'; +$wb['this_year_txt'] = '今年'; +$wb['last_year_txt'] = '去年'; +?> diff --git a/interface/web/mail/lib/lang/cn_mail_whitelist.lng b/interface/web/mail/lib/lang/cn_mail_whitelist.lng new file mode 100644 index 0000000000..9b3c847b6f --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_whitelist.lng @@ -0,0 +1,12 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_txt'] = '白åå•åœ°å€'; +$wb['recipient_txt'] = '收件人'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['source_error_notempty'] = '地å€ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['type_txt'] = '类型'; +$wb['limit_mailfilter_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°ç”µå邮件过滤器的最大数é‡ã€‚'; +$wb['limit_mail_wblist_txt'] = '您的å¸æˆ·å·²è¾¾åˆ°ç”µå邮件白åå•/黑åå•çš„最大数é‡ã€‚'; +$wb['mail_access_unique'] = '白åå•åœ°å€å·²è¢«ä½¿ç”¨ã€‚'; +$wb['client_txt'] = '客户'; +$wb['sender_txt'] = 'å‘件人'; diff --git a/interface/web/mail/lib/lang/cn_mail_whitelist_list.lng b/interface/web/mail/lib/lang/cn_mail_whitelist_list.lng new file mode 100644 index 0000000000..39bbd3e3df --- /dev/null +++ b/interface/web/mail/lib/lang/cn_mail_whitelist_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '邮件白åå•'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['source_txt'] = '白åå•åœ°å€'; +$wb['type_txt'] = '类型'; +$wb['recipient_txt'] = '收件人'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„ç™½åå•è®°å½•'; +$wb['access_txt'] = '访问'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/cn_spamfilter_blacklist.lng new file mode 100644 index 0000000000..0f4aba4762 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_blacklist.lng @@ -0,0 +1,12 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['wb_txt'] = 'wb'; +$wb['rid_txt'] = '用户'; +$wb['email_txt'] = '邮箱'; +$wb['priority_txt'] = '优先级'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['limit_spamfilter_wblist_txt'] = '您的å¸æˆ·çš„白åå•æˆ–黑åå•è®°å½•å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['10 - highest'] = '10 - 最高'; +$wb['5 - medium'] = '5 - ä¸ç‰'; +$wb['1 - lowest'] = '1 - 最低'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/cn_spamfilter_blacklist_list.lng new file mode 100644 index 0000000000..4210f64125 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_blacklist_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '垃圾邮件过滤黑åå•'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['priority_txt'] = '优先级'; +$wb['rid_txt'] = '用户'; +$wb['email_txt'] = '黑åå•é‚®ç®±'; +$wb['add_new_record_txt'] = 'æ·»åŠ é»‘åå•è®°å½•'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_config.lng b/interface/web/mail/lib/lang/cn_spamfilter_config.lng new file mode 100644 index 0000000000..a0eab985a4 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_config.lng @@ -0,0 +1,20 @@ +<?php +$wb['getmail_config_dir_txt'] = 'Getmailé…置路径'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['netmask_txt'] = 'å网掩ç '; +$wb['gateway_txt'] = '网关'; +$wb['hostname_txt'] = '主机å'; +$wb['nameservers_txt'] = 'å称æœåŠ¡å™¨'; +$wb['module_txt'] = 'æœåŠ¡å™¨æ¨¡å—'; +$wb['maildir_path_txt'] = 'Maildir路径'; +$wb['homedir_path_txt'] = 'Home目录路径'; +$wb['mailuser_uid_txt'] = 'Mailuser UID'; +$wb['mailuser_gid_txt'] = 'Mailuser GID'; +$wb['mailuser_name_txt'] = 'Mailuserå称'; +$wb['mailuser_group_txt'] = 'Mailuser组'; +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost用户'; +$wb['relayhost_password_txt'] = 'Relayhost密ç '; +$wb['mailbox_size_limit_txt'] = '邮箱大å°é™åˆ¶'; +$wb['message_size_limit_txt'] = '邮件大å°é™åˆ¶'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_config_list.lng b/interface/web/mail/lib/lang/cn_spamfilter_config_list.lng new file mode 100644 index 0000000000..70e49e22b8 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_config_list.lng @@ -0,0 +1,5 @@ +<?php +$wb['list_head_txt'] = 'Server Configuration'; +$wb['server_name_txt'] = 'Server'; +$wb['server_id_txt'] = 'server_id'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_policy.lng b/interface/web/mail/lib/lang/cn_spamfilter_policy.lng new file mode 100644 index 0000000000..27ddf9b060 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_policy.lng @@ -0,0 +1,51 @@ +<?php +$wb['policy_name_txt'] = 'ç–ç•¥å称'; +$wb['virus_lover_txt'] = '病毒爱好者'; +$wb['spam_lover_txt'] = '垃圾邮件爱好者'; +$wb['banned_files_lover_txt'] = 'è¿ç¦æ–‡ä»¶çˆ±å¥½è€…'; +$wb['bad_header_lover_txt'] = 'ä¸è‰¯æ ‡é¢˜çˆ±å¥½è€…'; +$wb['bypass_virus_checks_txt'] = '跳过病毒检测'; +$wb['bypass_banned_checks_txt'] = '跳过è¿ç¦æ£€æµ‹'; +$wb['bypass_header_checks_txt'] = 'è·³è¿‡æ ‡é¢˜æ£€æµ‹'; +$wb['virus_quarantine_to_txt'] = '转å‘病毒邮件至邮箱'; +$wb['spam_quarantine_to_txt'] = '转å‘垃圾邮件至邮箱'; +$wb['banned_quarantine_to_txt'] = '转å‘è¿ç¦æ–‡ä»¶è‡³é‚®ç®±'; +$wb['bad_header_quarantine_to_txt'] = '转å‘ä¸è‰¯æ ‡é¢˜è‡³é‚®ç®±'; +$wb['clean_quarantine_to_txt'] = '转å‘清æ´é‚®ä»¶è‡³é‚®ç®±'; +$wb['other_quarantine_to_txt'] = '转å‘其他邮件至邮箱'; +$wb['spam_tag_level_txt'] = 'åžƒåœ¾é‚®ä»¶æ ‡ç¾ç‰çº§'; +$wb['spam_tag2_level_txt'] = 'åžƒåœ¾é‚®ä»¶æ ‡ç¾ç‰çº§2'; +$wb['spam_kill_level_txt'] = 'åžƒåœ¾é‚®ä»¶åˆ é™¤ç‰çº§'; +$wb['spam_dsn_cutoff_level_txt'] = '垃圾邮件 DSN 截æ¢ç‰çº§'; +$wb['spam_quarantine_cutoff_level_txt'] = '垃圾邮件隔离截æ¢ç‰çº§'; +$wb['spam_modifies_subj_txt'] = '垃圾邮件更改主题'; +$wb['spam_subject_tag_txt'] = 'åžƒåœ¾é‚®ä»¶ä¸»é¢˜æ ‡è®°'; +$wb['spam_subject_tag2_txt'] = 'åžƒåœ¾é‚®ä»¶ä¸»é¢˜æ ‡è®°2'; +$wb['addr_extension_virus_txt'] = '病毒地å€æ‰©å±•'; +$wb['addr_extension_spam_txt'] = '垃圾邮件地å€æ‰©å±•'; +$wb['addr_extension_banned_txt'] = 'è¿ç¦æ–‡ä»¶åœ°å€æ‰©å±•'; +$wb['addr_extension_bad_header_txt'] = 'ä¸è‰¯æ ‡é¢˜åœ°å€æ‰©å±•'; +$wb['warnvirusrecip_txt'] = 'è¦å‘Šç—…毒收件人'; +$wb['warnbannedrecip_txt'] = 'è¦å‘Šè¿ç¦æ–‡ä»¶æ”¶ä»¶äºº'; +$wb['warnbadhrecip_txt'] = 'è¦å‘Šä¸è‰¯æ ‡é¢˜æ”¶ä»¶äºº'; +$wb['newvirus_admin_txt'] = '新病毒管ç†è€…'; +$wb['virus_admin_txt'] = '病毒管ç†è€…'; +$wb['banned_admin_txt'] = 'è¿ç¦æ–‡ä»¶ç®¡ç†è€…'; +$wb['bad_header_admin_txt'] = 'ä¸è‰¯æ ‡é¢˜ç®¡ç†è€…'; +$wb['spam_admin_txt'] = '垃圾邮件管ç†è€…'; +$wb['message_size_limit_txt'] = '邮件大å°é™åˆ¶'; +$wb['banned_rulenames_txt'] = 'ç¦æ¢è§„则å称'; +$wb['rspamd_greylisting_txt'] = '使用ç°åå•'; +$wb['rspamd_spam_greylisting_level_txt'] = 'ç°åå•çº§åˆ«'; +$wb['rspamd_spam_tag_level_txt'] = 'æ ‡è®°ä¸ºåžƒåœ¾é‚®ä»¶çº§åˆ«'; +$wb['rspamd_spam_tag_method_txt'] = 'æ ‡è®°ä¸ºåžƒåœ¾é‚®ä»¶çš„æ–¹å¼'; +$wb['rspamd_spam_kill_level_txt'] = 'æ ‡è®°ä¸ºåžƒåœ¾é‚®ä»¶çš„æ‹’ç»çº§åˆ«'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; + +$wb['amavis_settings_txt'] = '设置'; +$wb['amavis_taglevel_txt'] = 'æ ‡è®°çº§åˆ«'; +$wb['amavis_quarantine_txt'] = '隔离'; +$wb['amavis_other_txt'] = '其他'; +$wb['add_header_txt'] = 'æ·»åŠ é‚®ä»¶å¤´'; +$wb['rewrite_subject_txt'] = 'é‡å†™ä¸»é¢˜'; diff --git a/interface/web/mail/lib/lang/cn_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/cn_spamfilter_policy_list.lng new file mode 100644 index 0000000000..356d7321ed --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_policy_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '垃圾邮件过滤ç–ç•¥'; +$wb['policy_name_txt'] = 'å称'; +$wb['virus_lover_txt'] = '病毒爱好者'; +$wb['spam_lover_txt'] = '垃圾邮件爱好者'; +$wb['banned_files_lover_txt'] = 'è¿ç¦æ–‡ä»¶çˆ±å¥½è€…'; +$wb['bad_header_lover_txt'] = 'ä¸è‰¯æ ‡é¢˜çˆ±å¥½è€…'; +$wb['add_new_record_txt'] = 'æ·»åŠ ç–略记录'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_users.lng b/interface/web/mail/lib/lang/cn_spamfilter_users.lng new file mode 100644 index 0000000000..c2e285cffe --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_users.lng @@ -0,0 +1,13 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['priority_txt'] = '优先级'; +$wb['policy_id_txt'] = 'ç–ç•¥'; +$wb['email_txt'] = '邮件(模å¼ï¼‰'; +$wb['fullname_txt'] = 'å称'; +$wb['local_txt'] = '本地'; +$wb['email_error_notempty'] = '邮件地å€ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['fullname_error_notempty'] = 'å称ä¸èƒ½ä¸ºç©ºã€‚'; +$wb['10 - highest'] = '10 - 最高'; +$wb['5 - medium'] = '5 - ä¸ç‰'; +$wb['1 - lowest'] = '1 - 最低'; +$wb['inherit_policy'] = '- 继承域设置 -'; diff --git a/interface/web/mail/lib/lang/cn_spamfilter_users_list.lng b/interface/web/mail/lib/lang/cn_spamfilter_users_list.lng new file mode 100644 index 0000000000..62bc4568d3 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_users_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '垃圾邮件过滤用户'; +$wb['local_txt'] = '本地'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['priority_txt'] = '优先级'; +$wb['policy_id_txt'] = 'ç–ç•¥'; +$wb['fullname_txt'] = '姓å'; +$wb['email_txt'] = '电å邮件'; +$wb['add_new_record_txt'] = 'æ·»åŠ åžƒåœ¾é‚®ä»¶è¿‡æ»¤ç”¨æˆ·'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/cn_spamfilter_whitelist.lng new file mode 100644 index 0000000000..0f4aba4762 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_whitelist.lng @@ -0,0 +1,12 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['wb_txt'] = 'wb'; +$wb['rid_txt'] = '用户'; +$wb['email_txt'] = '邮箱'; +$wb['priority_txt'] = '优先级'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['limit_spamfilter_wblist_txt'] = '您的å¸æˆ·çš„白åå•æˆ–黑åå•è®°å½•å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['10 - highest'] = '10 - 最高'; +$wb['5 - medium'] = '5 - ä¸ç‰'; +$wb['1 - lowest'] = '1 - 最低'; +?> diff --git a/interface/web/mail/lib/lang/cn_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/cn_spamfilter_whitelist_list.lng new file mode 100644 index 0000000000..1f4af55127 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_spamfilter_whitelist_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = '垃圾邮件过滤白åå•'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['priority_txt'] = '优先级'; +$wb['rid_txt'] = '用户'; +$wb['email_txt'] = 'åŠ å…¥ç™½åå•çš„邮件'; +$wb['add_new_record_txt'] = 'æ·»åŠ ç™½åå•è®°å½•'; +?> diff --git a/interface/web/mail/lib/lang/cn_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cn_user_quota_stats_list.lng new file mode 100644 index 0000000000..91f58605ae --- /dev/null +++ b/interface/web/mail/lib/lang/cn_user_quota_stats_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '邮箱é…é¢'; +$wb['quota_txt'] = 'é…é¢'; +$wb['name_txt'] = 'å称'; +$wb['email_txt'] = '电å邮件地å€'; +$wb['used_txt'] = '已使用空间'; +$wb['percentage_txt'] = '已用 %'; +?> diff --git a/interface/web/mail/lib/lang/cn_xmpp_domain.lng b/interface/web/mail/lib/lang/cn_xmpp_domain.lng new file mode 100644 index 0000000000..b094c92862 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_xmpp_domain.lng @@ -0,0 +1,62 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['client_group_id_txt'] = '客户'; +$wb['domain_txt'] = '域å'; +$wb['type_txt'] = '类型'; +$wb['active_txt'] = '激活'; +$wb['client_txt'] = '客户'; +$wb['management_method_txt'] = '用户账户管ç†'; +$wb['public_registration_txt'] = 'å¯ç”¨å…¬å…±æ³¨å†Œ'; +$wb['registration_url_txt'] = '注册 URL'; +$wb['registration_message_txt'] = '注册信æ¯'; +$wb['domain_admins_txt'] = '域管ç†å‘˜ (JIDs)'; +$wb['use_pubsub_txt'] = 'å¯ç”¨å‘布/订阅'; +$wb['use_proxy_txt'] = 'å¯ç”¨å—节æµä»£ç†'; +$wb['use_anon_host_txt'] = 'å¯ç”¨åŒ¿å主机'; +$wb['use_vjud_txt'] = 'å¯ç”¨ VJUD 用户目录'; +$wb['vjud_opt_mode_txt'] = 'VJUD Opt 模å¼'; +$wb['use_muc_host_txt'] = 'å¯ç”¨å¤šç”¨æˆ·èŠå¤©å®¤'; +$wb['muc_name_txt'] = 'MUC æœåŠ¡å‘现ä¸çš„å称'; +$wb['muc_restrict_room_creation_txt'] = '创建èŠå¤©å®¤çš„æƒé™'; +$wb['muc_admins_txt'] = 'MUC 管ç†å‘˜ (JIDs)'; +$wb['use_pastebin_txt'] = 'å¯ç”¨ Pastebin'; +$wb['pastebin_expire_after_txt'] = '过期时间 (å°æ—¶)'; +$wb['pastebin_trigger_txt'] = 'Pastebin 触å‘'; +$wb['use_http_archive_txt'] = 'å¯ç”¨ HTTP èŠå¤©å®¤å˜æ¡£'; +$wb['http_archive_show_join_txt'] = '在å˜æ¡£ä¸æ˜¾ç¤ºåŠ 入信æ¯'; +$wb['http_archive_show_status_txt'] = '在å˜æ¡£ä¸æ˜¾ç¤ºçŠ¶æ€å˜åŒ–'; +$wb['use_status_host_txt'] = 'å¯ç”¨ XML 状æ€ä¸»æœº'; +$wb['cant_change_domainname_txt'] = '现有的 XMPP 域åä¸èƒ½æ›´æ”¹åŸŸå。'; +$wb['about_registration_url_txt'] = 'é“¾æŽ¥åˆ°æ‚¨çš„æ³¨å†Œè¡¨æ ¼ã€‚'; +$wb['about_registration_message_txt'] = '关于您的账户注册æµç¨‹çš„说明。'; +$wb['no_corresponding_maildomain_txt'] = '找ä¸åˆ°ä¸Žç”¨æˆ·ç®¡ç†ç›¸å¯¹åº”的邮件域。请先创建邮件域。'; +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_key_txt'] = 'SSL 密钥'; +$wb['ssl_request_txt'] = 'SSL 请求'; +$wb['ssl_cert_txt'] = 'SSL è¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSL ä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSL æ“作'; +$wb['ssl_email_txt'] = '电å邮件地å€'; +$wb['ssl_txt'] = 'SSL'; +$wb['error_ssl_state_empty'] = 'çœä»½/州为空。'; +$wb['error_ssl_locality_empty'] = '城市为空。'; +$wb['error_ssl_organisation_empty'] = 'SSL组织为空。'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL组织å•ä½ä¸ºç©ºã€‚'; +$wb['error_ssl_country_empty'] = 'SSL国家为空。'; +$wb['error_ssl_cert_empty'] = 'SSLè¯ä¹¦å—段为空。'; +$wb['ssl_state_error_regex'] = 'æ— æ•ˆçš„SSL状æ€ã€‚有效å—符为:a-zã€0-9å’Œ.,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'æ— æ•ˆçš„SSLä½ç½®ã€‚有效å—符为:a-zã€0-9å’Œ.,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'æ— æ•ˆçš„SSL组织。有效å—符为:a-zã€0-9å’Œ.,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'æ— æ•ˆçš„SSL组织å•ä½ã€‚有效å—符为:a-zã€0-9å’Œ.,-_&äöüÄÖÜ'; +$wb['ssl_country_error_regex'] = 'æ— æ•ˆçš„SSL国家。有效å—符为:A-Z'; +$wb['none_txt'] = 'æ— '; +$wb['save_certificate_txt'] = 'ä¿å˜è¯ä¹¦'; +$wb['create_certificate_txt'] = '创建è¯ä¹¦'; +$wb['delete_certificate_txt'] = 'åˆ é™¤è¯ä¹¦'; +$wb['ssl_error_isemail'] = '请为SSLè¯ä¹¦ç”Ÿæˆè¾“入一个有效的电å邮件地å€'; +$wb['limit_xmppdomain_txt'] = '您的å¸æˆ·çš„XMPP域的最大数é‡å·²è¾¾åˆ°ã€‚'; +?> diff --git a/interface/web/mail/lib/lang/cn_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/cn_xmpp_domain_admin_list.lng new file mode 100644 index 0000000000..ed06bd1387 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_xmpp_domain_admin_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'XMPP域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åŸŸå'; +$wb['active_txt'] = '激活'; +$wb['sys_groupid_txt'] = '客户'; +?> diff --git a/interface/web/mail/lib/lang/cn_xmpp_domain_list.lng b/interface/web/mail/lib/lang/cn_xmpp_domain_list.lng new file mode 100644 index 0000000000..ba5e21824c --- /dev/null +++ b/interface/web/mail/lib/lang/cn_xmpp_domain_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'XMPP域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åŸŸå'; +$wb['active_txt'] = '激活'; +?> diff --git a/interface/web/mail/lib/lang/cn_xmpp_user.lng b/interface/web/mail/lib/lang/cn_xmpp_user.lng new file mode 100644 index 0000000000..5b88ff175f --- /dev/null +++ b/interface/web/mail/lib/lang/cn_xmpp_user.lng @@ -0,0 +1,15 @@ +<?php +$wb['list_head_txt'] = 'XMPP 用户账户'; +$wb['jid_txt'] = 'Jabber ID'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['cryptpwd_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['error_no_pwd'] = '密ç 为空。'; +$wb['password_txt'] = '密ç '; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸ä¸€è‡´ã€‚'; +$wb['password_match_txt'] = '两次输入的密ç 一致。'; +$wb['no_domain_perm'] = '您没有该域åçš„æƒé™ã€‚'; +$wb['limit_xmpp_user_txt'] = '您的账户已达到最大 XMPP 账户数。'; +?> diff --git a/interface/web/mail/lib/lang/cn_xmpp_user_list.lng b/interface/web/mail/lib/lang/cn_xmpp_user_list.lng new file mode 100644 index 0000000000..60de5e2579 --- /dev/null +++ b/interface/web/mail/lib/lang/cn_xmpp_user_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'XMPP 用户账å·'; +$wb['jid_txt'] = 'Jabber ID'; +$wb['is_domain_admin_txt'] = '域管ç†å‘˜'; +$wb['is_muc_admin_txt'] = 'MUC 管ç†å‘˜'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç”¨æˆ·'; +$wb['active_txt'] = '激活'; +?> diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng index b393f56798..6f0d48ebd2 100644 --- a/interface/web/mail/lib/lang/cz.lng +++ b/interface/web/mail/lib/lang/cz.lng @@ -47,3 +47,4 @@ $wb['Statistics'] = 'Statistiky'; $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky'; $wb['add_header_txt'] = 'Do záhlavà (pÅ™idat \"X-Spam: Yes\")'; $wb['rewrite_subject_txt'] = 'Do pÅ™edmÄ›tu (pÅ™idat \"***SPAM***\" na zaÄátek)'; +$wb['inactive'] = 'inactive'; diff --git a/interface/web/mail/lib/lang/de.lng b/interface/web/mail/lib/lang/de.lng index e0f1e7cd3b..69067b5a52 100644 --- a/interface/web/mail/lib/lang/de.lng +++ b/interface/web/mail/lib/lang/de.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/dk.lng b/interface/web/mail/lib/lang/dk.lng index 3fe8d568ae..2c0789a3d0 100644 --- a/interface/web/mail/lib/lang/dk.lng +++ b/interface/web/mail/lib/lang/dk.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/el.lng b/interface/web/mail/lib/lang/el.lng index cb873eac2a..3374233feb 100644 --- a/interface/web/mail/lib/lang/el.lng +++ b/interface/web/mail/lib/lang/el.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/en.lng b/interface/web/mail/lib/lang/en.lng index c251fc1b2b..d90e575be1 100644 --- a/interface/web/mail/lib/lang/en.lng +++ b/interface/web/mail/lib/lang/en.lng @@ -50,3 +50,4 @@ $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)'; +$wb['inactive'] = 'inactive'; diff --git a/interface/web/mail/lib/lang/es.lng b/interface/web/mail/lib/lang/es.lng index fdf4e5b00d..982a51d567 100644 --- a/interface/web/mail/lib/lang/es.lng +++ b/interface/web/mail/lib/lang/es.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/fi.lng b/interface/web/mail/lib/lang/fi.lng index 78a4328336..dc5314a38f 100644 --- a/interface/web/mail/lib/lang/fi.lng +++ b/interface/web/mail/lib/lang/fi.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/fr.lng b/interface/web/mail/lib/lang/fr.lng index a70f080295..539c2a3c53 100644 --- a/interface/web/mail/lib/lang/fr.lng +++ b/interface/web/mail/lib/lang/fr.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/hr.lng b/interface/web/mail/lib/lang/hr.lng index 877f8827f5..14649665cd 100644 --- a/interface/web/mail/lib/lang/hr.lng +++ b/interface/web/mail/lib/lang/hr.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/hu.lng b/interface/web/mail/lib/lang/hu.lng index f3ffa4aef0..688d6d0c25 100644 --- a/interface/web/mail/lib/lang/hu.lng +++ b/interface/web/mail/lib/lang/hu.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/id.lng b/interface/web/mail/lib/lang/id.lng index 3a2b5dfe45..8a6931ce70 100644 --- a/interface/web/mail/lib/lang/id.lng +++ b/interface/web/mail/lib/lang/id.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/it.lng b/interface/web/mail/lib/lang/it.lng index 15bc87ea3f..fcd15c2b1b 100644 --- a/interface/web/mail/lib/lang/it.lng +++ b/interface/web/mail/lib/lang/it.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/ja.lng b/interface/web/mail/lib/lang/ja.lng index 818a3ed126..dddd49c87b 100644 --- a/interface/web/mail/lib/lang/ja.lng +++ b/interface/web/mail/lib/lang/ja.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/nl.lng b/interface/web/mail/lib/lang/nl.lng index 6664809b46..19272584bd 100644 --- a/interface/web/mail/lib/lang/nl.lng +++ b/interface/web/mail/lib/lang/nl.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/pl.lng b/interface/web/mail/lib/lang/pl.lng index 17b7701992..c6050a6fe2 100644 --- a/interface/web/mail/lib/lang/pl.lng +++ b/interface/web/mail/lib/lang/pl.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/pt.lng b/interface/web/mail/lib/lang/pt.lng index d47eb6183b..1fbc55240a 100644 --- a/interface/web/mail/lib/lang/pt.lng +++ b/interface/web/mail/lib/lang/pt.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/ro.lng b/interface/web/mail/lib/lang/ro.lng index 0c0e85995e..51c4bdbdc2 100644 --- a/interface/web/mail/lib/lang/ro.lng +++ b/interface/web/mail/lib/lang/ro.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/ru.lng b/interface/web/mail/lib/lang/ru.lng index 1b7995e024..8c8a0c3c54 100644 --- a/interface/web/mail/lib/lang/ru.lng +++ b/interface/web/mail/lib/lang/ru.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/se.lng b/interface/web/mail/lib/lang/se.lng index 7a415aa901..88689b0d79 100644 --- a/interface/web/mail/lib/lang/se.lng +++ b/interface/web/mail/lib/lang/se.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/sk.lng b/interface/web/mail/lib/lang/sk.lng index 7b00f9d52c..ddef1ae73d 100644 --- a/interface/web/mail/lib/lang/sk.lng +++ b/interface/web/mail/lib/lang/sk.lng @@ -47,4 +47,5 @@ $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)'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/lib/lang/tr.lng b/interface/web/mail/lib/lang/tr.lng index 52d1868b3e..e574f999d1 100644 --- a/interface/web/mail/lib/lang/tr.lng +++ b/interface/web/mail/lib/lang/tr.lng @@ -48,4 +48,5 @@ $wb['Global Filters'] = 'Genel Süzgeçler'; $wb['Domain Alias'] = 'Takma Etki Alanı'; $wb['Relay Recipients'] = 'Aktarılan Alıcılar'; $wb['Mailbox quota'] = 'E-posta Kutusu Kotası'; +$wb['inactive'] = 'inactive'; ?> diff --git a/interface/web/mail/list/mail_blacklist.list.php b/interface/web/mail/list/mail_blacklist.list.php index d51f31a7d8..bd6403092e 100644 --- a/interface/web/mail/list/mail_blacklist.list.php +++ b/interface/web/mail/list/mail_blacklist.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_content_filter.list.php b/interface/web/mail/list/mail_content_filter.list.php index 53767a153c..b5c1e09690 100644 --- a/interface/web/mail/list/mail_content_filter.list.php +++ b/interface/web/mail/list/mail_content_filter.list.php @@ -60,11 +60,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_domain.list.php b/interface/web/mail/list/mail_domain.list.php index 5304ab6226..dd6067bb3c 100644 --- a/interface/web/mail/list/mail_domain.list.php +++ b/interface/web/mail/list/mail_domain.list.php @@ -83,7 +83,7 @@ if($_SESSION['s']['user']['typ'] == 'admin') { $liste["item"][] = array( 'field' => "server_id", 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", + 'op' => "=", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', diff --git a/interface/web/mail/list/mail_get.list.php b/interface/web/mail/list/mail_get.list.php index 0a8c0dcc88..71f5fd16fd 100644 --- a/interface/web/mail/list/mail_get.list.php +++ b/interface/web/mail/list/mail_get.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_relay_domain.list.php b/interface/web/mail/list/mail_relay_domain.list.php index a6ff783482..70b744d004 100644 --- a/interface/web/mail/list/mail_relay_domain.list.php +++ b/interface/web/mail/list/mail_relay_domain.list.php @@ -86,11 +86,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_relay_recipient.list.php b/interface/web/mail/list/mail_relay_recipient.list.php index af00d7c90c..e26a9a632c 100644 --- a/interface/web/mail/list/mail_relay_recipient.list.php +++ b/interface/web/mail/list/mail_relay_recipient.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_spamfilter.list.php b/interface/web/mail/list/mail_spamfilter.list.php index 09d3292bc7..5203a81515 100644 --- a/interface/web/mail/list/mail_spamfilter.list.php +++ b/interface/web/mail/list/mail_spamfilter.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_transport.list.php b/interface/web/mail/list/mail_transport.list.php index 3dd87e1710..a88676ba4a 100644 --- a/interface/web/mail/list/mail_transport.list.php +++ b/interface/web/mail/list/mail_transport.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/mail_whitelist.list.php b/interface/web/mail/list/mail_whitelist.list.php index b4c97f493f..f6aace0b74 100644 --- a/interface/web/mail/list/mail_whitelist.list.php +++ b/interface/web/mail/list/mail_whitelist.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/spamfilter_blacklist.list.php b/interface/web/mail/list/spamfilter_blacklist.list.php index 33e0b433a3..b873c88796 100644 --- a/interface/web/mail/list/spamfilter_blacklist.list.php +++ b/interface/web/mail/list/spamfilter_blacklist.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/mail/list/spamfilter_users.list.php b/interface/web/mail/list/spamfilter_users.list.php index d952640283..9279f05c46 100644 --- a/interface/web/mail/list/spamfilter_users.list.php +++ b/interface/web/mail/list/spamfilter_users.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "local", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', @@ -82,11 +82,11 @@ $liste["item"][] = array( 'field' => "priority", 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10)); $liste["item"][] = array( 'field' => "policy_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT id,policy_name FROM spamfilter_policy WHERE {AUTHSQL} ORDER BY policy_name', 'keyfield'=> 'id', diff --git a/interface/web/mail/list/spamfilter_whitelist.list.php b/interface/web/mail/list/spamfilter_whitelist.list.php index 0cd3333e69..d85ffc1914 100644 --- a/interface/web/mail/list/spamfilter_whitelist.list.php +++ b/interface/web/mail/list/spamfilter_whitelist.list.php @@ -58,11 +58,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', @@ -82,11 +82,11 @@ $liste["item"][] = array( 'field' => "priority", 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10)); $liste["item"][] = array( 'field' => "rid", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT id,email FROM spamfilter_users WHERE {AUTHSQL} ORDER BY email', 'keyfield'=> 'id', diff --git a/interface/web/mail/list/xmpp_domain.list.php b/interface/web/mail/list/xmpp_domain.list.php index 191508db39..f0a29a043b 100644 --- a/interface/web/mail/list/xmpp_domain.list.php +++ b/interface/web/mail/list/xmpp_domain.list.php @@ -82,7 +82,7 @@ if($_SESSION['s']['user']['typ'] == 'admin') { $liste["item"][] = array( 'field' => "server_id", 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", + 'op' => "=", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index 8856ccc8d8..e435f6ab96 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -91,14 +91,15 @@ 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, active 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)) { foreach( $domains as $domain) { $domain['domain'] = $app->functions->idn_decode($domain['domain']); $selected = ($domain["domain"] == @$email_parts[1])?'SELECTED':''; - $domain_select .= "<option value='" . $app->functions->htmlentities($domain['domain']) . "' $selected>" . $app->functions->htmlentities($domain['domain']) . "</option>\r\n"; + $domain_select .= "<option value='" . $app->functions->htmlentities($domain['domain']) . "' $selected>" . $app->functions->htmlentities($domain['domain']) . + ($domain['active'] == 'n' ? ' (' . $app->lng('inactive') . ')': '') . "</option>\r\n"; } } $app->tpl->setVar("email_domain", $domain_select); diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm index 97c85ba2ef..88d2fb0e23 100644 --- a/interface/web/mail/templates/mail_user_mailbox_edit.htm +++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm @@ -6,7 +6,7 @@ <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='email_txt'}</label> <div class="col-sm-9"> <div class='input-group'> - <input type="text" id="email_local_part" name="email_local_part" value="{tmpl_var name='email_local_part'}" class="form-control" /> + <input type="text" id="email_local_part" name="email_local_part" value="{tmpl_var name='email_local_part'}" class="form-control" onPaste="javascript: e = this; setTimeout(function(){if (/@/.test(e.value)) { parts = e.value.split('@'); $('#email_domain').val(parts.pop()); $('#email_domain').trigger('change'); e.value=parts.pop(); } }, 4);" onChange="javascript: if (/@/.test(this.value)) { parts = this.value.split('@'); $('#email_domain').val(parts.pop()); $('#email_domain').trigger('change'); this.value=parts.pop(); } " /> <span class='input-group-addon'>@</span> <div class='input-group-field'> <select name="email_domain" id="email_domain" class="form-control" style="height:50px;min-width:170px;">{tmpl_var name='email_domain'}</select> diff --git a/interface/web/mailuser/lib/lang/cn.lng b/interface/web/mailuser/lib/lang/cn.lng new file mode 100644 index 0000000000..71df9e621b --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn.lng @@ -0,0 +1,9 @@ +<?php +$wb['Email Account'] = '邮件账å·'; +$wb['Overview'] = '概览'; +$wb['Password'] = '密ç '; +$wb['Autoresponder'] = '自动回å¤'; +$wb['Send copy'] = '抄é€'; +$wb['Spamfilter'] = '垃圾邮件过滤'; +$wb['Email Filters'] = '邮件过滤器'; +?> diff --git a/interface/web/mailuser/lib/lang/cn_index.lng b/interface/web/mailuser/lib/lang/cn_index.lng new file mode 100644 index 0000000000..1bfe800b81 --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_index.lng @@ -0,0 +1,12 @@ +<?php +$wb['page_head_txt'] = '邮箱设置'; +$wb['page_desc_txt'] = '在这里,您å¯ä»¥ç¼–辑电å邮件å¸æˆ·çš„设置。'; +$wb['email_txt'] = '电å邮件地å€'; +$wb['login_txt'] = '登录å'; +$wb['server_address_txt'] = '邮件æœåŠ¡å™¨åœ°å€'; +$wb['cc_txt'] = '抄é€åˆ°ï¼ˆCC)'; +$wb['quota_txt'] = '邮箱大å°'; +$wb['unlimited_txt'] = 'æ— é™åˆ¶'; +$wb['mb_txt'] = 'MB'; +$wb['none_txt'] = 'æ— '; +?> diff --git a/interface/web/mailuser/lib/lang/cn_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/cn_mail_user_autoresponder.lng new file mode 100644 index 0000000000..93481f658f --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_mail_user_autoresponder.lng @@ -0,0 +1,13 @@ +<?php +$wb['mailbox_autoresponder_txt'] = '自动回å¤'; +$wb['autoresponder_subject'] = '外出办公回å¤'; +$wb['autoresponder_text_txt'] = 'æ£æ–‡'; +$wb['autoresponder_txt'] = 'å¯ç”¨'; +$wb['autoresponder_start_date_txt'] = '开始时间'; +$wb['autoresponder_start_date_isfuture'] = '开始时间ä¸èƒ½ä¸ºè¿‡åŽ»æ—¶é—´ã€‚'; +$wb['autoresponder_end_date_txt'] = '结æŸæ—¶é—´'; +$wb['autoresponder_end_date_isgreater'] = '必须设置结æŸæ—¶é—´ï¼Œå¹¶ä¸”结æŸæ—¶é—´å¿…须晚于开始时间。'; +$wb['autoresponder_active'] = 'å¯ç”¨è‡ªåŠ¨å›žå¤'; +$wb['now_txt'] = 'ç«‹å³'; +$wb['autoresponder_subject_txt'] = '主题'; +?> diff --git a/interface/web/mailuser/lib/lang/cn_mail_user_cc.lng b/interface/web/mailuser/lib/lang/cn_mail_user_cc.lng new file mode 100644 index 0000000000..05b24f8674 --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_mail_user_cc.lng @@ -0,0 +1,11 @@ +<?php +$wb['mailbox_cc_txt'] = '抄é€é‚®ä»¶åœ°å€'; +$wb['cc_txt'] = '抄é€ç»™'; +$wb['email_txt'] = '邮件'; +$wb['cc_error_isemail'] = '抄é€é‚®ä»¶åœ°å€æ— 效'; +$wb['email_is_cc_error'] = '邮件地å€å’ŒæŠ„é€é‚®ä»¶åœ°å€ä¸èƒ½ç›¸åŒã€‚'; +$wb['name_optional_txt'] = '(å¯é€‰)'; +$wb['cc_note_txt'] = '(多个邮件地å€è¯·ç”¨é€—å·éš”å¼€)'; +$wb['forward_in_lda_txt'] = '邮件投递时抄é€'; +$wb['tooltip_forward_in_lda_txt'] = '控制是å¦åœ¨æŠ•é€’到邮箱之å‰æˆ–之åŽå°†é‚®ä»¶å‰¯æœ¬è½¬å‘。'; +?> diff --git a/interface/web/mailuser/lib/lang/cn_mail_user_filter.lng b/interface/web/mailuser/lib/lang/cn_mail_user_filter.lng new file mode 100644 index 0000000000..83d1d7a3d5 --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_mail_user_filter.lng @@ -0,0 +1,26 @@ +<?php +$wb['rulename_txt'] = '规则å称'; +$wb['action_txt'] = 'æ“作'; +$wb['target_txt'] = 'ç›®æ ‡æ–‡ä»¶å¤¹'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['rulename_error_empty'] = '规则å称为空。'; +$wb['searchterm_is_empty'] = 'æœç´¢æ¡ä»¶ä¸ºç©ºã€‚'; +$wb['source_txt'] = 'æ¥æº'; +$wb['target_error_regex'] = 'ç›®æ ‡æ–‡ä»¶å¤¹åªèƒ½åŒ…å«ä»¥ä¸‹å—符:a-zã€0-9ã€-ã€.ã€_ã€&ã€/ å’Œ{space}'; +$wb['limit_mailfilter_txt'] = '已达到最大邮箱过滤器数é‡ã€‚'; +$wb['mailbox_filter_txt'] = '邮箱过滤器'; +$wb['subject_txt'] = '主题'; +$wb['from_txt'] = 'å‘件人'; +$wb['to_txt'] = '收件人'; +$wb['list_id_txt'] = '列表ID'; +$wb['contains_txt'] = '包å«'; +$wb['is_txt'] = '是'; +$wb['begins_with_txt'] = '以...开始'; +$wb['ends_with_txt'] = '以...结æŸ'; +$wb['move_to_txt'] = '移动到'; +$wb['regex_txt'] = 'æ£åˆ™åŒ¹é…'; +$wb['delete_txt'] = 'åˆ é™¤'; +$wb['header_txt'] = '邮件头'; +$wb['size_over_txt'] = '邮件大å°è¶…过(KB)'; +$wb['size_under_txt'] = '邮件大å°å°äºŽï¼ˆKB)'; +?> diff --git a/interface/web/mailuser/lib/lang/cn_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/cn_mail_user_filter_list.lng new file mode 100644 index 0000000000..097ed94f1c --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_mail_user_filter_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '邮件过滤规则'; +$wb['rulename_txt'] = 'å称'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°è¿‡æ»¤å™¨'; +$wb['page_txt'] = '页数'; +$wb['page_of_txt'] = '/'; +$wb['delete_confirmation'] = '确定è¦åˆ 除该邮件过滤器å—?'; +?> diff --git a/interface/web/mailuser/lib/lang/cn_mail_user_password.lng b/interface/web/mailuser/lib/lang/cn_mail_user_password.lng new file mode 100644 index 0000000000..f1d7a78c1d --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_mail_user_password.lng @@ -0,0 +1,11 @@ +<?php +$wb['mailbox_password_txt'] = '邮箱密ç '; +$wb['password_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['email_txt'] = '邮件地å€'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸ä¸€è‡´ã€‚'; +$wb['password_match_txt'] = '两次输入的密ç 一致。'; +$wb['password_click_to_set_txt'] = '点击设置'; +?> diff --git a/interface/web/mailuser/lib/lang/cn_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/cn_mail_user_spamfilter.lng new file mode 100644 index 0000000000..0fb4c8d83b --- /dev/null +++ b/interface/web/mailuser/lib/lang/cn_mail_user_spamfilter.lng @@ -0,0 +1,7 @@ +<?php +$wb['mailbox_spamfilter_txt'] = '垃圾邮件过滤器'; +$wb['spamfilter_txt'] = '垃圾邮件过滤器'; +$wb['email_txt'] = '电å邮件'; +$wb['inherit_policy'] = '- 继承域设置 -'; +$wb['policy_txt'] = 'ç–ç•¥'; +?> diff --git a/interface/web/monitor/lib/lang/cn.lng b/interface/web/monitor/lib/lang/cn.lng new file mode 100644 index 0000000000..4300e454ec --- /dev/null +++ b/interface/web/monitor/lib/lang/cn.lng @@ -0,0 +1,168 @@ +<?php +$wb['Server online since'] = 'æœåŠ¡å™¨åœ¨çº¿æ—¶é—´'; +$wb['Users online'] = '在线用户数'; +$wb['System load 1 minute'] = '系统负载 1 分钟'; +$wb['System load 5 minutes'] = '系统负载 5 分钟'; +$wb['System load 15 minutes'] = '系统负载 15 分钟'; +$wb['Server Load'] = 'æœåŠ¡å™¨è´Ÿè½½'; +$wb['Disk usage'] = 'ç£ç›˜ä½¿ç”¨æƒ…况'; +$wb['Memory usage'] = '内å˜ä½¿ç”¨æƒ…况'; +$wb['no_data_serverload_txt'] = 'æš‚æ— æœåŠ¡å™¨è´Ÿè½½æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_memusage_txt'] = 'æš‚æ— å†…å˜ä½¿ç”¨æƒ…况数æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_diskusage_txt'] = 'æš‚æ— ç£ç›˜ä½¿ç”¨æƒ…况数æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_database_size_txt'] = 'æš‚æ— æ•°æ®åº“使用情况数æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_cpuinfo_txt'] = 'æš‚æ— CPU æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_services_txt'] = 'æš‚æ— æœåŠ¡çŠ¶æ€æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_updates_txt'] = 'æš‚æ— æ›´æ–°æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_raid_txt'] = 'æš‚æ— RAID æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_rkhunter_txt'] = 'æš‚æ— RKHunter æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_data_mailq_txt'] = 'æš‚æ— é‚®ä»¶é˜Ÿåˆ—æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['no_logdata_txt'] = 'æš‚æ— æ—¥å¿—æ•°æ®ï¼Œè¯·ç¨åŽå†æŸ¥çœ‹ã€‚'; +$wb['Monitoring'] = '监控'; +$wb['Server to Monitor'] = 'è¦ç›‘控的æœåŠ¡å™¨'; +$wb['Logfiles'] = '日志文件'; +$wb['Status of services'] = 'æœåŠ¡çŠ¶æ€'; +$wb['No Refresh'] = 'ä¸åˆ·æ–°'; +$wb['minutes'] = '分钟'; +$wb['Overview'] = '总览'; +$wb['System State (All Servers)'] = '系统状æ€ï¼ˆæ‰€æœ‰æœåŠ¡å™¨ï¼‰'; +$wb['Hardware-Information'] = '硬件信æ¯'; +$wb['CPU info'] = 'CPU ä¿¡æ¯'; +$wb['Server State'] = 'æœåŠ¡å™¨çŠ¶æ€'; +$wb['Update State'] = '更新状æ€'; +$wb['RAID state'] = 'RAID 状æ€'; +$wb['Server load'] = 'æœåŠ¡å™¨è´Ÿè½½'; +$wb['Disk usage'] = 'ç£ç›˜ä½¿ç”¨æƒ…况'; +$wb['Memory usage'] = '内å˜ä½¿ç”¨æƒ…况'; +$wb['Services'] = 'æœåŠ¡'; +$wb['Mail-Queue'] = '邮件队列'; +$wb['Mail-Log'] = '邮件日志'; +$wb['Mail warn-Log'] = '邮件è¦å‘Šæ—¥å¿—'; +$wb['Mail err-Log'] = '邮件错误日志'; +$wb['System-Log'] = '系统日志'; +$wb['ISPC Cron-Log'] = 'ISPC Cron 日志'; +$wb['Freshclam-Log'] = 'Freshclam 日志'; +$wb['Clamav-Log'] = 'Clamav 日志'; +$wb['ISPConfig-Log'] = 'ISPConfig日志'; +$wb['RKHunter-Log'] = 'RKHunter日志'; +$wb['Jobqueue'] = '作业队列'; +$wb['Data Log History'] = 'æ•°æ®æ—¥å¿—历å²è®°å½•'; +$wb['fail2ban-Log'] = 'fail2ban日志'; +$wb['MongoDB-Log'] = 'MongoDB日志'; +$wb['IPTables'] = 'IPTables'; +$wb['OpenVz VE BeanCounter'] = 'OpenVz VE BeanCounter'; +$wb['monitor_general_serverstate_txt'] = 'æœåŠ¡å™¨çŠ¶æ€'; +$wb['monitor_general_systemstate_txt'] = '系统状æ€'; +$wb['monitor_diskusage_filesystem_txt'] = '文件系统'; +$wb['monitor_diskusage_type_txt'] = '类型'; +$wb['monitor_diskusage_size_txt'] = '大å°'; +$wb['monitor_diskusage_used_txt'] = '已用'; +$wb['monitor_diskusage_available_txt'] = 'å¯ç”¨'; +$wb['monitor_diskusage_usage_txt'] = '使用率%'; +$wb['monitor_diskusage_mounted_txt'] = '挂载到'; +$wb['monitor_database_name_txt'] = 'æ•°æ®åº“'; +$wb['monitor_database_size_txt'] = '大å°'; +$wb['monitor_database_client_txt'] = '客户'; +$wb['monitor_database_domain_txt'] = '域å'; +$wb['monitor_logs_mail_txt'] = '邮件 - 日志'; +$wb['monitor_logs_mailwarn_txt'] = '邮件 - è¦å‘Šæ—¥å¿—'; +$wb['monitor_logs_mailerr_txt'] = '邮件 - 错误日志'; +$wb['monitor_logs_messages_txt'] = 'ç³»ç»Ÿæ¶ˆæ¯ - 日志'; +$wb['monitor_logs_ispccron_txt'] = 'ISPConfig计划任务 - 日志'; +$wb['monitor_logs_letsencrypt_txt'] = 'Let\'s Encrypt - 日志'; +$wb['monitor_logs_freshclam_txt'] = 'Freshclam - 日志'; +$wb['monitor_logs_clamav_txt'] = 'ClamAV - 日志'; +$wb['monitor_logs_ispc_txt'] = 'ISPConfig - 日志'; +$wb['monitor_nosupportedraid1_txt'] = 'ç›®å‰æˆ‘们支æŒ"mdadm"或"mpt-status"æ¥ç›‘控RAID。<br>在您的æœåŠ¡å™¨ä¸Šæˆ‘们找ä¸åˆ°ä»»ä½•ä¸€ä¸ªã€‚<br><br>è¿™æ„味ç€æˆ‘ä»¬çŽ°åœ¨æ— æ³•æ”¯æŒæ‚¨çš„RAID。'; +$wb['monitor_norkhunter_txt'] = 'RKHunteræœªå®‰è£…ï¼Œå› æ¤æ²¡æœ‰æ—¥å¿—æ•°æ®'; +$wb['monitor_serverstate_server_txt'] = 'æœåŠ¡å™¨'; +$wb['monitor_serverstate_kernel_txt'] = 'å†…æ ¸'; +$wb['monitor_serverstate_state_txt'] = '状æ€'; +$wb['monitor_serverstate_unknown_txt'] = '未知'; +$wb['monitor_serverstate_info_txt'] = 'ä¿¡æ¯'; +$wb['monitor_serverstate_warning_txt'] = 'è¦å‘Š'; +$wb['monitor_serverstate_critical_txt'] = '严é‡'; +$wb['monitor_serverstate_error_txt'] = '错误'; +$wb['monitor_serverstate_moreinfo_txt'] = '更多信æ¯...'; +$wb['monitor_serverstate_more_txt'] = '更多...'; +$wb['monitor_serverstate_fclamok_txt'] = '您的病毒防护æ£å¸¸'; +$wb['monitor_serverstate_fclamoutdated_txt'] = '您的病毒防护已过时ï¼'; +$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam:???'; +$wb['monitor_serverstate_hdok_txt'] = '您的硬盘空间状æ€æ£å¸¸'; +$wb['monitor_serverstate_hdgoingfull_txt'] = '您的硬盘空间å³å°†æ»¡'; +$wb['monitor_serverstate_hdnearlyfull_txt'] = '您的硬盘空间接近满'; +$wb['monitor_serverstate_hdveryfull_txt'] = '您的硬盘空间已ç»éžå¸¸æ»¡'; +$wb['monitor_serverstate_hdfull_txt'] = '您的硬盘已没有å¯ç”¨ç©ºé—´'; +$wb['monitor_serverstate_hdunknown_txt'] = '硬盘:???'; +$wb['monitor_serverstate_listok_txt'] = 'æ£å¸¸'; +$wb['monitor_serverstate_listinfo_txt'] = 'ä¿¡æ¯'; +$wb['monitor_serverstate_listwarning_txt'] = 'è¦å‘Š'; +$wb['monitor_serverstate_listcritical_txt'] = '严é‡'; +$wb['monitor_serverstate_listerror_txt'] = '错误'; +$wb['monitor_serverstate_listunknown_txt'] = '未知'; +$wb['monitor_serverstate_loadok_txt'] = '您的æœåŠ¡å™¨è´Ÿè½½æ£å¸¸'; +$wb['monitor_serverstate_loadheavy_txt'] = '您的æœåŠ¡å™¨è´Ÿè½½è¾ƒé‡'; +$wb['monitor_serverstate_loadhigh_txt'] = '您的æœåŠ¡å™¨è´Ÿè½½é«˜'; +$wb['monitor_serverstate_loaghigher_txt'] = '您的æœåŠ¡å™¨è´Ÿè½½æ›´é«˜'; +$wb['monitor_serverstate_loadhighest_txt'] = '您的æœåŠ¡å™¨è´Ÿè½½æœ€é«˜'; +$wb['monitor_serverstate_loadunknown_txt'] = 'æœåŠ¡å™¨è´Ÿè½½ï¼šï¼Ÿï¼Ÿï¼Ÿ'; +$wb['monitor_serverstate_mailqok_txt'] = '您的邮件队列负载æ£å¸¸'; +$wb['monitor_serverstate_mailqheavy_txt'] = '您的邮件队列负载较é‡'; +$wb['monitor_serverstate_mailqhigh_txt'] = '您的邮件队列负载高'; +$wb['monitor_serverstate_mailqhigher_txt'] = '您的邮件队列负载更高'; +$wb['monitor_serverstate_mailqhighest_txt'] = '您的邮件队列负载最高'; +$wb['monitor_serverstate_mailqunknown_txt'] = '邮件队列:???'; +$wb['monitor_serverstate_raidok_txt'] = '您的 RAID æ£å¸¸'; +$wb['monitor_serverstate_raidresync_txt'] = '您的 RAID æ£åœ¨é‡æ–°åŒæ¥'; +$wb['monitor_serverstate_raidfault_txt'] = '您的 RAID 有一个故障ç£ç›˜ï¼Œè¯·å°½å¿«æ›´æ¢ï¼'; +$wb['monitor_serverstate_raiderror_txt'] = '您的 RAID å·²ç»æ— 法工作'; +$wb['monitor_serverstate_raidunknown_txt'] = 'RAID 状æ€: ???'; +$wb['monitor_serverstate_servicesonline_txt'] = '所有需è¦çš„æœåŠ¡éƒ½å·²ä¸Šçº¿'; +$wb['monitor_serverstate_servicesoffline_txt'] = '一个或多个需è¦çš„æœåŠ¡å·²ä¸‹çº¿'; +$wb['monitor_serverstate_servicesunknown_txt'] = 'æœåŠ¡: ???'; +$wb['monitor_serverstate_syslogok_txt'] = '系统日志状æ€è‰¯å¥½'; +$wb['monitor_serverstate_syslogwarning_txt'] = '您的系统日志ä¸æœ‰ä¸€äº›è¦å‘Š'; +$wb['monitor_serverstate_syslogerror_txt'] = '您的系统日志ä¸æœ‰é”™è¯¯'; +$wb['monitor_serverstate_syslogunknown_txt'] = '系统日志: ???'; +$wb['monitor_serverstate_updatesok_txt'] = '您的系统已是最新的'; +$wb['monitor_serverstate_updatesneeded_txt'] = '有一个或多个组件需è¦æ›´æ–°'; +$wb['monitor_serverstate_updatesunknown_txt'] = '系统更新: ???'; +$wb['monitor_serverstate_beancounterok_txt'] = 'beancounter 状æ€è‰¯å¥½'; +$wb['monitor_serverstate_beancounterinfo_txt'] = 'beancounter ä¸æœ‰ä¸€äº›æ•…éšœ'; +$wb['monitor_serverstate_beancounterwarning_txt'] = 'beancounter ä¸æœ‰ä¸€äº›æ•…éšœ'; +$wb['monitor_serverstate_beancountercritical_txt'] = 'beancounter ä¸æœ‰å¾ˆå¤šæ•…éšœ'; +$wb['monitor_serverstate_beancountererror_txt'] = 'beancounter ä¸æœ‰å¤ªå¤šæ•…éšœ'; +$wb['monitor_services_online_txt'] = '上线'; +$wb['monitor_services_offline_txt'] = '下线'; +$wb['monitor_services_web_txt'] = 'Web æœåŠ¡å™¨:'; +$wb['monitor_services_ftp_txt'] = 'FTP æœåŠ¡å™¨:'; +$wb['monitor_services_smtp_txt'] = 'SMTP æœåŠ¡å™¨:'; +$wb['monitor_services_pop_txt'] = 'POP3 æœåŠ¡å™¨:'; +$wb['monitor_services_imap_txt'] = 'IMAP æœåŠ¡å™¨:'; +$wb['monitor_services_mydns_txt'] = 'DNS-æœåŠ¡å™¨:'; +$wb['monitor_services_mongodb_txt'] = 'MongoDB æœåŠ¡å™¨:'; +$wb['monitor_services_mysql_txt'] = 'MySQL æœåŠ¡å™¨:'; +$wb['monitor_settings_datafromdate_txt'] = 'æ•°æ®æ¥è‡ª: '; +$wb['monitor_settings_datetimeformat_txt'] = 'Y-m-d H:i'; +$wb['monitor_settings_refreshsq_txt'] = '刷新顺åº:'; +$wb['monitor_settings_server_txt'] = 'æœåŠ¡å™¨'; +$wb['monitor_title_cpuinfo_txt'] = 'CPU ä¿¡æ¯'; +$wb['monitor_title_updatestate_txt'] = '更新状æ€'; +$wb['monitor_title_mailq_txt'] = '邮件队列'; +$wb['monitor_title_raidstate_txt'] = 'RAID 状æ€'; +$wb['monitor_title_rkhunterlog_txt'] = 'RKHunter 日志'; +$wb['monitor_title_fail2ban_txt'] = 'Fail2Ban 日志'; +$wb['monitor_title_mongodb_txt'] = 'MongoDB 日志'; +$wb['monitor_title_iptables_txt'] = 'IPTables 规则'; +$wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter'; +$wb['monitor_updates_nosupport_txt'] = 'ä¸æ”¯æŒæ¤ç›‘控的 Linux å‘行版'; +$wb['monitor_beancounter_nosupport_txt'] = 'æ¤æœåŠ¡å™¨ä¸æ˜¯ OpenVz VE,没有 BeanCounter ä¿¡æ¯'; +$wb['Monit'] = '监控'; +$wb['no_monit_url_defined_txt'] = '未定义 监控 URL。'; +$wb['no_permissions_to_view_monit_txt'] = '您没有访问 监控 çš„æƒé™ã€‚'; +$wb['Munin'] = 'Munin'; +$wb['no_munin_url_defined_txt'] = '未定义 监控 URL。'; +$wb['no_permissions_to_view_munin_txt'] = '您没有访问 监控 çš„æƒé™ã€‚'; +$wb['Database size'] = 'æ•°æ®åº“大å°'; +$wb['MySQL Database size'] = 'MySQL æ•°æ®åº“大å°'; +?> diff --git a/interface/web/monitor/lib/lang/cn_datalog_list.lng b/interface/web/monitor/lib/lang/cn_datalog_list.lng new file mode 100644 index 0000000000..3e2c3a8a7a --- /dev/null +++ b/interface/web/monitor/lib/lang/cn_datalog_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '任务队列'; +$wb['tstamp_txt'] = '日期'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['dbtable_txt'] = 'æ•°æ®åº“表'; +$wb['action_txt'] = 'æ“作'; +$wb['status_txt'] = '状æ€'; +?> diff --git a/interface/web/monitor/lib/lang/cn_dataloghistory_list.lng b/interface/web/monitor/lib/lang/cn_dataloghistory_list.lng new file mode 100644 index 0000000000..3ca9c90a5a --- /dev/null +++ b/interface/web/monitor/lib/lang/cn_dataloghistory_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = 'æ•°æ®æ—¥å¿—历å²è®°å½•'; +$wb['tstamp_txt'] = '日期'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['dbtable_txt'] = 'æ•°æ®åº“表'; +$wb['action_txt'] = 'æ“作'; +$wb['status_txt'] = '状æ€'; +$wb['user_txt'] = '用户'; +?> diff --git a/interface/web/monitor/lib/lang/cn_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/cn_dataloghistory_undo.lng new file mode 100644 index 0000000000..6004ed62e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/cn_dataloghistory_undo.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'æ•°æ®æ—¥å¿—历å²è®°å½•æ¡ç›®'; +$wb['success_txt'] = '撤销æˆåŠŸ'; +$wb['error_txt'] = '撤销期间出错:记录ä¸å†å˜åœ¨'; +$wb['error_undelete_txt'] = '撤销期间出错:具有主键的记录已å˜åœ¨ã€‚'; +$wb['btn_cancel_txt'] = '返回'; +?> diff --git a/interface/web/monitor/lib/lang/cn_dataloghistory_view.lng b/interface/web/monitor/lib/lang/cn_dataloghistory_view.lng new file mode 100644 index 0000000000..e640c2bd02 --- /dev/null +++ b/interface/web/monitor/lib/lang/cn_dataloghistory_view.lng @@ -0,0 +1,27 @@ +<?php +$wb['i'] = 'æ’å…¥'; +$wb['u'] = 'æ›´æ–°'; +$wb['d'] = 'åˆ é™¤'; +$wb['list_head_txt'] = 'æ•°æ®æ—¥å¿—历å²è®°å½•'; +$wb['id_txt'] = 'ID'; +$wb['timestamp_txt'] = '时间戳'; +$wb['table_txt'] = 'è¡¨æ ¼'; +$wb['action_txt'] = 'æ“作'; +$wb['session_id_txt'] = '会è¯ID'; +$wb['fields_txt'] = 'å—段'; +$wb['fields_inserted_txt'] = 'æ’入的å—段'; +$wb['fields_updated_txt'] = 'æ›´æ–°çš„å—段'; +$wb['fields_deleted_txt'] = 'åˆ é™¤çš„å—段'; +$wb['no_changes_txt'] = '没有å˜åŒ–(é‡æ–°åŒæ¥ï¼‰'; +$wb['is_diff_txt'] = 'å·®å¼‚å·²æ ‡å‡º'; +$wb['is_diff_inserts_txt'] = 'æ’å…¥'; +$wb['is_diff_deletes_txt'] = 'åˆ é™¤'; +$wb['field_txt'] = 'å—段'; +$wb['value_txt'] = '值'; +$wb['old_txt'] = 'æ—§'; +$wb['new_txt'] = 'æ–°'; +$wb['btn_cancel_txt'] = '返回'; +$wb['undo_txt'] = '撤销æ“作'; +$wb['undo_confirmation_txt'] = '确定è¦æ’¤é”€æ¤æ“作å—?'; +$wb['username_txt'] = '用户å'; +?> diff --git a/interface/web/monitor/lib/lang/cn_syslog_list.lng b/interface/web/monitor/lib/lang/cn_syslog_list.lng new file mode 100644 index 0000000000..1341cce7f8 --- /dev/null +++ b/interface/web/monitor/lib/lang/cn_syslog_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'ISPConfig日志'; +$wb['tstamp_txt'] = '日期'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['loglevel_txt'] = '日志级别'; +$wb['message_txt'] = '消æ¯'; +$wb['batch_delete_warnings_txt'] = 'åˆ é™¤æ‰€æœ‰è¦å‘Š'; +$wb['batch_delete_errors_txt'] = 'åˆ é™¤æ‰€æœ‰é”™è¯¯'; +$wb['batch_delete_confirmation'] = '您确定è¦ç¡®è®¤æ‰€æœ‰æ—¥å¿—æ¡ç›®å—?'; +?> diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 60b26bc767..55c582eeda 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -369,7 +369,7 @@ class page_action extends tform_actions { } else { $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 (!in_array($server_config['ip_address'], $remote_ips)) { $remote_ips[] = $server_config['ip_address']; } if($server_config['ip_address']!='') { if($this->dataRecord['remote_access'] != 'y'){ @@ -459,7 +459,7 @@ class page_action extends tform_actions { $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 (!in_array($server_config['ip_address'], $remote_ips)) { $remote_ips[] = $server_config['ip_address']; } if($server_config['ip_address']!='') { if($this->dataRecord['remote_access'] != 'y'){ diff --git a/interface/web/sites/form/web_childdomain.tform.php b/interface/web/sites/form/web_childdomain.tform.php index 6d4f96e437..36718f5c9d 100644 --- a/interface/web/sites/form/web_childdomain.tform.php +++ b/interface/web/sites/form/web_childdomain.tform.php @@ -168,7 +168,7 @@ if($childdomain_type == 'aliasdomain') { 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('' => 'no_redirect_txt', 'non_www_to_www' => 'domain.tld => www.domain.tld', 'www_to_non_www' => 'www.domain.tld => domain.tld', '*_domain_tld_to_domain_tld' => '*.doman.tld => domain.tld', '*_domain_tld_to_www_domain_tld' => '*.domain.tld => www.domain.tld', '*_to_domain_tld' => '* => domain.tld', '*_to_www_domain_tld' => '* => www.domain.tld') + 'value' => array('' => 'no_redirect_txt', 'non_www_to_www' => 'domain.tld => www.domain.tld', 'www_to_non_www' => 'www.domain.tld => domain.tld', '*_domain_tld_to_domain_tld' => '*.domain.tld => domain.tld', '*_domain_tld_to_www_domain_tld' => '*.domain.tld => www.domain.tld', '*_to_domain_tld' => '* => domain.tld', '*_to_www_domain_tld' => '* => www.domain.tld') ); } diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index 5c26f8254d..ba0d86f3eb 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -417,7 +417,7 @@ $form["tabs"]['redirect'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('' => 'no_redirect_txt', 'non_www_to_www' => 'domain.tld => www.domain.tld', 'www_to_non_www' => 'www.domain.tld => domain.tld', '*_domain_tld_to_domain_tld' => '*.doman.tld => domain.tld', '*_domain_tld_to_www_domain_tld' => '*.domain.tld => www.domain.tld', '*_to_domain_tld' => '* => domain.tld', '*_to_www_domain_tld' => '* => www.domain.tld') + 'value' => array('' => 'no_redirect_txt', 'non_www_to_www' => 'domain.tld => www.domain.tld', 'www_to_non_www' => 'www.domain.tld => domain.tld', '*_domain_tld_to_domain_tld' => '*.domain.tld => domain.tld', '*_domain_tld_to_www_domain_tld' => '*.domain.tld => www.domain.tld', '*_to_domain_tld' => '* => domain.tld', '*_to_www_domain_tld' => '* => www.domain.tld') ), 'rewrite_rules' => array ( 'datatype' => 'TEXT', diff --git a/interface/web/sites/lib/lang/cn.lng b/interface/web/sites/lib/lang/cn.lng new file mode 100644 index 0000000000..adcbb3902a --- /dev/null +++ b/interface/web/sites/lib/lang/cn.lng @@ -0,0 +1,35 @@ +<?php +$wb['Websites'] = '网站'; +$wb['Website'] = '网站'; +$wb['Subdomain'] = '网站å域å'; +$wb['Aliasdomain'] = '网站别å域å'; +$wb['Database'] = 'æ•°æ®åº“'; +$wb['Database User'] = 'æ•°æ®åº“用户'; +$wb['Web Access'] = '网站访问'; +$wb['FTP-User'] = 'FTP-账户'; +$wb['Webdav-User'] = 'WebDAV-用户'; +$wb['Folder'] = 'å—ä¿æŠ¤çš„文件夹'; +$wb['Folder users'] = 'å—ä¿æŠ¤çš„文件夹用户'; +$wb['Command Line'] = '命令行'; +$wb['Shell-User'] = 'Shell用户'; +$wb['Cron Jobs'] = '定时任务'; +$wb['Statistics'] = '统计信æ¯'; +$wb['Web traffic'] = '网站æµé‡'; +$wb['Website quota (Harddisk)'] = '网站é…é¢ (硬盘)'; +$wb['Cron'] = '定时任务'; +$wb['Stats'] = '统计信æ¯'; +$wb['Shell'] = 'Shell'; +$wb['Webdav'] = 'WebDAV'; +$wb['FTP'] = 'FTP'; +$wb['Options'] = '选项'; +$wb['Domain'] = '域å'; +$wb['Redirect'] = 'é‡å®šå‘'; +$wb['SSL'] = 'SSL'; +$wb['Sites'] = '网站'; +$wb['APS Installer'] = 'APS安装程åº'; +$wb['Available packages'] = 'å¯ç”¨åŒ…'; +$wb['Installed packages'] = '已安装的包'; +$wb['Update Packagelist'] = '更新软件包列表'; +$wb['Subdomain (Vhost)'] = '网站å域å(Vhost)'; +$wb['error_proxy_requires_url'] = 'é‡å®šå‘类型"proxy"需è¦ä¸€ä¸ªURL作为é‡å®šå‘路径。'; +?> diff --git a/interface/web/sites/lib/lang/cn_aps.lng b/interface/web/sites/lib/lang/cn_aps.lng new file mode 100644 index 0000000000..ee1546f15e --- /dev/null +++ b/interface/web/sites/lib/lang/cn_aps.lng @@ -0,0 +1,63 @@ +<?php +$wb['overview_txt'] = '概览'; +$wb['administration_txt'] = '管ç†'; +$wb['available_packages_txt'] = 'å¯ç”¨çš„包'; +$wb['installed_packages_txt'] = '已安装的包'; +$wb['yes_txt'] = '是'; +$wb['no_txt'] = 'å¦'; +$wb['invalid_id_txt'] = '未æ供有效的ID。'; +$wb['details_txt'] = '详情'; +$wb['version_txt'] = '版本'; +$wb['category_txt'] = '分类'; +$wb['homepage_txt'] = '主页'; +$wb['supported_languages_txt'] = '支æŒçš„è¯è¨€'; +$wb['description_txt'] = 'æè¿°'; +$wb['config_script_txt'] = 'é…置脚本'; +$wb['installed_size_txt'] = '安装åŽçš„大å°'; +$wb['license_txt'] = '许å¯è¯'; +$wb['screenshots_txt'] = 'å±å¹•æˆªå›¾'; +$wb['changelog_txt'] = 'å˜æ›´æ—¥å¿—'; +$wb['server_requirements_txt'] = 'æœåŠ¡å™¨è¦æ±‚'; +$wb['php_extensions_txt'] = 'PHP扩展'; +$wb['php_settings_txt'] = 'PHP设置'; +$wb['supported_php_versions_txt'] = '支æŒçš„PHP版本'; +$wb['database_txt'] = 'æ•°æ®åº“'; +$wb['settings_txt'] = '设置'; +$wb['install_package_txt'] = '安装æ¤åŒ…'; +$wb['installation_txt'] = '安装'; +$wb['install_location_txt'] = '安装ä½ç½®'; +$wb['btn_install_txt'] = '安装'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['acceptance_txt'] = '我接å—许å¯åè®®'; +$wb['acceptance_text_txt'] = '是的,我已阅读许å¯å议并åŒæ„。'; +$wb['install_language_txt'] = 'ç•Œé¢è¯è¨€'; +$wb['new_database_password_txt'] = 'æ–°æ•°æ®åº“密ç '; +$wb['basic_settings_txt'] = '基本设置'; +$wb['package_settings_txt'] = '包设置'; +$wb['error_main_domain'] = '安装路径的域åæ— æ•ˆã€‚'; +$wb['error_no_main_location'] = '您未æ供有效的安装路径。'; +$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_used_location'] = '安装路径已ç»åŒ…å«ä¸€ä¸ªè½¯ä»¶åŒ…安装。'; +$wb['installation_task_txt'] = '安装计划'; +$wb['installation_error_txt'] = '安装错误'; +$wb['installation_success_txt'] = '已安装'; +$wb['installation_remove_txt'] = 'å¸è½½è®¡åˆ’'; +$wb['packagelist_update_finished_txt'] = 'APS 软件包列表更新完æˆã€‚'; +$wb['limit_aps_txt'] = '您的账户已达到最大的 APS 实例数é‡ã€‚'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['password_strength_txt'] = '密ç 强度'; +?> diff --git a/interface/web/sites/lib/lang/cn_aps_instances_list.lng b/interface/web/sites/lib/lang/cn_aps_instances_list.lng new file mode 100644 index 0000000000..4b9f22d385 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_aps_instances_list.lng @@ -0,0 +1,11 @@ +<?php +$wb['list_head_txt'] = '已安装的软件包'; +$wb['name_txt'] = 'å称'; +$wb['version_txt'] = '版本'; +$wb['customer_txt'] = '客户'; +$wb['status_txt'] = '状æ€'; +$wb['install_location_txt'] = '安装ä½ç½®'; +$wb['pkg_delete_confirmation'] = '您确定è¦åˆ 除æ¤å®‰è£…å—?'; +$wb['filter_txt'] = 'æœç´¢'; +$wb['delete_txt'] = 'åˆ é™¤'; +?> diff --git a/interface/web/sites/lib/lang/cn_aps_packages_list.lng b/interface/web/sites/lib/lang/cn_aps_packages_list.lng new file mode 100644 index 0000000000..780fc73a42 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_aps_packages_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'å¯ç”¨è½¯ä»¶åŒ…'; +$wb['name_txt'] = 'å称'; +$wb['version_txt'] = '版本'; +$wb['category_txt'] = '类别'; +$wb['status_txt'] = '未é”定'; +$wb['filter_txt'] = 'æœç´¢'; +?> diff --git a/interface/web/sites/lib/lang/cn_aps_update_packagelist.lng b/interface/web/sites/lib/lang/cn_aps_update_packagelist.lng new file mode 100644 index 0000000000..2f9088a3e0 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_aps_update_packagelist.lng @@ -0,0 +1,7 @@ +<?php +$wb['head_txt'] = '更新包列表'; +$wb['list_desc_txt'] = ''; +$wb['btn_start_txt'] = '更新包列表'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['legend_txt'] = '在这里,您å¯ä»¥æ›´æ–°å¯ç”¨è½¯ä»¶åŒ…的列表。请注æ„,这å¯èƒ½éœ€è¦æœ€å¤šäº”分钟。如果您喜欢,您å¯ä»¥ç¦»å¼€æ¤é¡µé¢ï¼Œè¯¥è¿›ç¨‹å°†åœ¨åŽå°ç»§ç»è¿è¡Œã€‚'; +?> diff --git a/interface/web/sites/lib/lang/cn_backup_stats_list.lng b/interface/web/sites/lib/lang/cn_backup_stats_list.lng new file mode 100644 index 0000000000..55d7acb26a --- /dev/null +++ b/interface/web/sites/lib/lang/cn_backup_stats_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '备份统计信æ¯'; +$wb['database_name_txt'] = ''; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['domain_txt'] = '域å'; +$wb['backup_count_txt'] = '备份次数'; +$wb['backup_server_txt'] = 'æœåŠ¡å™¨'; +$wb['backup_interval_txt'] = '备份间隔/次数'; +$wb['backup_size_txt'] = '备份大å°'; +?> diff --git a/interface/web/sites/lib/lang/cn_cron.lng b/interface/web/sites/lib/lang/cn_cron.lng new file mode 100644 index 0000000000..5b517d762e --- /dev/null +++ b/interface/web/sites/lib/lang/cn_cron.lng @@ -0,0 +1,26 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '父网站'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['client_txt'] = '客户'; +$wb['run_min_txt'] = '分钟'; +$wb['run_hour_txt'] = 'å°æ—¶'; +$wb['run_mday_txt'] = '月份ä¸çš„天'; +$wb['run_month_txt'] = '月份'; +$wb['run_wday_txt'] = 'æ˜ŸæœŸå‡ '; +$wb['command_txt'] = 'è¦è¿è¡Œçš„命令(通过 sh 执行命令,通过 wget 执行 URL)'; +$wb['limit_cron_txt'] = '已达到å…许的最大计划任务数。'; +$wb['limit_cron_frequency_txt'] = '计划任务频率超过了å…许的é™åˆ¶ã€‚'; +$wb['run_min_error_format'] = 'åˆ†é’Ÿæ ¼å¼æ— 效。'; +$wb['run_hour_error_format'] = 'å°æ—¶æ ¼å¼æ— 效。'; +$wb['run_mday_error_format'] = '月份ä¸çš„å¤©æ ¼å¼æ— 效。'; +$wb['run_month_error_format'] = 'æœˆä»½æ ¼å¼æ— 效。'; +$wb['run_wday_error_format'] = 'æ˜ŸæœŸå‡ æ ¼å¼æ— 效。'; +$wb['command_error_format'] = 'å‘½ä»¤æ ¼å¼æ— 效。请注æ„,在 URL 调用的情况下,仅å…许使用 http/https。'; +$wb['unknown_fieldtype_error'] = '使用了未知的å—段类型。'; +$wb['server_id_error_empty'] = 'æœåŠ¡å™¨ ID 为空。'; +$wb['command_hint_txt'] = '例如,/var/www/clients/clientX/webY/myscript.sh 或 https://www.mydomain.com/path/script.php,您å¯ä»¥ä½¿ç”¨ [web_root] å ä½ç¬¦ï¼Œå®ƒå°†è¢« /var/www/clients/clientX/webY/web 替æ¢ã€‚'; +$wb['log_output_txt'] = '记录输出'; +$wb['limit_cron_url_txt'] = 'ä»…é™ URL 计划任务。请将以 https:// 开头的 URL 作为计划任务命令输入。'; +$wb['command_error_empty'] = '命令为空。'; +?> diff --git a/interface/web/sites/lib/lang/cn_cron_list.lng b/interface/web/sites/lib/lang/cn_cron_list.lng new file mode 100644 index 0000000000..ace97e23a9 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_cron_list.lng @@ -0,0 +1,13 @@ +<?php +$wb['list_head_txt'] = '计划任务'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['run_min_txt'] = '分钟'; +$wb['run_hour_txt'] = 'å°æ—¶'; +$wb['run_mday_txt'] = 'æ¯æœˆæ—¥æœŸ'; +$wb['run_month_txt'] = '月份'; +$wb['run_wday_txt'] = '星期'; +$wb['command_txt'] = '命令'; +$wb['add_new_cron_txt'] = 'æ·»åŠ æ–°çš„è®¡åˆ’ä»»åŠ¡'; +$wb['parent_domain_id_txt'] = '网站'; +?> diff --git a/interface/web/sites/lib/lang/cn_database.lng b/interface/web/sites/lib/lang/cn_database.lng new file mode 100644 index 0000000000..d1c9180fbb --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database.lng @@ -0,0 +1,50 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['type_txt'] = '类型'; +$wb['database_name_txt'] = 'æ•°æ®åº“å称'; +$wb['database_user_txt'] = 'æ•°æ®åº“用户'; +$wb['database_ro_user_txt'] = 'åªè¯»æ•°æ®åº“用户'; +$wb['optional_txt'] = 'å¯é€‰'; +$wb['database_password_txt'] = 'æ•°æ®åº“密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['database_charset_txt'] = 'æ•°æ®åº“å—符集'; +$wb['select_dbuser_txt'] = '选择数æ®åº“用户'; +$wb['no_dbuser_txt'] = 'æ— '; +$wb['remote_access_txt'] = '远程访问'; +$wb['remote_ips_txt'] = '远程访问 IP(用逗å·åˆ†éš”,留空表示“任æ„â€ï¼‰'; +$wb['database_remote_error_ips'] = '输入的 IP 地å€ä¸è‡³å°‘æœ‰ä¸€ä¸ªæ— æ•ˆã€‚'; +$wb['client_txt'] = '客户'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['database_client_differs_txt'] = '父网站的客户与数æ®åº“ä¸åŒ¹é…。'; +$wb['database_name_error_empty'] = 'æ•°æ®åº“å称为空。'; +$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-64 个å—符。'; +$wb['limit_database_txt'] = '已达到最大数æ®åº“æ•°é‡ã€‚'; +$wb['database_name_change_txt'] = 'æ— æ³•æ›´æ”¹æ•°æ®åº“å称。'; +$wb['database_user_missing_txt'] = '请为æ¤æ•°æ®åº“选择一个数æ®åº“用户。'; +$wb['database_charset_change_txt'] = 'æ— æ³•æ›´æ”¹æ•°æ®åº“å—符集。'; +$wb['database_name_error_len'] = 'æ•°æ®åº“å称 - {db} - 过长。最大数æ®åº“å称长度(包括å‰ç¼€ï¼‰ä¸º 64 个å—符。'; +$wb['database_user_error_len'] = 'æ•°æ®åº“用户å - {user} - 过长。最大数æ®åº“用户å长度(包括å‰ç¼€ï¼‰ä¸º 16 个å—符。'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['database_site_error_empty'] = '请选择数æ®åº“所属的网站。'; +$wb['select_site_txt'] = '- 选择网站 -'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['globalsearch_resultslimit_of_txt'] = 'çš„'; +$wb['globalsearch_resultslimit_results_txt'] = '结果'; +$wb['globalsearch_noresults_text_txt'] = '没有结果。'; +$wb['globalsearch_noresults_limit_txt'] = '0个结果'; +$wb['globalsearch_searchfield_watermark_txt'] = 'æœç´¢'; +$wb['globalsearch_suggestions_text_txt'] = '建议'; +$wb['limit_database_quota_txt'] = 'æ•°æ®åº“é…é¢'; +$wb['limit_database_quota_error_notint'] = 'æ•°æ®åº“é…é¢å¿…须是数å—。'; +$wb['limit_database_quota_free_txt'] = '最大å¯ç”¨çš„æ•°æ®åº“é…é¢ '; +$wb['limit_database_quota_not_0_txt'] = 'æ•°æ®åº“é…é¢ä¸èƒ½ä¸º0。'; +?> diff --git a/interface/web/sites/lib/lang/cn_database_admin_list.lng b/interface/web/sites/lib/lang/cn_database_admin_list.lng new file mode 100644 index 0000000000..fc1226c388 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database_admin_list.lng @@ -0,0 +1,12 @@ +<?php +$wb['list_head_txt'] = 'æ•°æ®åº“'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['remote_access_txt'] = '远程访问'; +$wb['type_txt'] = '类型'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['database_user_txt'] = 'æ•°æ®åº“用户'; +$wb['database_name_txt'] = 'æ•°æ®åº“å称'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°æ•°æ®åº“'; +$wb['sys_groupid_txt'] = '客户'; +$wb['parent_domain_id_txt'] = '网站'; +?> diff --git a/interface/web/sites/lib/lang/cn_database_list.lng b/interface/web/sites/lib/lang/cn_database_list.lng new file mode 100644 index 0000000000..99395324bf --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database_list.lng @@ -0,0 +1,11 @@ +<?php +$wb['list_head_txt'] = 'æ•°æ®åº“'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['remote_access_txt'] = '远程访问'; +$wb['type_txt'] = '类型'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['database_user_txt'] = 'æ•°æ®åº“用户'; +$wb['database_name_txt'] = 'æ•°æ®åº“å称'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°æ•°æ®åº“'; +$wb['parent_domain_id_txt'] = '网站'; +?> diff --git a/interface/web/sites/lib/lang/cn_database_quota_stats_list.lng b/interface/web/sites/lib/lang/cn_database_quota_stats_list.lng new file mode 100644 index 0000000000..0292e7e9ec --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database_quota_stats_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['database_txt'] = 'æ•°æ®åº“'; +$wb['server_name_txt'] = 'æœåŠ¡å™¨'; +$wb['client_txt'] = '客户'; +$wb['used_txt'] = '已用空间'; +$wb['quota_txt'] = 'é…é¢'; +$wb['percentage_txt'] = '使用百分比'; +$wb['list_head_txt'] = 'æ•°æ®åº“é…é¢'; +?> diff --git a/interface/web/sites/lib/lang/cn_database_user.lng b/interface/web/sites/lib/lang/cn_database_user.lng new file mode 100644 index 0000000000..2d46e78c92 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database_user.lng @@ -0,0 +1,25 @@ +<?php +$wb['database_user_txt'] = 'æ•°æ®åº“用户'; +$wb['database_password_txt'] = 'æ•°æ®åº“密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$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 - 64个å—符。'; +$wb['database_user_error_len'] = 'æ•°æ®åº“用户å-{user}太长。最大的数æ®åº“用户å长度包括å‰ç¼€ä¸º16个å—符。'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['globalsearch_resultslimit_of_txt'] = 'çš„'; +$wb['globalsearch_resultslimit_results_txt'] = '结果'; +$wb['globalsearch_noresults_text_txt'] = '没有结果。'; +$wb['globalsearch_noresults_limit_txt'] = '0个结果'; +$wb['globalsearch_searchfield_watermark_txt'] = 'æœç´¢'; +$wb['globalsearch_suggestions_text_txt'] = '建议'; +$wb['limit_database_user_txt'] = '已达到数æ®åº“用户的最大数é‡ã€‚'; +$wb['database_password_error_empty'] = 'æ•°æ®åº“密ç 为空。'; +?> diff --git a/interface/web/sites/lib/lang/cn_database_user_admin_list.lng b/interface/web/sites/lib/lang/cn_database_user_admin_list.lng new file mode 100644 index 0000000000..1e93752ba1 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database_user_admin_list.lng @@ -0,0 +1,6 @@ +<?php +$wb['list_head_txt'] = 'æ•°æ®åº“用户'; +$wb['database_user_txt'] = 'æ•°æ®åº“用户å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç”¨æˆ·'; +$wb['sys_groupid_txt'] = '客户'; +?> diff --git a/interface/web/sites/lib/lang/cn_database_user_list.lng b/interface/web/sites/lib/lang/cn_database_user_list.lng new file mode 100644 index 0000000000..fb124188ba --- /dev/null +++ b/interface/web/sites/lib/lang/cn_database_user_list.lng @@ -0,0 +1,5 @@ +<?php +$wb['list_head_txt'] = 'æ•°æ®åº“用户'; +$wb['database_user_txt'] = 'æ•°æ®åº“用户'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç”¨æˆ·'; +?> diff --git a/interface/web/sites/lib/lang/cn_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/cn_ftp_sites_stats_list.lng new file mode 100644 index 0000000000..c14c699a3e --- /dev/null +++ b/interface/web/sites/lib/lang/cn_ftp_sites_stats_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'FTPæµé‡'; +$wb['domain_txt'] = '域å'; +$wb['this_month_txt'] = '本月'; +$wb['last_month_txt'] = '上月'; +$wb['this_year_txt'] = '今年'; +$wb['last_year_txt'] = '去年'; +$wb['sum_txt'] = '总计(下载 + ä¸Šä¼ ï¼‰'; +$wb['in_out_txt'] = '下载/ä¸Šä¼ '; +?> diff --git a/interface/web/sites/lib/lang/cn_ftp_user.lng b/interface/web/sites/lib/lang/cn_ftp_user.lng new file mode 100644 index 0000000000..39ab56ee5e --- /dev/null +++ b/interface/web/sites/lib/lang/cn_ftp_user.lng @@ -0,0 +1,36 @@ +<?php +$wb['uid_txt'] = 'ç”¨æˆ·æ ‡è¯†ç¬¦ (UID)'; +$wb['gid_txt'] = 'ç»„æ ‡è¯†ç¬¦ (GID)'; +$wb['dir_txt'] = '目录'; +$wb['quota_files_txt'] = '文件é…é¢'; +$wb['quota_files_unity_txt'] = '文件数'; +$wb['ul_ratio_txt'] = 'ä¸Šä¼ æ¯”çŽ‡'; +$wb['dl_ratio_txt'] = '下载比率'; +$wb['ul_bandwidth_txt'] = 'ä¸Šä¼ å¸¦å®½'; +$wb['dl_bandwidth_txt'] = '下载带宽'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['quota_size_txt'] = '硬盘é…é¢'; +$wb['active_txt'] = '激活'; +$wb['limit_ftp_user_txt'] = '您的å¸æˆ·çš„ FTP 用户的最大数é‡å·²è¾¾åˆ°ã€‚'; +$wb['username_error_empty'] = '用户å为空。'; +$wb['username_error_unique'] = '用户å必须唯一。'; +$wb['username_error_regex'] = '用户å包å«ä¸å…许的å—符。'; +$wb['quota_size_error_empty'] = 'é…é¢ä¸ºç©ºã€‚'; +$wb['uid_error_empty'] = 'UID为空。'; +$wb['uid_error_empty'] = 'GID为空。'; +$wb['directory_error_empty'] = '目录为空。'; +$wb['directory_error_notinweb'] = '目录ä¸åœ¨ Web æ ¹ç›®å½•å†…ã€‚'; +$wb['parent_domain_id_error_empty'] = '未选择网站。'; +$wb['quota_size_error_regex'] = 'é…é¢ï¼šè¾“å…¥-1è¡¨ç¤ºæ— é™åˆ¶æˆ–输入大于0çš„æ•°å—'; +$wb['dir_dot_error'] = '路径ä¸ä¸å…许使用 .. 。'; +$wb['dir_slashdot_error'] = '路径ä¸ä¸å…许使用 ./ 。'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['expires_txt'] = '过期时间'; +?> diff --git a/interface/web/sites/lib/lang/cn_ftp_user_list.lng b/interface/web/sites/lib/lang/cn_ftp_user_list.lng new file mode 100644 index 0000000000..72c33af81f --- /dev/null +++ b/interface/web/sites/lib/lang/cn_ftp_user_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'FTP用户'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['username_txt'] = '用户å'; +$wb['add_new_record_txt'] = 'æ·»åŠ FTP用户'; +?> diff --git a/interface/web/sites/lib/lang/cn_shell_user.lng b/interface/web/sites/lib/lang/cn_shell_user.lng new file mode 100644 index 0000000000..058368312a --- /dev/null +++ b/interface/web/sites/lib/lang/cn_shell_user.lng @@ -0,0 +1,36 @@ +<?php +$wb['puser_txt'] = 'Web 用户å'; +$wb['pgroup_txt'] = 'Web 用户组'; +$wb['shell_txt'] = 'Shell'; +$wb['dir_txt'] = '基础目录'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '站点'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['chroot_txt'] = 'Chroot Shell'; +$wb['quota_size_txt'] = 'ç£ç›˜é…é¢'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['username_error_empty'] = '用户å为空。'; +$wb['username_error_unique'] = '用户å必须唯一。'; +$wb['username_error_regex'] = '用户å包å«äº†ä¸å…许的å—符。'; +$wb['quota_size_error_empty'] = 'ç£ç›˜é…é¢ä¸ºç©ºã€‚'; +$wb['uid_error_empty'] = 'GID 为空。'; +$wb['directory_error_empty'] = '目录为空。'; +$wb['limit_shell_user_txt'] = '已达到 shell 用户的最大数é‡ã€‚'; +$wb['parent_domain_id_error_empty'] = '未选择网站。'; +$wb['ssh_rsa_txt'] = 'SSH-RSA 公钥(用于基于密钥的登录)'; +$wb['dir_dot_error'] = '路径ä¸ä¸èƒ½åŒ…å« ..。'; +$wb['dir_slashdot_error'] = '路径ä¸ä¸èƒ½åŒ…å« ./。'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = '确认密ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸ä¸€è‡´ã€‚'; +$wb['password_match_txt'] = '两次输入的密ç 一致。'; +$wb['username_must_not_exceed_32_chars_txt'] = '用户åä¸èƒ½è¶…过 32 个å—符。'; +$wb['username_not_allowed_txt'] = '用户åä¸å…许。'; +$wb['invalid_system_user_or_group_txt'] = 'æ— æ•ˆçš„ç³»ç»Ÿç”¨æˆ·æˆ–ç”¨æˆ·ç»„ã€‚'; +$wb['directory_error_regex'] = 'æ— æ•ˆçš„ç›®å½•ã€‚'; +$wb['shell_error_regex'] = 'æ— æ•ˆçš„ shell。'; +$wb['invalid_username_txt'] = 'æ— æ•ˆçš„ç”¨æˆ·å。'; +$wb['directory_error_notinweb'] = '目录必须在 web æ ¹ç›®å½•å†…ã€‚'; +?> diff --git a/interface/web/sites/lib/lang/cn_shell_user_list.lng b/interface/web/sites/lib/lang/cn_shell_user_list.lng new file mode 100644 index 0000000000..5cc52d736f --- /dev/null +++ b/interface/web/sites/lib/lang/cn_shell_user_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Shell用户'; +$wb['active_txt'] = '状æ€'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['username_txt'] = '用户å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°Shell用户'; +?> diff --git a/interface/web/sites/lib/lang/cn_user_quota_stats_list.lng b/interface/web/sites/lib/lang/cn_user_quota_stats_list.lng new file mode 100644 index 0000000000..39b7e48b89 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_user_quota_stats_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '网站硬盘é…é¢'; +$wb['domain_txt'] = '域å / 网站'; +$wb['system_user_txt'] = 'Linux 用户'; +$wb['used_txt'] = '已使用空间'; +$wb['hard_txt'] = '硬é™åˆ¶'; +$wb['soft_txt'] = '软é™åˆ¶'; +$wb['files_txt'] = 'å•ä¸ªæ–‡ä»¶'; +$wb['percentage_txt'] = '已用 %'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_aliasdomain.lng b/interface/web/sites/lib/lang/cn_web_aliasdomain.lng new file mode 100644 index 0000000000..2b0e5a98a8 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['domain_txt'] = '别å域å'; +$wb['backup_interval_txt'] = '备份间隔'; +$wb['backup_copies_txt'] = '备份数é‡'; +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_key_txt'] = 'SSL密钥'; +$wb['ssl_request_txt'] = 'SSL请求'; +$wb['ssl_cert_txt'] = 'SSLè¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSLä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSLæ“作'; +$wb['ssl_domain_txt'] = 'SSL域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['web_folder_error_regex'] = 'è¾“å…¥çš„æ–‡ä»¶å¤¹æ— æ•ˆã€‚è¯·å‹¿è¾“å…¥æ–œæ 。'; +$wb['type_txt'] = '类型'; +$wb['parent_domain_id_txt'] = '站点'; +$wb['redirect_type_txt'] = 'é‡å®šå‘类型'; +$wb['r_redirect_txt'] = 'R(临时é‡å®šå‘)'; +$wb['l_redirect_txt'] = 'L(最åŽé‡å®šå‘规则)'; +$wb['r_l_redirect_txt'] = 'R,L(临时é‡å®šå‘+最åŽä¸€æ¡è§„则)'; +$wb['r_301_l_redirect_txt'] = 'R = 301,L(永久é‡å®šå‘+最åŽä¸€æ¡è§„则)'; +$wb['redirect_path_txt'] = 'é‡å®šå‘路径'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['document_root_txt'] = 'æ–‡æ¡£æ ¹ç›®å½•'; +$wb['system_user_txt'] = 'Linux用户'; +$wb['system_group_txt'] = 'Linux组'; +$wb['ip_address_txt'] = 'IPv4地å€'; +$wb['ipv6_address_txt'] = 'IPv6地å€'; +$wb['vhost_type_txt'] = 'VHost类型'; +$wb['hd_quota_txt'] = '硬盘é…é¢'; +$wb['traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = '自定义错误页é¢'; +$wb['subdomain_txt'] = '自动生æˆå域å'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = '客户'; +$wb['limit_web_domain_txt'] = '您的账户的网站数é‡å·²è¾¾åˆ°ä¸Šé™'; +$wb['limit_web_aliasdomain_txt'] = '您的账户的别å域åæ•°é‡å·²è¾¾åˆ°ä¸Šé™'; +$wb['limit_web_subdomain_txt'] = '您的账户的å域åæ•°é‡å·²è¾¾åˆ°ä¸Šé™'; +$wb['apache_directives_txt'] = 'Apache é…ç½®'; +$wb['domain_error_empty'] = '域åä¸èƒ½ä¸ºç©º'; +$wb['domain_error_unique'] = '已有åŒå的网站或å/别å域å'; +$wb['domain_error_regex'] = '域åæ ¼å¼ä¸æ£ç¡®'; +$wb['domain_error_autosub'] = '已有相åŒçš„å域å'; +$wb['hd_quota_error_empty'] = '硬盘空间é…é¢ä¸èƒ½ä¸ºç©ºæˆ–为0'; +$wb['traffic_quota_error_empty'] = 'æµé‡é…é¢ä¸èƒ½ä¸ºç©º'; +$wb['error_ssl_state_empty'] = 'SSL 状æ€ä¸èƒ½ä¸ºç©º'; +$wb['error_ssl_locality_empty'] = 'SSL 地点ä¸èƒ½ä¸ºç©º'; +$wb['error_ssl_organisation_empty'] = 'SSL 组织ä¸èƒ½ä¸ºç©º'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL 组织å•ä½ä¸èƒ½ä¸ºç©º'; +$wb['error_ssl_country_empty'] = 'SSL 国家ä¸èƒ½ä¸ºç©º'; +$wb['error_ssl_cert_empty'] = 'SSL è¯ä¹¦å—段ä¸èƒ½ä¸ºç©º'; +$wb['client_group_id_txt'] = '客户组'; +$wb['stats_password_txt'] = '设置网站统计密ç '; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = '最大å¯ç”¨ç¡¬ç›˜é…é¢'; +$wb['ssl_state_error_regex'] = 'SSL 状æ€ä¸æ£ç¡®ï¼Œä»…å…许使用 a-zã€0-9 å’Œ .,-_ å—符'; +$wb['ssl_locality_error_regex'] = 'SSL 地点ä¸æ£ç¡®ï¼Œä»…å…许使用 a-zã€0-9 å’Œ .,-_ å—符'; +$wb['ssl_organisation_error_regex'] = 'SSL 组织ä¸æ£ç¡®ï¼Œä»…å…许使用 a-zã€0-9 å’Œ .,-_ å—符'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL 组织å•ä½ä¸æ£ç¡®ï¼Œä»…å…许使用 a-zã€0-9 å’Œ .,-_ å—符'; +$wb['ssl_country_error_regex'] = 'SSL 国家ä¸æ£ç¡®ï¼Œä»…å…许使用 A-Z å—符'; +$wb['limit_traffic_quota_free_txt'] = '最大å¯ç”¨æµé‡é…é¢'; +$wb['redirect_error_regex'] = 'é‡å®šå‘路径ä¸æ£ç¡®ï¼Œæœ‰æ•ˆçš„é‡å®šå‘示例为:/test/ 或 https://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = '已超出æµé‡é…é¢'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = '网站统计用户å'; +$wb['stats_type_txt'] = '网站统计程åº'; +$wb['custom_php_ini_txt'] = '自定义php.ini设置'; +$wb['disabled_txt'] = 'ç¦ç”¨'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'æ— æ ‡å¿—'; +$wb['save_certificate_txt'] = 'ä¿å˜è¯ä¹¦'; +$wb['create_certificate_txt'] = '创建è¯ä¹¦'; +$wb['delete_certificate_txt'] = 'åˆ é™¤è¯ä¹¦'; +$wb['nginx_directives_txt'] = 'nginx 指令'; +$wb['seo_redirect_txt'] = 'SEO é‡å®šå‘'; +$wb['non_www_to_www_txt'] = 'éž www -> www'; +$wb['www_to_non_www_txt'] = 'www -> éž www'; +$wb['php_fpm_use_socket_txt'] = '使用 Socket 作为 PHP-FPM'; +$wb['error_no_sni_txt'] = 'æ¤æœåŠ¡å™¨ä¸Šæœªæ¿€æ´» SSL çš„ SNI。您åªèƒ½åœ¨æ¯ä¸ª IP 地å€ä¸Šå¯ç”¨ä¸€ä¸ª SSL è¯ä¹¦ã€‚'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM进程管ç†å™¨æœ€å¤§å进程数。'; +$wb['pm_start_servers_txt'] = 'PHP-FPM 进程管ç†å™¨èµ·å§‹æœåŠ¡å™¨æ•°'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å°çš„空闲进程数'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å¤§çš„空闲进程数'; +$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPMçš„pm设置值必须如下: 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必须为æ£æ•´æ•°ã€‚'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPMçš„pm.start_servers必须为æ£æ•´æ•°ã€‚'; +$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'] = '硬盘é…é¢æ— 效。'; +$wb['traffic_quota_error_regex'] = 'æµé‡é…é¢æ— 效。'; +$wb['server_php_id_txt'] = 'PHP 版本'; +$wb['pm_txt'] = 'PHP-FPM 进程管ç†å™¨'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM进程空闲超时时间'; +$wb['pm_max_requests_txt'] = 'PHP-FPM 进程管ç†å™¨æœ€å¤§è¯·æ±‚æ•°'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPMçš„ PHP-FPM进程空闲超时时间 必须为æ£æ•´æ•°ã€‚'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests 必须是 >=0 的整数值。'; +$wb['pm_ondemand_hint_txt'] = '请注æ„,您必须具有 PHP 版本 >= 5.3.9 æ‰èƒ½ä½¿ç”¨æŒ‰éœ€è¿›ç¨‹ç®¡ç†å™¨ã€‚如果您为旧版本的 PHP 选择了按需进程管ç†å™¨ï¼Œåˆ™ PHP å°†ä¸å†å¯åŠ¨ï¼'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$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['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +$wb['Domain'] = 'Aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/cn_web_aliasdomain_list.lng new file mode 100644 index 0000000000..584cc9f3de --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_aliasdomain_list.lng @@ -0,0 +1,14 @@ +<?php +$wb['list_head_txt'] = '别å域å'; +$wb['active_txt'] = '已激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['domain_txt'] = '别å域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°åˆ«å域å'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = '域å必须唯一。'; +$wb['domain_error_regex'] = '域åæ ¼å¼ä¸æ£ç¡®ã€‚'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'ä¸ä½¿ç”¨æ ‡è®°'; +$wb['none_txt'] = 'æ— '; +?> diff --git a/interface/web/sites/lib/lang/cn_web_backup_list.lng b/interface/web/sites/lib/lang/cn_web_backup_list.lng new file mode 100644 index 0000000000..d68977a768 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_backup_list.lng @@ -0,0 +1,54 @@ +<?php +$wb['list_head_txt'] = '已有备份'; +$wb['date_txt'] = '日期'; +$wb['backup_type_txt'] = '类型'; +$wb['filename_txt'] = '备份文件'; +$wb['filesize_txt'] = '文件大å°'; +$wb['restore_backup_txt'] = 'æ¢å¤'; +$wb['download_backup_txt'] = '下载'; +$wb['download_info_txt'] = 'å¤‡ä»½æ–‡ä»¶å°†åœ¨å‡ åˆ†é’Ÿå†…åœ¨ç½‘ç«™å¤‡ä»½æ–‡ä»¶å¤¹ä¸æ供下载。'; +$wb['restore_info_txt'] = '备份æ¢å¤å·²ç»å¼€å§‹ã€‚该æ“作需è¦å‡ 分钟æ‰èƒ½å®Œæˆã€‚'; +$wb['restore_confirm_txt'] = 'æ¢å¤å°†è¦†ç›–您网站ä¸çš„现有文件。您真的è¦æ¢å¤æ¤å¤‡ä»½å—?'; +$wb['download_pending_txt'] = 'å·²ç»æœ‰ä¸€ä¸ªæŒ‚起的备份下载任务。'; +$wb['restore_pending_txt'] = 'å·²ç»æœ‰ä¸€ä¸ªæŒ‚起的备份æ¢å¤ä»»åŠ¡ã€‚'; +$wb['delete_backup_txt'] = 'åˆ é™¤å¤‡ä»½'; +$wb['delete_info_txt'] = 'åˆ é™¤å¤‡ä»½å·²ç»å¼€å§‹ã€‚该æ“作需è¦å‡ 分钟æ‰èƒ½å®Œæˆã€‚'; +$wb['delete_confirm_txt'] = '真的è¦åˆ 除æ¤å¤‡ä»½å—?'; +$wb['delete_pending_txt'] = 'å·²ç»æœ‰ä¸€ä¸ªæŒ‚èµ·çš„å¤‡ä»½åˆ é™¤ä»»åŠ¡ã€‚'; +$wb['backup_type_mongodb'] = 'MongoDBæ•°æ®åº“'; +$wb['backup_type_mysql'] = 'MySQLæ•°æ®åº“'; +$wb['backup_type_web'] = '网站文件'; +$wb['backup_pending_txt'] = 'å·²ç»æœ‰ä¸€ä¸ªæŒ‚起的备份任务。'; +$wb['error_txt'] = '错误'; +$wb['backup_info_txt'] = '备份进程已ç»å¼€å§‹ã€‚该æ“作需è¦å‡ 分钟æ‰èƒ½å®Œæˆã€‚'; +$wb['backup_format_txt'] = 'å¤‡ä»½æ ¼å¼'; +$wb['backup_format_unknown_txt'] = '未知'; +$wb['backup_job_txt'] = '调度器'; +$wb['backup_job_manual_txt'] = '手动'; +$wb['backup_job_auto_txt'] = '自动'; +$wb['manual_backup_title_txt'] = '手动备份'; +$wb['make_backup_web_txt'] = '备份网站文件'; +$wb['make_backup_database_txt'] = '备份数æ®åº“'; +$wb['make_backup_confirm_txt'] = '您å³å°†å¼€å§‹æ‰‹åŠ¨å¤‡ä»½è¿‡ç¨‹ã€‚手动备份将计入å…è®¸å¤‡ä»½æ•°çš„æ€»æ•°ï¼šå› æ¤ï¼Œå¦‚果超出é™åˆ¶ï¼Œåˆ™å¯èƒ½è‡ªåŠ¨åˆ 除最旧的备份。是å¦ç»§ç»ï¼Ÿ'; +$wb['final_size_txt'] = '最终下载大å°å¯èƒ½å› æ‰€é€‰åŽ‹ç¼©æ ¼å¼è€Œå¼‚。'; +$wb['yes_txt'] = '是'; +$wb['no_txt'] = 'å¦'; +$wb['backup_is_encrypted_txt'] = 'å·²åŠ å¯†'; +$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/cn_web_childdomain.lng b/interface/web/sites/lib/lang/cn_web_childdomain.lng new file mode 100644 index 0000000000..c85522db8e --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_childdomain.lng @@ -0,0 +1,124 @@ +<?php +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_request_txt'] = 'SSLè¯ä¹¦ç¾å‘请求'; +$wb['ssl_cert_txt'] = 'SSLè¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSLä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSLæ“作'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['type_txt'] = '类型'; +$wb['parent_domain_id_txt'] = '上级网站'; +$wb['redirect_type_txt'] = 'é‡å®šå‘类型'; +$wb['r_redirect_txt'] = 'R (临时é‡å®šå‘)'; +$wb['l_redirect_txt'] = 'L (最åŽé‡å®šå‘规则)'; +$wb['r_l_redirect_txt'] = 'R,L (临时é‡å®šå‘ + 最åŽè§„则)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (永久é‡å®šå‘ + 最åŽè§„则)'; +$wb['redirect_path_txt'] = 'é‡å®šå‘路径'; +$wb['active_txt'] = '激活'; +$wb['document_root_txt'] = '网站目录'; +$wb['system_user_txt'] = 'Linux用户'; +$wb['system_group_txt'] = 'Linux用户组'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['vhost_type_txt'] = '虚拟主机类型'; +$wb['hd_quota_txt'] = '硬盘é…é¢'; +$wb['traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = '客户'; +$wb['limit_web_domain_txt'] = '您的å¸æˆ·çš„网站域åæ•°é‡å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['limit_web_aliasdomain_txt'] = '您的å¸æˆ·çš„别å域åæ•°é‡å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['limit_web_subdomain_txt'] = '您的å¸æˆ·çš„å域åæ•°é‡å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['apache_directives_txt'] = 'Apache指令'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = 'å·²ç»å˜åœ¨è¯¥åŸŸå的网站或å/别å域å。'; +$wb['domain_error_regex'] = '域åæ— æ•ˆã€‚'; +$wb['domain_error_acme_invalid'] = 'ä¸å…许使用域åacme.invalid。'; +$wb['domain_error_wildcard'] = 'ä¸å…许使用通é…符å域å。'; +$wb['host_txt'] = '主机'; +$wb['redirect_error_regex'] = 'é‡å®šå‘è·¯å¾„æ— æ•ˆã€‚æœ‰æ•ˆçš„é‡å®šå‘示例为:/test/ 或 https://www.domain.tld/test/。'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'æ— æ ‡å¿—'; +$wb['proxy_directives_txt'] = '代ç†æŒ‡ä»¤'; +$wb['available_proxy_directive_snippets_txt'] = 'å¯ç”¨çš„代ç†æŒ‡ä»¤ç‰‡æ®µï¼š'; +$wb['error_proxy_requires_url'] = 'é‡å®šå‘类型“proxyâ€éœ€è¦URL作为é‡å®šå‘路径。'; +$wb['backup_interval_txt'] = '备份间隔'; +$wb['backup_copies_txt'] = '备份数é‡'; +$wb['ssl_key_txt'] = 'SSL密钥'; +$wb['ssl_domain_txt'] = 'SSL域å'; +$wb['web_folder_error_regex'] = 'è¾“å…¥çš„æ–‡ä»¶å¤¹æ— æ•ˆã€‚è¯·å‹¿è¾“å…¥æ–œæ 。'; +$wb['ipv6_address_txt'] = 'IPv6地å€'; +$wb['errordocs_txt'] = '自定义错误文档'; +$wb['subdomain_txt'] = '自动å域å'; +$wb['domain_error_autosub'] = 'å·²ç»å˜åœ¨å…·æœ‰è¿™äº›è®¾ç½®çš„å域å。'; +$wb['hd_quota_error_empty'] = '硬盘é…é¢ä¸º0或为空。'; +$wb['traffic_quota_error_empty'] = 'æµé‡é…é¢ä¸ºç©ºã€‚'; +$wb['error_ssl_state_empty'] = 'SSL状æ€ä¸ºç©ºã€‚'; +$wb['error_ssl_locality_empty'] = 'SSL地点为空。'; +$wb['error_ssl_organisation_empty'] = 'SSL组织为空。'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL组织å•ä½ä¸ºç©ºã€‚'; +$wb['error_ssl_country_empty'] = 'SSL国家为空。'; +$wb['error_ssl_cert_empty'] = 'SSLè¯ä¹¦å—段为空'; +$wb['client_group_id_txt'] = '客户'; +$wb['stats_password_txt'] = '设置Web统计密ç '; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = '最大å¯ç”¨ç¡¬ç›˜é…é¢'; +$wb['ssl_state_error_regex'] = 'SSL状æ€æ— 效。有效å—符为:a-zã€0-9å’Œ.,-,_。'; +$wb['ssl_locality_error_regex'] = 'æ— æ•ˆçš„SSL所在地。有效å—符为:a-zã€0-9å’Œ.,-,_。'; +$wb['ssl_organisation_error_regex'] = 'æ— æ•ˆçš„SSL组织。有效å—符为:a-zã€0-9å’Œ.,-,_。'; +$wb['ssl_organistaion_unit_error_regex'] = 'æ— æ•ˆçš„SSL组织å•ä½ã€‚有效å—符为:a-zã€0-9å’Œ.,-,_。'; +$wb['ssl_country_error_regex'] = 'æ— æ•ˆçš„SSL国家。有效å—符为:A-Z。'; +$wb['limit_traffic_quota_free_txt'] = '最大å¯ç”¨æµé‡é…é¢'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = '超出æµé‡é…é¢'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Web统计用户å'; +$wb['stats_type_txt'] = 'Web统计程åº'; +$wb['custom_php_ini_txt'] = '自定义php.ini设置'; +$wb['none_txt'] = 'æ— '; +$wb['disabled_txt'] = 'ç¦ç”¨'; +$wb['save_certificate_txt'] = 'ä¿å˜è¯ä¹¦'; +$wb['create_certificate_txt'] = '创建è¯ä¹¦'; +$wb['delete_certificate_txt'] = 'åˆ é™¤è¯ä¹¦'; +$wb['nginx_directives_txt'] = 'nginx指令'; +$wb['seo_redirect_txt'] = 'SEOé‡å®šå‘'; +$wb['non_www_to_www_txt'] = 'éžwww -> www'; +$wb['www_to_non_www_txt'] = 'www -> éžwww'; +$wb['php_fpm_use_socket_txt'] = '为PHP-FPM使用套接å—'; +$wb['error_no_sni_txt'] = 'æ¤æœåŠ¡å™¨ä¸Šæœªæ¿€æ´»SSLçš„SNI。您åªèƒ½åœ¨æ¯ä¸ªIP地å€ä¸Šå¯ç”¨ä¸€ä¸ªSSLè¯ä¹¦ã€‚'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM进程管ç†å™¨æœ€å¤§å进程数。'; +$wb['pm_start_servers_txt'] = 'PHP-FPM 进程管ç†å™¨èµ·å§‹æœåŠ¡å™¨æ•°'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å°çš„空闲进程数'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å¤§çš„空闲进程数'; +$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPMçš„pm设置值必须如下: 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必须为æ£æ•´æ•°ã€‚'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPMçš„pm.start_servers必须为æ£æ•´æ•°ã€‚'; +$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'] = '硬盘é…é¢æ— 效。'; +$wb['traffic_quota_error_regex'] = 'æµé‡é…é¢æ— 效。'; +$wb['server_php_id_txt'] = 'PHP 版本'; +$wb['pm_txt'] = 'PHP-FPM 进程管ç†å™¨'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM进程空闲超时时间'; +$wb['pm_max_requests_txt'] = 'PHP-FPM 进程管ç†å™¨æœ€å¤§è¯·æ±‚æ•°'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPMçš„ PHP-FPM进程空闲超时时间 必须为æ£æ•´æ•°ã€‚'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests 必须是 >=0 的整数值。'; +$wb['pm_ondemand_hint_txt'] = '请注æ„,您必须具有 PHP 版本 >= 5.3.9 æ‰èƒ½ä½¿ç”¨æŒ‰éœ€è¿›ç¨‹ç®¡ç†å™¨ã€‚如果您为旧版本的 PHP 选择了按需进程管ç†å™¨ï¼Œåˆ™ PHP å°†ä¸å†å¯åŠ¨ï¼'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['available_php_directive_snippets_txt'] = 'å¯ç”¨çš„ PHP 指令片段:'; +$wb['available_apache_directive_snippets_txt'] = 'å¯ç”¨çš„ Apache 指令片段:'; +$wb['available_nginx_directive_snippets_txt'] = 'å¯ç”¨çš„ Nginx 指令片段:'; +$wb['Domain'] = '别å域å'; +$wb['ssl_letsencrypt_exclude_txt'] = 'ä¸æ·»åŠ 到 Let\'s Encrypt è¯ä¹¦'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_childdomain_list.lng b/interface/web/sites/lib/lang/cn_web_childdomain_list.lng new file mode 100644 index 0000000000..f47e407b86 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_childdomain_list.lng @@ -0,0 +1,18 @@ +<?php +$wb['list_head_txt'] = 'å域å'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['domain_txt'] = 'å域å'; +$wb['add_new_subdomain_txt'] = 'æ·»åŠ æ–°å域å'; +$wb['add_new_aliasdomain_txt'] = 'æ·»åŠ æ–°åˆ«å域å'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = '域å必须是唯一的。'; +$wb['domain_error_regex'] = '域åæ— æ•ˆã€‚'; +$wb['domain_error_acme_invalid'] = '域åacme.invalidä¸å…许使用。'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'ä¸æ ‡è®°'; +$wb['none_txt'] = 'æ— '; +$wb['aliasdomain_list_head_txt'] = '别å域å'; +$wb['subdomain_list_head_txt'] = 'å域å'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_directive_snippets.lng b/interface/web/sites/lib/lang/cn_web_directive_snippets.lng new file mode 100644 index 0000000000..e472230d5b --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_directive_snippets.lng @@ -0,0 +1,3 @@ +<?php +$wb['directive_snippets_id_txt'] = '所需é…ç½®'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_domain.lng b/interface/web/sites/lib/lang/cn_web_domain.lng new file mode 100644 index 0000000000..b7619426a9 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_domain.lng @@ -0,0 +1,141 @@ +<?php +$wb['backup_interval_txt'] = '备份间隔'; +$wb['backup_copies_txt'] = '备份数'; +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_key_txt'] = 'SSL 密钥'; +$wb['ssl_request_txt'] = 'SSL è¯ä¹¦ç¾å‘请求'; +$wb['ssl_cert_txt'] = 'SSL è¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSL ä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSL æ“作'; +$wb['ssl_domain_txt'] = 'SSL 域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['web_folder_error_regex'] = 'æ— æ•ˆçš„æ–‡ä»¶å¤¹ã€‚è¯·ä¸è¦è¾“入斜æ 。'; +$wb['type_txt'] = '类型'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['redirect_type_txt'] = 'é‡å®šå‘类型'; +$wb['r_redirect_txt'] = 'R (临时é‡å®šå‘)'; +$wb['l_redirect_txt'] = 'L (最åŽçš„é‡å®šå‘规则)'; +$wb['r_l_redirect_txt'] = 'R,L (临时é‡å®šå‘ + 最åŽçš„规则)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (永久é‡å®šå‘ + 最åŽçš„规则)'; +$wb['redirect_path_txt'] = 'é‡å®šå‘路径'; +$wb['active_txt'] = '激活'; +$wb['document_root_txt'] = 'æ–‡æ¡£æ ¹ç›®å½•'; +$wb['system_user_txt'] = 'Linux 用户'; +$wb['system_group_txt'] = 'Linux 组'; +$wb['ip_address_txt'] = 'IPv4 地å€'; +$wb['ipv6_address_txt'] = 'IPv6 地å€'; +$wb['vhost_type_txt'] = '虚拟主机类型'; +$wb['hd_quota_txt'] = '硬盘é…é¢'; +$wb['traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = '自定义错误文档'; +$wb['subdomain_txt'] = '自动生æˆå域å'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = '客户'; +$wb['limit_web_domain_txt'] = '您的账户已达到最大å…许的网站数é‡ã€‚'; +$wb['limit_web_aliasdomain_txt'] = '您的账户已达到最大å…许的别å域åæ•°é‡ã€‚'; +$wb['limit_web_subdomain_txt'] = '您的账户已达到最大å…许的å域åæ•°é‡ã€‚'; +$wb['apache_directives_txt'] = 'Apache 指令'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = 'å·²ç»å˜åœ¨è¯¥åŸŸå的网站ã€å域å或别å域å。'; +$wb['domain_error_regex'] = '域åæ— æ•ˆã€‚'; +$wb['domain_error_autosub'] = 'å·²ç»å˜åœ¨è¯¥è®¾ç½®çš„å域å。'; +$wb['hd_quota_error_empty'] = '硬盘é…é¢ä¸º 0 或为空。'; +$wb['traffic_quota_error_empty'] = 'æµé‡é…é¢ä¸ºç©ºã€‚'; +$wb['error_ssl_state_empty'] = 'SSL 状æ€ä¸ºç©ºã€‚'; +$wb['error_ssl_locality_empty'] = 'SSL 地区为空。'; +$wb['error_ssl_organisation_empty'] = 'SSL 组织为空。'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL 组织å•ä½ä¸ºç©ºã€‚'; +$wb['error_ssl_country_empty'] = 'SSL 国家为空。'; +$wb['error_ssl_cert_empty'] = 'SSL è¯ä¹¦ä¸ºç©ºã€‚'; +$wb['client_group_id_txt'] = '客户'; +$wb['stats_password_txt'] = '设置 Web 统计密ç '; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'å¯ç”¨çš„最大硬盘é…é¢'; +$wb['ssl_state_error_regex'] = 'SSL 状æ€æ— 效。有效å—符为:a-z,0-9 å’Œ .,-_&äöüÄÖÜ。'; +$wb['ssl_locality_error_regex'] = 'SSL åœ°åŒºæ— æ•ˆã€‚æœ‰æ•ˆå—符为:a-z,0-9 å’Œ .,-_&äöüÄÖÜ。'; +$wb['ssl_organisation_error_regex'] = 'SSL ç»„ç»‡æ— æ•ˆã€‚æœ‰æ•ˆå—符为:a-z,0-9 å’Œ .,-_&äöüÄÖÜ。'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL 组织å•ä½æ— 效。有效å—符为:a-z,0-9 å’Œ .,-_&äöüÄÖÜ。'; +$wb['ssl_country_error_regex'] = 'SSL å›½å®¶æ— æ•ˆã€‚æœ‰æ•ˆå—符为:A-Z。'; +$wb['limit_traffic_quota_free_txt'] = 'å¯ç”¨çš„最大æµé‡é…é¢'; +$wb['redirect_error_regex'] = 'é‡å®šå‘è·¯å¾„æ— æ•ˆã€‚ä¾‹å¦‚ï¼Œæœ‰æ•ˆçš„é‡å®šå‘路径为:/test/ 或 https://www.domain.tld/test/。'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = '已超出æµé‡é…é¢'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Web 统计用户å'; +$wb['stats_type_txt'] = 'Web统计程åº'; +$wb['custom_php_ini_txt'] = '自定义php.ini设置'; +$wb['none_txt'] = 'æ— '; +$wb['disabled_txt'] = 'ç¦ç”¨'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'æ— æ ‡è®°'; +$wb['save_certificate_txt'] = 'ä¿å˜è¯ä¹¦'; +$wb['create_certificate_txt'] = '创建è¯ä¹¦'; +$wb['delete_certificate_txt'] = 'åˆ é™¤è¯ä¹¦'; +$wb['nginx_directives_txt'] = 'nginx指令'; +$wb['seo_redirect_txt'] = 'SEOé‡å®šå‘'; +$wb['non_www_to_www_txt'] = 'éžwww -> www'; +$wb['www_to_non_www_txt'] = 'www -> éžwww'; +$wb['php_fpm_use_socket_txt'] = '使用Socket连接PHP-FPM'; +$wb['error_no_sni_txt'] = 'æ¤æœåŠ¡å™¨æœªæ¿€æ´»SNIçš„SSL。æ¯ä¸ªIP地å€åªèƒ½å¯ç”¨ä¸€ä¸ªSSLè¯ä¹¦ã€‚'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM进程管ç†å™¨æœ€å¤§å进程数。'; +$wb['pm_start_servers_txt'] = 'PHP-FPM 进程管ç†å™¨èµ·å§‹æœåŠ¡å™¨æ•°'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å°çš„空闲进程数'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å¤§çš„空闲进程数'; +$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPMçš„pm设置值必须如下: 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必须为æ£æ•´æ•°ã€‚'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPMçš„pm.start_servers必须为æ£æ•´æ•°ã€‚'; +$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'] = '硬盘é…é¢æ— 效。'; +$wb['traffic_quota_error_regex'] = 'æµé‡é…é¢æ— 效。'; +$wb['server_php_id_txt'] = 'PHP版本'; +$wb['pm_txt'] = 'PHP-FPM进程管ç†å™¨'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM进程空闲超时时间'; +$wb['pm_max_requests_txt'] = 'PHP-FPM 进程管ç†å™¨æœ€å¤§è¯·æ±‚æ•°'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPMçš„ PHP-FPM进程空闲超时时间 必须为æ£æ•´æ•°ã€‚'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPMçš„pm.max_requests必须为大于ç‰äºŽ0的整数。'; +$wb['pm_ondemand_hint_txt'] = '请注æ„,您必须使用版本 >= 5.3.9 çš„PHPæ‰èƒ½ä½¿ç”¨ondemand进程管ç†å™¨ã€‚如果您为旧版本的PHP选择ondemand,PHPå°†ä¸å†å¯åŠ¨ï¼'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸ä¸€è‡´ã€‚'; +$wb['password_match_txt'] = '两次输入的密ç 一致。'; +$wb['available_php_directive_snippets_txt'] = 'å¯ç”¨çš„ PHP 指令片段:'; +$wb['available_apache_directive_snippets_txt'] = 'å¯ç”¨çš„ Apache 指令片段:'; +$wb['available_nginx_directive_snippets_txt'] = 'å¯ç”¨çš„ nginx 指令片段:'; +$wb['proxy_directives_txt'] = '代ç†æŒ‡ä»¤'; +$wb['available_proxy_directive_snippets_txt'] = 'å¯ç”¨çš„代ç†æŒ‡ä»¤ç‰‡æ®µï¼š'; +$wb['no_server_error'] = '未选择æœåŠ¡å™¨ã€‚'; +$wb['no_backup_txt'] = 'æ— å¤‡ä»½'; +$wb['daily_backup_txt'] = 'æ¯æ—¥'; +$wb['weekly_backup_txt'] = 'æ¯å‘¨'; +$wb['monthly_backup_txt'] = 'æ¯æœˆ'; +$wb['rewrite_rules_txt'] = 'é‡å†™è§„则'; +$wb['invalid_rewrite_rules_txt'] = 'æ— æ•ˆçš„é‡å†™è§„则'; +$wb['allowed_rewrite_rule_directives_txt'] = 'å…许的指令:'; +$wb['configuration_error_txt'] = 'é…置错误'; +$wb['variables_txt'] = 'å˜é‡'; +$wb['added_by_txt'] = 'æ·»åŠ è€…'; +$wb['added_date_txt'] = 'æ·»åŠ æ—¥æœŸ'; +$wb['backup_excludes_txt'] = '排除的目录'; +$wb['backup_excludes_note_txt'] = '(用逗å·åˆ†éš”多个目录。例如:web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = '排除的目录包å«æ— 效å—符。'; +$wb['invalid_custom_php_ini_settings_txt'] = 'æ— æ•ˆçš„ php.ini é…ç½®'; +$wb['invalid_system_user_or_group_txt'] = 'æ— æ•ˆçš„ç³»ç»Ÿç”¨æˆ·æˆ–ç»„'; +$wb['apache_directive_blocked_error'] = '安全设置阻æ¢äº† Apache 指令:'; +$wb['http_port_txt'] = 'HTTP 端å£'; +$wb['https_port_txt'] = 'HTTPS 端å£'; +$wb['http_port_error_regex'] = 'HTTP 端å£æ— 效。'; +$wb['https_port_error_regex'] = 'HTTPS 端å£æ— 效。'; +$wb['nginx_directive_blocked_error'] = '安全设置阻æ¢äº† nginx 指令:'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_domain_admin_list.lng b/interface/web/sites/lib/lang/cn_web_domain_admin_list.lng new file mode 100644 index 0000000000..279f528974 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_domain_admin_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['sys_groupid_txt'] = '客户'; +$wb['list_head_txt'] = '网站'; +$wb['domain_id_txt'] = 'ID'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç½‘ç«™'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_domain_list.lng b/interface/web/sites/lib/lang/cn_web_domain_list.lng new file mode 100644 index 0000000000..c408d0df90 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_domain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '网站'; +$wb['domain_id_txt'] = 'ID'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç½‘ç«™'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_folder.lng b/interface/web/sites/lib/lang/cn_web_folder.lng new file mode 100644 index 0000000000..c6747937a2 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_folder.lng @@ -0,0 +1,8 @@ +<?php +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['path_txt'] = '路径'; +$wb['active_txt'] = '激活'; +$wb['path_error_regex'] = 'æ— æ•ˆçš„æ–‡ä»¶å¤¹è·¯å¾„ã€‚'; +$wb['error_folder_already_protected_txt'] = 'æ¤æ–‡ä»¶å¤¹å·²å—ä¿æŠ¤ã€‚'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_folder_list.lng b/interface/web/sites/lib/lang/cn_web_folder_list.lng new file mode 100644 index 0000000000..91bbb859a1 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_folder_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = '文件夹'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['path_txt'] = '路径'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°æ–‡ä»¶å¤¹'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_folder_user.lng b/interface/web/sites/lib/lang/cn_web_folder_user.lng new file mode 100644 index 0000000000..5c966ca37b --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_folder_user.lng @@ -0,0 +1,14 @@ +<?php +$wb['web_folder_id_txt'] = '文件夹'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['active_txt'] = '激活'; +$wb['folder_error_empty'] = '没有选择Web文件夹。'; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸ä¸€è‡´ã€‚'; +$wb['password_match_txt'] = '两次输入的密ç 一致。'; +$wb['no_folder_perm'] = '您没有æ¤æ–‡ä»¶å¤¹çš„æƒé™ã€‚'; +$wb['error_user_exists_already_txt'] = 'æ¤ç”¨æˆ·çš„记录已ç»å˜åœ¨ã€‚'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_folder_user_list.lng b/interface/web/sites/lib/lang/cn_web_folder_user_list.lng new file mode 100644 index 0000000000..467a90df83 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_folder_user_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '文件夹用户'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['web_folder_id_txt'] = '文件夹'; +$wb['username_txt'] = '用户å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°çš„æ–‡ä»¶å¤¹ç”¨æˆ·'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_sites_stats_list.lng b/interface/web/sites/lib/lang/cn_web_sites_stats_list.lng new file mode 100644 index 0000000000..42f10bb0db --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_sites_stats_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '网站æµé‡'; +$wb['domain_txt'] = '域å'; +$wb['this_month_txt'] = '本月'; +$wb['last_month_txt'] = '上个月'; +$wb['this_year_txt'] = '今年'; +$wb['last_year_txt'] = '去年'; +$wb['sum_txt'] = '总计'; +$wb['percentage_txt'] = '使用率 %'; +$wb['quota_txt'] = 'é…é¢'; diff --git a/interface/web/sites/lib/lang/cn_web_subdomain.lng b/interface/web/sites/lib/lang/cn_web_subdomain.lng new file mode 100644 index 0000000000..3529d2ee31 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_subdomain.lng @@ -0,0 +1,54 @@ +<?php +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_request_txt'] = 'SSLè¯ä¹¦ç¾å‘请求'; +$wb['ssl_cert_txt'] = 'SSLè¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSLä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSLæ“作'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['type_txt'] = '类型'; +$wb['parent_domain_id_txt'] = '上级网站'; +$wb['redirect_type_txt'] = 'é‡å®šå‘类型'; +$wb['r_redirect_txt'] = 'R (临时é‡å®šå‘)'; +$wb['l_redirect_txt'] = 'L (最åŽé‡å®šå‘规则)'; +$wb['r_l_redirect_txt'] = 'R,L (临时é‡å®šå‘ + 最åŽè§„则)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (永久é‡å®šå‘ + 最åŽè§„则)'; +$wb['redirect_path_txt'] = 'é‡å®šå‘路径'; +$wb['active_txt'] = '激活'; +$wb['document_root_txt'] = '网站目录'; +$wb['system_user_txt'] = 'Linux用户'; +$wb['system_group_txt'] = 'Linux用户组'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['vhost_type_txt'] = '虚拟主机类型'; +$wb['hd_quota_txt'] = '硬盘é…é¢'; +$wb['traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = '客户'; +$wb['limit_web_domain_txt'] = '您的å¸æˆ·ä¸çš„网站数é‡å·²è¾¾åˆ°æœ€å¤§é™åˆ¶ã€‚'; +$wb['limit_web_aliasdomain_txt'] = '您的å¸æˆ·ä¸çš„别å域åæ•°é‡å·²è¾¾åˆ°æœ€å¤§é™åˆ¶ã€‚'; +$wb['limit_web_subdomain_txt'] = '您的å¸æˆ·ä¸çš„å域åæ•°é‡å·²è¾¾åˆ°æœ€å¤§é™åˆ¶ã€‚'; +$wb['apache_directives_txt'] = 'Apache 指令'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = 'å·²ç»æœ‰ä¸€ä¸ªå…·æœ‰è¯¥åŸŸå的网站或å域å/别å域å。'; +$wb['domain_error_regex'] = '域åæ— æ•ˆã€‚'; +$wb['domain_error_wildcard'] = 'ä¸å…许使用通é…符å域å。'; +$wb['host_txt'] = '主机'; +$wb['redirect_error_regex'] = 'æ— æ•ˆçš„é‡å®šå‘路径。有效的é‡å®šå‘路径示例:/test/ 或 https://www.domain.tld/test/。'; +$wb['no_redirect_txt'] = 'æ— é‡å®šå‘'; +$wb['no_flag_txt'] = 'æ— æ ‡å¿—'; +$wb['proxy_directives_txt'] = '代ç†æŒ‡ä»¤'; +$wb['available_proxy_directive_snippets_txt'] = 'å¯ç”¨çš„代ç†æŒ‡ä»¤ç‰‡æ®µï¼š'; +$wb['error_proxy_requires_url'] = 'é‡å®šå‘类型“proxyâ€éœ€è¦URL作为é‡å®šå‘路径。'; +$wb['http_port_txt'] = 'HTTP 端å£'; +$wb['https_port_txt'] = 'HTTPS 端å£'; +$wb['http_port_error_regex'] = 'HTTP 端å£æ— 效。'; +$wb['https_port_error_regex'] = 'HTTPS 端å£æ— 效。'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_subdomain_list.lng b/interface/web/sites/lib/lang/cn_web_subdomain_list.lng new file mode 100644 index 0000000000..0eb6664632 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_subdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'å域å列表'; +$wb['active_txt'] = '状æ€'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['domain_txt'] = 'å域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°å域å'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_vhost_domain.lng b/interface/web/sites/lib/lang/cn_web_vhost_domain.lng new file mode 100644 index 0000000000..2e5f18e80e --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_vhost_domain.lng @@ -0,0 +1,209 @@ +<?php +$wb['backup_interval_txt'] = '备份间隔'; +$wb['backup_copies_txt'] = '备份副本数é‡'; +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_key_txt'] = 'SSL 密钥'; +$wb['ssl_request_txt'] = 'SSL è¯ä¹¦ç¾å‘请求'; +$wb['ssl_cert_txt'] = 'SSL è¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSL ä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSL æ“作'; +$wb['ssl_domain_txt'] = 'SSL 域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['web_folder_error_regex'] = 'æ— æ•ˆçš„æ–‡ä»¶å¤¹è·¯å¾„ï¼Œè¯·å‹¿è¾“å…¥æ–œæ 。'; +$wb['web_folder_error_empty'] = 'Web 文件夹ä¸èƒ½ä¸ºç©ºã€‚使用 /web/ 使其与父网站相åŒ'; +$wb['type_txt'] = '类型'; +$wb['parent_domain_id_txt'] = '父网站'; +$wb['redirect_type_txt'] = 'é‡å®šå‘类型'; +$wb['r_redirect_txt'] = 'R(临时é‡å®šå‘)'; +$wb['l_redirect_txt'] = 'L(最åŽçš„é‡å®šå‘规则)'; +$wb['r_l_redirect_txt'] = 'R,L(临时é‡å®šå‘+最åŽè§„则)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L(永久é‡å®šå‘+最åŽè§„则)'; +$wb['redirect_path_txt'] = 'é‡å®šå‘路径'; +$wb['active_txt'] = '激活'; +$wb['document_root_txt'] = 'æ–‡æ¡£æ ¹ç›®å½•'; +$wb['system_user_txt'] = 'Linux 用户'; +$wb['system_group_txt'] = 'Linux 组'; +$wb['ip_address_txt'] = 'IPv4 地å€'; +$wb['ipv6_address_txt'] = 'IPv6 地å€'; +$wb['vhost_type_txt'] = '虚拟主机类型'; +$wb['hd_quota_txt'] = '硬盘é…é¢'; +$wb['traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = '自定义错误页é¢'; +$wb['subdomain_txt'] = '自动å域å'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = '客户'; +$wb['limit_web_domain_txt'] = '您的å¸æˆ·ä¸çš„最大Web域数已达到上é™ã€‚'; +$wb['limit_web_aliasdomain_txt'] = '您的å¸æˆ·ä¸çš„最大别å域数已达到上é™ã€‚'; +$wb['limit_web_subdomain_txt'] = '您的å¸æˆ·ä¸çš„最大Webå域数已达到上é™ã€‚'; +$wb['apache_directives_txt'] = 'Apache 指令'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = 'å·²ç»æœ‰æ¤åŸŸå的网站或å/别å域å。'; +$wb['domain_error_regex'] = '域åæ— æ•ˆã€‚'; +$wb['domain_error_acme_invalid'] = 'ä¸å…许域åacme.invalid。'; +$wb['domain_error_autosub'] = 'å·²ç»æœ‰æ¤è®¾ç½®çš„å域å。'; +$wb['hd_quota_error_empty'] = '硬盘é…é¢ä¸º0或为空。'; +$wb['traffic_quota_error_empty'] = 'æµé‡é…é¢ä¸ºç©ºã€‚'; +$wb['error_ssl_state_empty'] = 'SSL 状æ€ä¸ºç©ºã€‚'; +$wb['error_ssl_locality_empty'] = 'SSL 所在地为空。'; +$wb['error_ssl_organisation_empty'] = 'SSL 组织为空。'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL 组织å•ä½ä¸ºç©ºã€‚'; +$wb['error_ssl_country_empty'] = 'SSL 国家为空。'; +$wb['error_ssl_cert_empty'] = 'SSL è¯ä¹¦ä¸ºç©ºã€‚'; +$wb['client_group_id_txt'] = '客户'; +$wb['stats_password_txt'] = '设置 Web 统计密ç '; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = '最大å¯ç”¨ç¡¬ç›˜é…é¢'; +$wb['ssl_state_error_regex'] = 'æ— æ•ˆçš„SSL状æ€ã€‚有效å—符为:a-z,0-9å’Œ .,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'æ— æ•ˆçš„SSL所在地。有效å—符为:a-z,0-9å’Œ .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'æ— æ•ˆçš„SSL组织。有效å—符为:a-z,0-9å’Œ .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'æ— æ•ˆçš„SSL组织å•ä½ã€‚有效å—符为:a-z,0-9å’Œ .,-_&äöüÄÖÜ'; +$wb['ssl_country_error_regex'] = 'æ— æ•ˆçš„SSL国家。有效å—符为:A-Z'; +$wb['limit_traffic_quota_free_txt'] = '最大å¯ç”¨æµé‡é…é¢'; +$wb['redirect_error_regex'] = 'æ— æ•ˆçš„é‡å®šå‘路径。有效的é‡å®šå‘路径例如:/test/ 或 https://www.domain.tld/test/ '; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'æµé‡é…é¢è¶…过'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Web统计用户å'; +$wb['stats_type_txt'] = 'Web统计程åº'; +$wb['custom_php_ini_txt'] = '自定义php.ini设置'; +$wb['none_txt'] = 'æ— '; +$wb['disabled_txt'] = 'ç¦ç”¨'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'æ— æ ‡å¿—'; +$wb['save_certificate_txt'] = 'ä¿å˜è¯ä¹¦'; +$wb['create_certificate_txt'] = '创建è¯ä¹¦'; +$wb['delete_certificate_txt'] = 'åˆ é™¤è¯ä¹¦'; +$wb['nginx_directives_txt'] = 'nginx指令'; +$wb['seo_redirect_txt'] = 'SEOé‡å®šå‘'; +$wb['non_www_to_www_txt'] = 'éžwww -> www'; +$wb['www_to_non_www_txt'] = 'www -> éžwww'; +$wb['php_fpm_use_socket_txt'] = '使用Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; +$wb['error_no_sni_txt'] = '该æœåŠ¡å™¨æœªå¯ç”¨SNIè¯ä¹¦ã€‚您åªèƒ½åœ¨æ¯ä¸ªIP地å€ä¸Šå¯ç”¨ä¸€ä¸ªSSLè¯ä¹¦ã€‚'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM进程管ç†å™¨æœ€å¤§å进程数。'; +$wb['pm_start_servers_txt'] = 'PHP-FPM 进程管ç†å™¨èµ·å§‹æœåŠ¡å™¨æ•°'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å°çš„空闲进程数'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å¤§çš„空闲进程数'; +$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPMçš„pm设置值必须如下: 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必须为æ£æ•´æ•°ã€‚'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPMçš„pm.start_servers必须为æ£æ•´æ•°ã€‚'; +$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'] = '硬盘é…é¢æ— 效。'; +$wb['traffic_quota_error_regex'] = 'æµé‡é…é¢æ— 效。'; +$wb['server_php_id_txt'] = 'PHP 版本'; +$wb['server_php_id_invalid_txt'] = 'PHP ç‰ˆæœ¬æ— æ•ˆã€‚'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP 版本已设置为“默认â€ï¼Œä½†çŽ°åœ¨æ— 法选择。请选择所需的 PHP 版本并ä¿å˜è®¾ç½®ã€‚'; +$wb['pm_txt'] = 'PHP-FPM进程管ç†å™¨'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM进程空闲超时时间'; +$wb['pm_max_requests_txt'] = 'PHP-FPM 进程管ç†å™¨æœ€å¤§è¯·æ±‚æ•°'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPMçš„ PHP-FPM进程空闲超时时间 必须为æ£æ•´æ•°ã€‚'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests 必须是 >=0 的整数值。'; +$wb['pm_ondemand_hint_txt'] = '请注æ„,您必须具有 PHP 版本 >= 5.3.9 æ‰èƒ½ä½¿ç”¨æŒ‰éœ€è¿›ç¨‹ç®¡ç†å™¨ã€‚如果您为旧版本的 PHP 选择了按需进程管ç†å™¨ï¼Œåˆ™ PHP å°†ä¸å†å¯åŠ¨ï¼'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['available_php_directive_snippets_txt'] = 'å¯ç”¨çš„PHP指令片段:'; +$wb['available_apache_directive_snippets_txt'] = 'å¯ç”¨çš„Apache指令片段:'; +$wb['available_nginx_directive_snippets_txt'] = 'å¯ç”¨çš„nginx指令片段:'; +$wb['proxy_directives_txt'] = '代ç†æŒ‡ä»¤'; +$wb['available_proxy_directive_snippets_txt'] = 'å¯ç”¨çš„代ç†æŒ‡ä»¤ç‰‡æ®µï¼š'; +$wb['no_server_error'] = '未选择æœåŠ¡å™¨ã€‚'; +$wb['no_backup_txt'] = 'æ— å¤‡ä»½'; +$wb['daily_backup_txt'] = 'æ¯æ—¥'; +$wb['weekly_backup_txt'] = 'æ¯å‘¨'; +$wb['monthly_backup_txt'] = 'æ¯æœˆ'; +$wb['rewrite_rules_txt'] = 'é‡å†™è§„则'; +$wb['invalid_rewrite_rules_txt'] = 'æ— æ•ˆçš„é‡å†™è§„则'; +$wb['allowed_rewrite_rule_directives_txt'] = 'å…许的指令:'; +$wb['configuration_error_txt'] = 'é…置错误'; +$wb['server_chosen_not_ok'] = '所选æœåŠ¡å™¨ä¸å…许该å¸æˆ·ã€‚'; +$wb['variables_txt'] = 'å˜é‡'; +$wb['added_by_txt'] = 'æ·»åŠ è€…'; +$wb['added_date_txt'] = 'æ·»åŠ æ—¥æœŸ'; +$wb['backup_excludes_txt'] = '排除的目录'; +$wb['backup_excludes_note_txt'] = '(用逗å·åˆ†éš”多个目录。示例:web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = '排除的目录包å«æ— 效å—符。'; +$wb['web_folder_txt'] = '网站目录'; +$wb['web_folder_invalid_txt'] = 'ç½‘ç«™ç›®å½•æ— æ•ˆï¼Œè¯·é€‰æ‹©å…¶ä»–ç›®å½•ã€‚'; +$wb['web_folder_unique_txt'] = '网站目录已被使用,请选择其他目录。'; +$wb['host_txt'] = '主机å'; +$wb['domain_error_wildcard'] = 'ä¸å…许使用通é…符å域å。'; +$wb['variables_txt'] = 'å˜é‡'; +$wb['backup_excludes_txt'] = '排除的目录'; +$wb['backup_excludes_note_txt'] = '(用逗å·åˆ†éš”多个目录。示例:web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = '排除的目录包å«æ— 效å—符。'; +$wb['subdomain_error_empty'] = 'å域åå—段为空或包å«æ— 效å—符。'; +$wb['btn_save_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['load_client_data_txt'] = 'åŠ è½½å®¢æˆ·è¯¦ç»†ä¿¡æ¯'; +$wb['load_my_data_txt'] = 'åŠ è½½æˆ‘çš„è”系方å¼'; +$wb['reset_client_data_txt'] = 'é‡ç½®æ•°æ®'; +$wb['document_root_txt'] = 'æ–‡æ¡£æ ¹ç›®å½•'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL'; +$wb['rewrite_to_https_txt'] = 'å°†HTTPé‡å†™ä¸ºHTTPS'; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['directive_snippets_id_txt'] = 'WebæœåŠ¡å™¨é…ç½®'; +$wb['http_port_txt'] = 'HTTP端å£'; +$wb['https_port_txt'] = 'HTTPS端å£'; +$wb['http_port_error_regex'] = 'HTTP端å£æ— 效。'; +$wb['https_port_error_regex'] = 'HTTPS端å£æ— 效。'; +$wb['enable_pagespeed_txt'] = 'å¯ç”¨PageSpeed'; +$wb['log_retention_txt'] = '日志ä¿ç•™æ—¶é—´'; +$wb['log_retention_error_regex'] = 'ä¿ç•™æ—¶é—´ä¸ºå¤©æ•°ï¼ˆå…许的值:最å°0-最大9999)'; +$wb['dependent_domains_txt'] = '相关å域å/别å域å'; +$wb['limit_web_quota_not_0_txt'] = '硬盘é…é¢ä¸èƒ½è®¾ä¸º0。'; +$wb['proxy_protocol_txt'] = 'å¯ç”¨PROXYåè®®'; +$wb['backup_format_web_txt'] = 'Webæ–‡ä»¶å¤‡ä»½æ ¼å¼'; +$wb['backup_format_db_txt'] = 'æ•°æ®åº“å¤‡ä»½æ ¼å¼'; +$wb['backup_missing_utils_txt'] = 'ä»¥ä¸‹æ ¼å¼ä¸èƒ½ä½¿ç”¨ï¼Œå› 为它们未安装在WebæœåŠ¡å™¨ä¸Šï¼š'; +$wb['backup_compression_options_txt'] = '压缩选项'; +$wb['backup_encryption_note_txt'] = 'åŠ å¯†ä»…é€‚ç”¨äºŽ7z,RARå’Œzip(ä¸å®‰å…¨ï¼‰ã€‚'; +$wb['backup_encryption_options_txt'] = 'åŠ å¯†é€‰é¡¹'; +$wb['backup_enable_encryption_txt'] = 'å¯ç”¨åŠ 密'; +$wb['backup_password_txt'] = '密ç '; +$wb['backup_format_default_txt'] = '默认:zip(deflate)或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)'; +$wb['error_ipv4_change_forbidden'] = 'IP地å€æ— 法更改。如果您想更改IPv4地å€ï¼Œè¯·è”系您的管ç†å‘˜ã€‚'; +$wb['error_ipv6_change_forbidden'] = 'IP地å€æ— 法更改。如果您想更改IPv6地å€ï¼Œè¯·è”系您的管ç†å‘˜ã€‚'; +$wb['error_domain_change_forbidden'] = '域åä¸èƒ½æ›´æ”¹ã€‚如果è¦æ›´æ”¹åŸŸå,请è”系管ç†å‘˜ã€‚'; +$wb['error_server_change_not_possible'] = 'æœåŠ¡å™¨ä¸èƒ½æ›´æ”¹ã€‚'; +$wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot应用程åºéƒ¨åˆ†'; +$wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chroot应用程åº'; +$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit chroot应用程åºéƒ¨åˆ†ä¸ºç©ºã€‚'; +$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit chroot应用程åºä¸ºç©ºã€‚'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'æ— æ•ˆçš„jaikit chroot部分。'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'æ— æ•ˆçš„jaikit chroot应用程åºã€‚'; +$wb['tooltip_jailkit_chroot_app_sections_txt'] = '如果为空,则使用æ¥è‡ªæœåŠ¡å™¨é…置的Jailkit chroot应用程åºéƒ¨åˆ†'; +$wb['tooltip_jailkit_chroot_app_programs_txt'] = '如果为空,则使用æ¥è‡ªæœåŠ¡å™¨é…置的Jailkit chroot应用程åº'; +$wb['delete_unused_jailkit_txt'] = 'åˆ é™¤æœªä½¿ç”¨çš„jailkit chroot'; +$wb['tooltip_delete_unused_jailkit_txt'] = 'åˆ é™¤æ²¡æœ‰éœ€è¦å®ƒçš„shell用户或cron作业的jailkit chroot环境。'; +$wb['ssl_options_not_for_le_txt'] = '您已为æ¤ç½‘ç«™å¯ç”¨Let\'s Encryptè¯ä¹¦ã€‚请注æ„,æ¤é¡µé¢ä¸Šçš„所有选项仅适用于éžLet\'s Encryptè¯ä¹¦ã€‚如果è¦åˆ‡æ¢åˆ°ä¸åŒçš„è¯ä¹¦ï¼Œè¯·è®°å¾—在主选项å¡ä¸Šå–消选ä¸Let\'s Encrypt。'; diff --git a/interface/web/sites/lib/lang/cn_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/cn_web_vhost_domain_admin_list.lng new file mode 100644 index 0000000000..4baaa4bc29 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_vhost_domain_admin_list.lng @@ -0,0 +1,14 @@ +<?php +$wb['sys_groupid_txt'] = '客户'; +$wb['list_head_txt'] = '网站'; +$wb['domain_id_txt'] = 'ID'; +$wb['active_txt'] = '活动的'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç½‘ç«™'; +$wb['add_new_subdomain_txt'] = 'æ·»åŠ æ–°å域å'; +$wb['add_new_aliasdomain_txt'] = 'æ·»åŠ æ–°åˆ«å域å'; +$wb['domain_list_head_txt'] = '网站'; +$wb['aliasdomain_list_head_txt'] = '别å域å(Vhost)'; +$wb['subdomain_list_head_txt'] = 'å域å(Vhost)'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/cn_web_vhost_domain_list.lng new file mode 100644 index 0000000000..b65538efda --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_vhost_domain_list.lng @@ -0,0 +1,14 @@ +<?php +$wb['list_head_txt'] = '网站'; +$wb['domain_id_txt'] = 'ID'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°ç½‘ç«™'; +$wb['add_new_subdomain_txt'] = 'æ·»åŠ æ–°å域å'; +$wb['add_new_aliasdomain_txt'] = 'æ·»åŠ æ–°åˆ«å域å'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['domain_list_head_txt'] = '网站'; +$wb['aliasdomain_list_head_txt'] = '别å域å(Vhost)'; +$wb['subdomain_list_head_txt'] = 'å域å(Vhost)'; +?> diff --git a/interface/web/sites/lib/lang/cn_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cn_web_vhost_subdomain.lng new file mode 100644 index 0000000000..0d5cf4cad8 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_vhost_subdomain.lng @@ -0,0 +1,136 @@ +<?php +$wb['parent_domain_id_txt'] = '网站'; +$wb['web_folder_txt'] = 'Web 文件夹'; +$wb['web_folder_invalid_txt'] = 'Web æ–‡ä»¶å¤¹æ— æ•ˆï¼Œè¯·é€‰æ‹©å¦ä¸€ä¸ªã€‚'; +$wb['web_folder_unique_txt'] = 'Web 文件夹已ç»è¢«ä½¿ç”¨ï¼Œè¯·é€‰æ‹©å¦ä¸€ä¸ªã€‚'; +$wb['backup_interval_txt'] = '备份间隔'; +$wb['backup_copies_txt'] = '备份副本数é‡'; +$wb['ssl_state_txt'] = 'çœä»½/å·ž'; +$wb['ssl_locality_txt'] = '城市'; +$wb['ssl_organisation_txt'] = '组织'; +$wb['ssl_organisation_unit_txt'] = '部门'; +$wb['ssl_country_txt'] = '国家/地区'; +$wb['ssl_key_txt'] = 'SSL 密钥'; +$wb['ssl_request_txt'] = 'SSL è¯ä¹¦ç¾å‘请求'; +$wb['ssl_cert_txt'] = 'SSL è¯ä¹¦'; +$wb['ssl_bundle_txt'] = 'SSL ä¸é—´è¯ä¹¦é“¾'; +$wb['ssl_action_txt'] = 'SSL æ“作'; +$wb['ssl_domain_txt'] = 'SSL 域å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['domain_txt'] = '域å'; +$wb['host_txt'] = '主机å'; +$wb['web_folder_error_regex'] = 'è¾“å…¥çš„æ–‡ä»¶å¤¹æ— æ•ˆã€‚è¯·å‹¿è¾“å…¥æ–œæ 。'; +$wb['web_folder_error_empty'] = 'Web 文件夹ä¸èƒ½ä¸ºç©ºã€‚使用 /web/ å¯ä»¥å°†å…¶è®¾ç½®ä¸ºä¸Žç½‘站相åŒ'; +$wb['type_txt'] = '类型'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['redirect_type_txt'] = 'é‡å®šå‘类型'; +$wb['r_redirect_txt'] = 'R(临时é‡å®šå‘)'; +$wb['l_redirect_txt'] = 'L(最åŽä¸€ä¸ªé‡å®šå‘规则)'; +$wb['r_l_redirect_txt'] = 'R,L(临时é‡å®šå‘ + 最åŽä¸€ä¸ªè§„则)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L(永久é‡å®šå‘ + 最åŽä¸€ä¸ªè§„则)'; +$wb['redirect_path_txt'] = 'é‡å®šå‘路径'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['document_root_txt'] = 'æ–‡æ¡£æ ¹ç›®å½•'; +$wb['system_user_txt'] = 'Linux 用户'; +$wb['system_group_txt'] = 'Linux 用户组'; +$wb['ip_address_txt'] = 'IPv4 地å€'; +$wb['ipv6_address_txt'] = 'IPv6 地å€'; +$wb['vhost_type_txt'] = '虚拟主机类型'; +$wb['hd_quota_txt'] = '硬盘é…é¢'; +$wb['traffic_quota_txt'] = 'æµé‡é…é¢'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = '自定义错误页'; +$wb['subdomain_txt'] = '自动生æˆå域å'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = '客户'; +$wb['limit_web_domain_txt'] = '您的账户已达到最大网站数é™åˆ¶ã€‚'; +$wb['limit_web_aliasdomain_txt'] = '您的账户已达到最大别å域åæ•°é™åˆ¶ã€‚'; +$wb['limit_web_subdomain_txt'] = '您的账户已达到最大å域åæ•°é™åˆ¶ã€‚'; +$wb['apache_directives_txt'] = 'Apache 指令'; +$wb['domain_error_empty'] = '域å为空。'; +$wb['domain_error_unique'] = '该域å已被使用。'; +$wb['domain_error_regex'] = '域åæ ¼å¼ä¸æ£ç¡®ã€‚'; +$wb['domain_error_wildcard'] = 'ä¸å…许使用通é…符å域å。'; +$wb['hd_quota_error_empty'] = '硬盘é…é¢ä¸ºç©ºæˆ–为 0。'; +$wb['traffic_quota_error_empty'] = 'æµé‡é…é¢ä¸ºç©ºã€‚'; +$wb['error_ssl_state_empty'] = 'SSL 状æ€ä¸ºç©ºã€‚'; +$wb['error_ssl_locality_empty'] = 'SSL 地区为空。'; +$wb['error_ssl_organisation_empty'] = 'SSL 组织为空。'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL 组织å•ä½ä¸ºç©ºã€‚'; +$wb['error_ssl_country_empty'] = 'SSL 国家为空。'; +$wb['error_ssl_cert_empty'] = 'SSL è¯ä¹¦å—段为空。'; +$wb['client_group_id_txt'] = '客户'; +$wb['stats_password_txt'] = '设置 Web 统计密ç '; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = '最大å¯ç”¨ç¡¬ç›˜é…é¢'; +$wb['ssl_state_error_regex'] = 'SSL 状æ€æ— 效。有效å—符为:a-zã€0-9 å’Œ .,-_'; +$wb['ssl_locality_error_regex'] = 'SSL åœ°åŒºæ— æ•ˆã€‚æœ‰æ•ˆå—符为:a-zã€0-9 å’Œ .,-_'; +$wb['ssl_organisation_error_regex'] = 'SSL ç»„ç»‡æ— æ•ˆã€‚æœ‰æ•ˆå—符为:a-zã€0-9 å’Œ .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL 组织å•ä½æ— 效。有效å—符为:a-zã€0-9 å’Œ .,-_'; +$wb['ssl_country_error_regex'] = 'SSL å›½å®¶æ— æ•ˆã€‚æœ‰æ•ˆå—符为:A-Z'; +$wb['limit_traffic_quota_free_txt'] = '最大å¯ç”¨æµé‡é…é¢'; +$wb['redirect_error_regex'] = 'é‡å®šå‘è·¯å¾„æ— æ•ˆã€‚ä¾‹å¦‚æœ‰æ•ˆçš„é‡å®šå‘路径为:/test/ 或 https://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'æµé‡é…é¢è¶…出é™åˆ¶'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Web统计用户å'; +$wb['stats_type_txt'] = 'Web统计程åº'; +$wb['custom_php_ini_txt'] = '自定义php.ini设置'; +$wb['none_txt'] = 'æ— '; +$wb['disabled_txt'] = 'ç¦ç”¨'; +$wb['no_redirect_txt'] = 'ä¸é‡å®šå‘'; +$wb['no_flag_txt'] = 'æ— æ ‡å¿—'; +$wb['save_certificate_txt'] = 'ä¿å˜è¯ä¹¦'; +$wb['create_certificate_txt'] = '创建è¯ä¹¦'; +$wb['delete_certificate_txt'] = 'åˆ é™¤è¯ä¹¦'; +$wb['nginx_directives_txt'] = 'nginx指令'; +$wb['seo_redirect_txt'] = 'SEOé‡å®šå‘'; +$wb['non_www_to_www_txt'] = 'éžwww -> www'; +$wb['www_to_non_www_txt'] = 'www -> éžwww'; +$wb['php_fpm_use_socket_txt'] = '使用Socket进行PHP-FPM'; +$wb['error_no_sni_txt'] = 'æ¤æœåŠ¡å™¨ä¸Šæœªæ¿€æ´»SSLçš„SNI。æ¯ä¸ªIP地å€åªèƒ½å¯ç”¨ä¸€ä¸ªSSLè¯ä¹¦ã€‚'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM进程管ç†å™¨æœ€å¤§å进程数。'; +$wb['pm_start_servers_txt'] = 'PHP-FPM 进程管ç†å™¨èµ·å§‹æœåŠ¡å™¨æ•°'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å°çš„空闲进程数'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM进程管ç†å™¨ä¸æœ€å¤§çš„空闲进程数'; +$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPMçš„pm设置值必须如下: 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必须为æ£æ•´æ•°ã€‚'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPMçš„pm.start_servers必须为æ£æ•´æ•°ã€‚'; +$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'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM进程空闲超时时间'; +$wb['pm_max_requests_txt'] = 'PHP-FPM 进程管ç†å™¨æœ€å¤§è¯·æ±‚æ•°'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPMçš„ PHP-FPM进程空闲超时时间 必须为æ£æ•´æ•°ã€‚'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests 必须是 >=0 的整数值。'; +$wb['pm_ondemand_hint_txt'] = '请注æ„,您必须具有 PHP 版本 >= 5.3.9 æ‰èƒ½ä½¿ç”¨æŒ‰éœ€è¿›ç¨‹ç®¡ç†å™¨ã€‚如果您为旧版本的 PHP 选择了按需进程管ç†å™¨ï¼Œåˆ™ PHP å°†ä¸å†å¯åŠ¨ï¼'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '密ç 匹é…。'; +$wb['available_php_directive_snippets_txt'] = 'å¯ç”¨çš„ PHP 指令片段:'; +$wb['available_apache_directive_snippets_txt'] = 'å¯ç”¨çš„ Apache 指令片段:'; +$wb['available_nginx_directive_snippets_txt'] = 'å¯ç”¨çš„ Nginx 指令片段:'; +$wb['proxy_directives_txt'] = '代ç†æŒ‡ä»¤'; +$wb['available_proxy_directive_snippets_txt'] = 'å¯ç”¨çš„代ç†æŒ‡ä»¤ç‰‡æ®µï¼š'; +$wb['rewrite_rules_txt'] = 'é‡å†™è§„则'; +$wb['invalid_rewrite_rules_txt'] = 'æ— æ•ˆçš„é‡å†™è§„则'; +$wb['allowed_rewrite_rule_directives_txt'] = 'å…许的指令:'; +$wb['configuration_error_txt'] = 'é…置错误'; +$wb['variables_txt'] = 'å˜é‡'; +$wb['backup_excludes_txt'] = '排除的目录'; +$wb['backup_excludes_note_txt'] = '(使用逗å·åˆ†éš”多个目录。例如:web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = '排除的目录包å«æ— 效å—符。'; +$wb['subdomain_error_empty'] = 'å域åå—段为空或包å«æ— 效å—符。'; +$wb['http_port_txt'] = 'HTTP 端å£'; +$wb['https_port_txt'] = 'HTTPS 端å£'; +$wb['http_port_error_regex'] = 'HTTP 端å£æ— 效。'; +$wb['https_port_error_regex'] = 'HTTPS 端å£æ— 效。'; diff --git a/interface/web/sites/lib/lang/cn_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/cn_web_vhost_subdomain_list.lng new file mode 100644 index 0000000000..6209cb34d0 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_web_vhost_subdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'å域å'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['domain_txt'] = 'å域å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°å域å'; +?> diff --git a/interface/web/sites/lib/lang/cn_webdav_user.lng b/interface/web/sites/lib/lang/cn_webdav_user.lng new file mode 100644 index 0000000000..4b5a1e3888 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_webdav_user.lng @@ -0,0 +1,21 @@ +<?php +$wb['dir_txt'] = '目录'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['username_txt'] = '用户å'; +$wb['password_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['active_txt'] = '活动'; +$wb['limit_webdav_user_txt'] = '您的å¸æˆ·çš„WebDAV用户数é‡å·²è¾¾åˆ°ä¸Šé™ã€‚'; +$wb['username_error_empty'] = '用户å为空。'; +$wb['username_error_unique'] = '用户å必须是唯一的。'; +$wb['username_error_regex'] = '用户å包å«ä¸å…许的å—符。'; +$wb['directory_error_empty'] = '目录为空。'; +$wb['parent_domain_id_error_empty'] = '未选择网站。'; +$wb['dir_dot_error'] = '路径ä¸ä¸å…许 .. 。'; +$wb['dir_slashdot_error'] = '路径ä¸ä¸å…许 ./ 。'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '两次密ç 匹é…。'; +?> diff --git a/interface/web/sites/lib/lang/cn_webdav_user_list.lng b/interface/web/sites/lib/lang/cn_webdav_user_list.lng new file mode 100644 index 0000000000..a1899aade9 --- /dev/null +++ b/interface/web/sites/lib/lang/cn_webdav_user_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Webdav-用户'; +$wb['active_txt'] = '激活'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['parent_domain_id_txt'] = '网站'; +$wb['username_txt'] = '用户å'; +$wb['add_new_record_txt'] = 'æ·»åŠ æ–°Webdav用户'; +?> diff --git a/interface/web/sites/list/cron.list.php b/interface/web/sites/list/cron.list.php index fc8c9691a6..ac5513ad9a 100644 --- a/interface/web/sites/list/cron.list.php +++ b/interface/web/sites/list/cron.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', @@ -73,7 +73,7 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", 'op' => "=", 'prefix' => "", diff --git a/interface/web/sites/list/database.list.php b/interface/web/sites/list/database.list.php index 25e1b8de7f..438837ffc9 100644 --- a/interface/web/sites/list/database.list.php +++ b/interface/web/sites/list/database.list.php @@ -103,9 +103,9 @@ if($_SESSION['s']['user']['typ'] == 'admin') { $liste["item"][] = array( 'field' => "server_id", 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT a.server_id, a.server_name FROM server a, web_database b WHERE (a.server_id = b.server_id) AND ({AUTHSQL-B}) ORDER BY a.server_name', 'keyfield'=> 'server_id', @@ -115,7 +115,7 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'filters' => array( 0 => array( 'event' => 'SHOW', 'type' => 'IDNTOUTF8') ), diff --git a/interface/web/sites/list/ftp_user.list.php b/interface/web/sites/list/ftp_user.list.php index 20a8a327ac..d754ac07a5 100644 --- a/interface/web/sites/list/ftp_user.list.php +++ b/interface/web/sites/list/ftp_user.list.php @@ -61,9 +61,9 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT a.server_id, a.server_name FROM server a, ftp_user b WHERE (a.server_id = b.server_id) AND ({AUTHSQL-B}) ORDER BY a.server_name', 'keyfield'=> 'server_id', @@ -73,7 +73,7 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'filters' => array( 0 => array( 'event' => 'SHOW', 'type' => 'IDNTOUTF8') ), diff --git a/interface/web/sites/list/shell_user.list.php b/interface/web/sites/list/shell_user.list.php index 3f51082d6e..08fa344d85 100644 --- a/interface/web/sites/list/shell_user.list.php +++ b/interface/web/sites/list/shell_user.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', @@ -73,7 +73,7 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'filters' => array( 0 => array( 'event' => 'SHOW', 'type' => 'IDNTOUTF8') ), diff --git a/interface/web/sites/list/web_childdomain.list.php b/interface/web/sites/list/web_childdomain.list.php index 202744e8de..c9760662d7 100644 --- a/interface/web/sites/list/web_childdomain.list.php +++ b/interface/web/sites/list/web_childdomain.list.php @@ -61,9 +61,9 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT a.server_id, a.server_name FROM server a, web_domain b WHERE (a.server_id = b.server_id) AND ({AUTHSQL-B}) ORDER BY a.server_name', 'keyfield'=> 'server_id', diff --git a/interface/web/sites/list/web_folder.list.php b/interface/web/sites/list/web_folder.list.php index dc2fb0418a..c881bfc948 100644 --- a/interface/web/sites/list/web_folder.list.php +++ b/interface/web/sites/list/web_folder.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', @@ -73,7 +73,7 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'filters' => array( 0 => array( 'event' => 'SHOW', 'type' => 'IDNTOUTF8') ), diff --git a/interface/web/sites/list/web_folder_user.list.php b/interface/web/sites/list/web_folder_user.list.php index f0a1cd8ad2..a6f50fa2a4 100644 --- a/interface/web/sites/list/web_folder_user.list.php +++ b/interface/web/sites/list/web_folder_user.list.php @@ -61,7 +61,7 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "web_folder_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'filters' => array( 0 => array( 'event' => 'SHOW', 'type' => 'IDNTOUTF8') ), diff --git a/interface/web/sites/list/webdav_user.list.php b/interface/web/sites/list/webdav_user.list.php index 04b772d156..66e8a221a0 100644 --- a/interface/web/sites/list/webdav_user.list.php +++ b/interface/web/sites/list/webdav_user.list.php @@ -59,11 +59,11 @@ $liste["item"][] = array( 'field' => "active", $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} and mirror_server_id = 0 ORDER BY server_name', 'keyfield'=> 'server_id', @@ -73,7 +73,7 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", 'op' => "=", 'prefix' => "", diff --git a/interface/web/strengthmeter/lib/lang/cn_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/cn_strengthmeter.lng new file mode 100644 index 0000000000..b1b16dd2ac --- /dev/null +++ b/interface/web/strengthmeter/lib/lang/cn_strengthmeter.lng @@ -0,0 +1,8 @@ +<?php +$wb['password_strength_0_txt'] = '太çŸ'; +$wb['password_strength_1_txt'] = 'å¼±'; +$wb['password_strength_2_txt'] = '一般'; +$wb['password_strength_3_txt'] = '好'; +$wb['password_strength_4_txt'] = '强'; +$wb['password_strength_5_txt'] = 'éžå¸¸å¼º'; +?> diff --git a/interface/web/tools/lib/lang/cn.lng b/interface/web/tools/lib/lang/cn.lng new file mode 100644 index 0000000000..0546815644 --- /dev/null +++ b/interface/web/tools/lib/lang/cn.lng @@ -0,0 +1,13 @@ +<?php +$wb['User Settings'] = '用户设置'; +$wb['Settings'] = '设置'; +$wb['ISPConfig Tools'] = 'ISPConfig 工具'; +$wb['Interface'] = 'ç•Œé¢'; +$wb['Password and Language'] = '密ç å’Œè¯è¨€'; +$wb['ispconfig_tools_note'] = 'æ¤æ¨¡å—å…许您更改密ç å’Œè¯è¨€ï¼Œå¹¶å¼€å§‹DNS记录的é‡æ–°åŒæ¥ã€‚'; +$wb['Sync Tools'] = 'åŒæ¥å·¥å…·'; +$wb['Resync'] = 'é‡æ–°åŒæ¥'; +$wb['Import'] = '导入'; +$wb['ISPConfig 3 mail'] = 'ISPConfig 3 邮件'; +$wb['PDNS Tupa'] = 'PowerDNS Tupa'; +?> diff --git a/interface/web/tools/lib/lang/cn_import_ispconfig.lng b/interface/web/tools/lib/lang/cn_import_ispconfig.lng new file mode 100644 index 0000000000..032d8e0491 --- /dev/null +++ b/interface/web/tools/lib/lang/cn_import_ispconfig.lng @@ -0,0 +1,25 @@ +<?php +$wb['head_txt'] = '从ISPConfig 3导入电å邮件é…ç½®'; +$wb['legend_txt'] = '远程æœåŠ¡å™¨è¿žæŽ¥è¯¦ç»†ä¿¡æ¯'; +$wb['legend2_txt'] = '导入电å邮件域'; +$wb['resync_sites_txt'] = 'é‡æ–°åŒæ¥ç½‘ç«™'; +$wb['resync_ftp_txt'] = 'é‡æ–°åŒæ¥FTP用户'; +$wb['resync_shell_txt'] = 'é‡æ–°åŒæ¥shell用户'; +$wb['resync_cron_txt'] = 'é‡æ–°åŒæ¥cronjobs'; +$wb['resync_db_txt'] = 'é‡æ–°åŒæ¥clientdbé…ç½®'; +$wb['resync_mailbox_txt'] = 'é‡æ–°åŒæ¥é‚®ç®±'; +$wb['resync_dns_txt'] = 'é‡æ–°åŒæ¥DNS记录'; +$wb['btn_start_txt'] = '开始导入'; +$wb['btn_connect_txt'] = '连接到远程æœåŠ¡å™¨'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['client_group_id_txt'] = '本地客户端'; +$wb['mail_domain_txt'] = '远程电å邮件域'; +$wb['import_mailbox_txt'] = '导入邮箱'; +$wb['import_aliasdomain_txt'] = '导入别å域'; +$wb['import_alias_txt'] = '导入电å邮件别å'; +$wb['import_forward_txt'] = '导入转å‘'; +$wb['import_user_filter_txt'] = '导入用户过滤器'; +$wb['import_spamfilter_txt'] = '导入垃圾邮件过滤器'; +$wb['local_server_txt'] = '本地邮件æœåŠ¡å™¨'; + +?> diff --git a/interface/web/tools/lib/lang/cn_import_vpopmail.lng b/interface/web/tools/lib/lang/cn_import_vpopmail.lng new file mode 100644 index 0000000000..7bc253d358 --- /dev/null +++ b/interface/web/tools/lib/lang/cn_import_vpopmail.lng @@ -0,0 +1,8 @@ +<?php +$wb['head_txt'] = '从Vpopmail导入电å邮件é…ç½®'; +$wb['legend_txt'] = '远程数æ®åº“æœåŠ¡å™¨è¿žæŽ¥è¯¦ç»†ä¿¡æ¯'; +$wb['btn_start_txt'] = '开始导入'; +$wb['btn_connect_txt'] = '连接到远程æœåŠ¡å™¨'; +$wb['btn_cancel_txt'] = 'å–消'; + +?> diff --git a/interface/web/tools/lib/lang/cn_index.lng b/interface/web/tools/lib/lang/cn_index.lng new file mode 100644 index 0000000000..f7a2d96d53 --- /dev/null +++ b/interface/web/tools/lib/lang/cn_index.lng @@ -0,0 +1,4 @@ +<?php +$wb['page_head_txt'] = 'ISPConfig 工具'; +$wb['page_desc_txt'] = '更改用户设置'; +?> diff --git a/interface/web/tools/lib/lang/cn_resync.lng b/interface/web/tools/lib/lang/cn_resync.lng new file mode 100644 index 0000000000..461ba1afcf --- /dev/null +++ b/interface/web/tools/lib/lang/cn_resync.lng @@ -0,0 +1,53 @@ +<?php +$wb['head_txt'] = 'Resync 工具'; +$wb['legend_txt'] = 'åŒæ¥'; +$wb['resync_all_txt'] = '所有æœåŠ¡'; +$wb['resync_sites_txt'] = '网站'; +$wb['resync_ftp_txt'] = 'FTP å¸æˆ·'; +$wb['resync_webdav_txt'] = 'WebDAV 用户'; +$wb['resync_shell_txt'] = 'Shell 用户'; +$wb['resync_cron_txt'] = 'Cron 作业'; +$wb['resync_db_txt'] = '客户数æ®åº“é…ç½®'; +$wb['resync_mailbox_txt'] = '邮箱'; +$wb['resync_mail_txt'] = '邮件域'; +$wb['resync_mailfilter_txt'] = '邮件过滤'; +$wb['resync_mailinglist_txt'] = '邮件列表'; +$wb['resync_dns_txt'] = 'DNS 记录'; +$wb['resync_vserver_txt'] = '虚拟æœåŠ¡å™¨'; +$wb['resync_client_txt'] = '客户和代ç†å•†'; +$wb['all_active_txt'] = '所有活动æœåŠ¡å™¨'; +$wb['all_active_mail_txt'] = '所有活动的邮件æœåŠ¡å™¨'; +$wb['all_active_web_txt'] = '所有活动的 Web æœåŠ¡å™¨'; +$wb['all_active_dns_txt'] = '所有活动的 DNS æœåŠ¡å™¨'; +$wb['all_active_file_txt'] = '所有活动的文件æœåŠ¡å™¨'; +$wb['all_active_db_txt'] = '所有活动的数æ®åº“æœåŠ¡å™¨'; +$wb['all_active_vserver_txt'] = '所有活动的虚拟æœåŠ¡å™¨'; +$wb['do_sites_txt'] = 'åŒæ¥ç½‘ç«™'; +$wb['do_ftp_txt'] = 'åŒæ¥ FTP 用户'; +$wb['do_webdav_txt'] = 'åŒæ¥ WebDav 用户'; +$wb['do_shell_txt'] = 'åŒæ¥ Shell 用户'; +$wb['do_cron_txt'] = 'åŒæ¥ Cron 作业'; +$wb['do_db_user_txt'] = 'åŒæ¥æ•°æ®åº“用户'; +$wb['do_db_txt'] = 'åŒæ¥æ•°æ®åº“'; +$wb['do_mail_txt'] = 'åŒæ¥é‚®ä»¶åŸŸ'; +$wb['do_mailbox_txt'] = 'åŒæ¥é‚®ç®±'; +$wb['do_mail_alias_txt'] = 'åŒæ¥åˆ«å'; +$wb['do_mail_access_txt'] = 'åŒæ¥é‚®ä»¶è®¿é—®'; +$wb['do_mail_contentfilter_txt'] = 'åŒæ¥é‚®ä»¶å†…容过滤器'; +$wb['do_mail_userfilter_txt'] = 'åŒæ¥é‚®ä»¶ç”¨æˆ·è¿‡æ»¤å™¨'; +$wb['do_mailinglist_txt'] = 'åŒæ¥é‚®ä»¶åˆ—表'; +$wb['do_dns_txt'] = 'åŒæ¥ DNS 区域'; +$wb['do_vserver_txt'] = 'åŒæ¥è™šæ‹ŸæœåŠ¡å™¨'; +$wb['do_clients_txt'] = 'åŒæ¥å®¢æˆ·å’Œä»£ç†å•†'; +$wb['no_results_txt'] = '未找到任何内容'; +$wb['btn_start_txt'] = '开始'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['do_mail_spamfilter_policy_txt'] = 'åŒæ¥åžƒåœ¾é‚®ä»¶è¿‡æ»¤ç–ç•¥'; +$wb['do_mail_spamfilter_txt'] = 'åŒæ¥åžƒåœ¾é‚®ä»¶è¿‡æ»¤å™¨'; +$wb['do_mailget_txt'] = 'åŒæ¥ Fetchmail'; +$wb['resync_mailget_txt'] = 'Fetchmail'; +$wb['resync_mailtransport_txt'] = '电åé‚®ä»¶ä¼ è¾“'; +$wb['resync_mailrelay_txt'] = '电å邮件ä¸ç»§'; +$wb['do_mailtransport_txt'] = 'å·²é‡æ–°åŒæ¥é‚®ä»¶ä¼ 输'; +$wb['do_mailrelay_txt'] = 'å·²é‡æ–°åŒæ¥é‚®ä»¶ä¸ç»§'; +?> diff --git a/interface/web/tools/lib/lang/cn_tpl_default.lng b/interface/web/tools/lib/lang/cn_tpl_default.lng new file mode 100644 index 0000000000..3ad71cdaaf --- /dev/null +++ b/interface/web/tools/lib/lang/cn_tpl_default.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = '默认主题设置'; +$wb['list_desc_txt'] = '修改默认主题相关选项'; +$wb['no_settings_txt'] = '没有默认主题的设置。'; +$wb['btn_start_txt'] = 'ä¿å˜'; +$wb['btn_cancel_txt'] = '返回'; +?> diff --git a/interface/web/tools/lib/lang/cn_usersettings.lng b/interface/web/tools/lib/lang/cn_usersettings.lng new file mode 100644 index 0000000000..2ce3cfc32a --- /dev/null +++ b/interface/web/tools/lib/lang/cn_usersettings.lng @@ -0,0 +1,20 @@ +<?php +$wb['password_txt'] = '密ç '; +$wb['password_strength_txt'] = '密ç 强度'; +$wb['language_txt'] = 'è¯è¨€'; +$wb['password_mismatch'] = '第二个密ç 框ä¸çš„密ç 与第一个密ç 框ä¸çš„密ç ä¸åŒ¹é…。'; +$wb['Form to edit the user password and language.'] = '用户密ç å’Œè¯è¨€ç¼–辑表å•'; +$wb['Settings'] = '设置'; +$wb['generate_password_txt'] = '生æˆå¯†ç '; +$wb['repeat_password_txt'] = 'é‡å¤å¯†ç '; +$wb['password_mismatch_txt'] = '两次输入的密ç ä¸åŒ¹é…。'; +$wb['password_match_txt'] = '两次输入的密ç 匹é…。'; +$wb['language_txt'] = 'è¯è¨€'; +$wb['startmodule_txt'] = '起始模å—'; +$wb['app_theme_txt'] = 'ç•Œé¢ä¸»é¢˜'; +$wb['startmodule_empty'] = '起始模å—为空。'; +$wb['startmodule_regex'] = '起始模å—å«æœ‰æ— 效å—符。'; +$wb['app_theme_empty'] = 'ç•Œé¢ä¸»é¢˜ä¸ºç©ºã€‚'; +$wb['app_theme_regex'] = 'ç•Œé¢ä¸»é¢˜å«æœ‰æ— 效å—符。'; +$wb['otp_auth_txt'] = 'åŒé‡èº«ä»½è®¤è¯'; +?> diff --git a/interface/web/vm/lib/lang/cn.lng b/interface/web/vm/lib/lang/cn.lng new file mode 100644 index 0000000000..79756e83ef --- /dev/null +++ b/interface/web/vm/lib/lang/cn.lng @@ -0,0 +1,7 @@ +<?php +$wb['Virtual Servers'] = '虚拟æœåŠ¡å™¨'; +$wb['OS Templates'] = 'æ“作系统模æ¿'; +$wb['VM Templates'] = '虚拟机模æ¿'; +$wb['IP addresses'] = 'IP地å€'; +$wb['OpenVZ'] = 'OpenVZ'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_action.lng b/interface/web/vm/lib/lang/cn_openvz_action.lng new file mode 100644 index 0000000000..f968c49309 --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_action.lng @@ -0,0 +1,17 @@ +<?php +$wb['head_txt'] = 'VM虚拟机æ“作:'; +$wb['start_txt'] = 'å¯åŠ¨è™šæ‹Ÿæœº'; +$wb['stop_txt'] = 'åœæ¢è™šæ‹Ÿæœº'; +$wb['restart_txt'] = 'é‡å¯è™šæ‹Ÿæœº'; +$wb['ostemplate_txt'] = '创建æ“作系统模æ¿'; +$wb['ostemplate_desc_txt'] = '(例如:debian-6.0-i386-custom)'; +$wb['btn_save_txt'] = '执行所选æ“作'; +$wb['btn_cancel_txt'] = 'å–消'; +$wb['start_exec_txt'] = 'å¯åŠ¨å‘½ä»¤å·²å‘é€åˆ°è™šæ‹Ÿæœºå®¿ä¸»æœåŠ¡å™¨ã€‚å¯èƒ½éœ€è¦ä¸€åˆ†é’Ÿæ‰èƒ½å¯åŠ¨è™šæ‹Ÿæœºã€‚'; +$wb['stop_exec_txt'] = 'åœæ¢å‘½ä»¤å·²å‘é€åˆ°è™šæ‹Ÿæœºå®¿ä¸»æœåŠ¡å™¨ã€‚å¯èƒ½éœ€è¦ä¸€åˆ†é’Ÿæ‰èƒ½åœæ¢è™šæ‹Ÿæœºã€‚'; +$wb['restart_exec_txt'] = 'é‡å¯å‘½ä»¤å·²å‘é€åˆ°è™šæ‹Ÿæœºå®¿ä¸»æœåŠ¡å™¨ã€‚å¯èƒ½éœ€è¦ä¸€åˆ†é’Ÿæ‰èƒ½é‡å¯è™šæ‹Ÿæœºã€‚'; +$wb['ostemplate_name_error'] = 'æ“作系统模æ¿å称包å«ä¸å…许的å—符。'; +$wb['ostemplate_name_unique_error'] = 'å·²å˜åœ¨å…·æœ‰è¯¥å称的æ“作系统模æ¿ã€‚'; +$wb['ostemplate_exec_txt'] = '创建æ“作系统模æ¿çš„命令已å‘é€åˆ°å®¿ä¸»æœåŠ¡å™¨ã€‚将需è¦å‡ 分钟时间æ‰èƒ½åˆ›å»ºæ“作系统模æ¿ã€‚'; + +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_ip.lng b/interface/web/vm/lib/lang/cn_openvz_ip.lng new file mode 100644 index 0000000000..9140a92b3a --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_ip.lng @@ -0,0 +1,9 @@ +<?php +$wb['server_id_txt'] = '主机æœåŠ¡å™¨'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['vm_id_txt'] = '虚拟æœåŠ¡å™¨'; +$wb['reserved_txt'] = 'ä¿ç•™'; +$wb['ip_error_wrong'] = '请填写一个有效的IPv4地å€ã€‚'; +$wb['ip_error_unique'] = '该IP地å€å·²å˜åœ¨ã€‚'; +$wb['IP address'] = 'IP地å€'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_ip_list.lng b/interface/web/vm/lib/lang/cn_openvz_ip_list.lng new file mode 100644 index 0000000000..847328708b --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_ip_list.lng @@ -0,0 +1,7 @@ +<?php +$wb['list_head_txt'] = 'OpenVZ IP地å€'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['vm_id_txt'] = '虚拟机'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['reserved_txt'] = 'ä¿ç•™'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_ostemplate.lng b/interface/web/vm/lib/lang/cn_openvz_ostemplate.lng new file mode 100644 index 0000000000..716c657ce5 --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_ostemplate.lng @@ -0,0 +1,10 @@ +$wb['template_name_txt'] = '模æ¿å称'; +$wb['template_file_txt'] = '模æ¿æ–‡ä»¶å'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['allservers_txt'] = '全部æœåŠ¡å™¨'; +$wb['active_txt'] = '状æ€'; +$wb['description_txt'] = 'æè¿°'; +$wb['template_name_error_empty'] = '模æ¿å称为空。'; +$wb['template_file_error_empty'] = '模æ¿æ–‡ä»¶å为空。'; +$wb['Template'] = '模æ¿'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/cn_openvz_ostemplate_list.lng new file mode 100644 index 0000000000..641440c9e4 --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_ostemplate_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'OpenVZæ“作系统模æ¿'; +$wb['active_txt'] = '状æ€'; +$wb['template_name_txt'] = '模æ¿å称'; +$wb['server_id_txt'] = 'æœåŠ¡å™¨'; +$wb['allservers_txt'] = '全部æœåŠ¡å™¨'; +$wb['ostemplate_id_txt'] = 'ID'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_template.lng b/interface/web/vm/lib/lang/cn_openvz_template.lng new file mode 100644 index 0000000000..8e159e212d --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_template.lng @@ -0,0 +1,97 @@ +<?php +$wb['numproc_txt'] = '进程数'; +$wb['numtcpsock_txt'] = 'TCP套接å—æ•°'; +$wb['numothersock_txt'] = '其他套接å—æ•°'; +$wb['vmguarpages_txt'] = 'ä¿è¯å†…å˜é¡µ'; +$wb['kmemsize_txt'] = 'å†…æ ¸å†…å˜é™åˆ¶'; +$wb['tcpsndbuf_txt'] = 'TCPå‘é€ç¼“å˜åŒºå¤§å°'; +$wb['tcprcvbuf_txt'] = 'TCP接收缓å˜åŒºå¤§å°'; +$wb['othersockbuf_txt'] = '其他套接å—缓å˜åŒºå¤§å°'; +$wb['dgramrcvbuf_txt'] = 'æ•°æ®æŠ¥æ–‡æŽ¥æ”¶ç¼“å˜åŒºå¤§å°'; +$wb['oomguarpages_txt'] = 'OOMä¿è¯å†…å˜é¡µ'; +$wb['privvmpages_txt'] = 'ç§æœ‰å†…å˜é¡µ'; +$wb['lockedpages_txt'] = 'é”定内å˜é¡µ'; +$wb['shmpages_txt'] = '共享内å˜é¡µ'; +$wb['physpages_txt'] = '物ç†å†…å˜é¡µ'; +$wb['numfile_txt'] = '文件数'; +$wb['avnumproc_txt'] = 'å¹³å‡è¿›ç¨‹æ•°'; +$wb['numflock_txt'] = '文件é”æ•°'; +$wb['numpty_txt'] = 'ptyæ•°é‡'; +$wb['numsiginfo_txt'] = 'ä¿¡å·ä¿¡æ¯æ•°é‡'; +$wb['dcachesize_txt'] = 'D缓å˜å¤§å°'; +$wb['numiptent_txt'] = 'IPtables规则数'; +$wb['swappages_txt'] = '交æ¢å†…å˜é¡µæ•°'; +$wb['hostname_txt'] = '主机å'; +$wb['nameserver_txt'] = 'DNSæœåŠ¡å™¨'; +$wb['nameserver_desc_txt'] = '(ä»¥ç©ºæ ¼åˆ†éš”)'; +$wb['capability_txt'] = '能力'; +$wb['template_name_txt'] = '模æ¿å称'; +$wb['diskspace_txt'] = 'ç£ç›˜ç©ºé—´'; +$wb['ram_txt'] = '内å˜ï¼ˆä¿è¯ï¼‰'; +$wb['ram_burst_txt'] = '内å˜ï¼ˆçªå‘)'; +$wb['cpu_units_txt'] = 'CPUå•ä½'; +$wb['cpu_num_txt'] = 'CPUæ ¸æ•°'; +$wb['cpu_limit_txt'] = 'CPUé™åˆ¶ %'; +$wb['io_priority_txt'] = 'I/O 优先级'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['description_txt'] = 'æè¿°'; +$wb['numproc_desc_txt'] = '进程和线程数。'; +$wb['numtcpsock_desc_txt'] = 'TCP 套接å—数。'; +$wb['numothersock_desc_txt'] = '除 TCP 以外的套接å—数。'; +$wb['vmguarpages_desc_txt'] = '分é…ä¿è¯å†…å˜çš„页é¢æ•°ã€‚'; +$wb['kmemsize_desc_txt'] = '为æ¤å®¹å™¨ä¸çš„进程分é…çš„ä¸å¯äº¤æ¢å†…æ ¸å†…å˜å¤§å°ã€‚'; +$wb['tcpsndbuf_desc_txt'] = 'TCP å‘é€ç¼“冲区的总大å°ã€‚'; +$wb['tcprcvbuf_desc_txt'] = 'TCP 接收缓冲区的总大å°ã€‚'; +$wb['othersockbuf_desc_txt'] = 'UNIX 域套接å—缓冲区ã€UDP 和其他数æ®æŠ¥åè®®å‘é€ç¼“冲区的总大å°ã€‚'; +$wb['dgramrcvbuf_desc_txt'] = 'UDP 和其他数æ®æŠ¥å议的接收缓冲区。'; +$wb['oomguarpages_desc_txt'] = '内å˜è¶…é‡åˆ†é…(内å˜è€—尽时的ä¿è¯æ€æ»ä¿è¯ï¼‰ï¼Œä»¥é¡µé¢ä¸ºå•ä½ã€‚'; +$wb['privvmpages_desc_txt'] = '内å˜åˆ†é…é™åˆ¶ï¼Œä»¥é¡µé¢ä¸ºå•ä½ã€‚'; +$wb['lockedpages_desc_txt'] = 'ä¸å…许交æ¢çš„进程页é¢ï¼ˆé€šè¿‡ mlock(2) é”定的页é¢ï¼‰ã€‚'; +$wb['shmpages_desc_txt'] = '共享内å˜çš„总大å°ï¼ˆIPCã€å…±äº«åŒ¿åæ˜ å°„å’Œ tmpfs 对象),以页é¢ä¸ºå•ä½ã€‚'; +$wb['physpages_desc_txt'] = '进程使用的总物ç†é¡µé¢æ•°ã€‚'; +$wb['numfile_desc_txt'] = '打开文件的数目。'; +$wb['numflock_desc_txt'] = '文件é”定的数目。'; +$wb['numpty_desc_txt'] = '伪终端的数目。'; +$wb['numsiginfo_desc_txt'] = 'siginfo 结构的数目。'; +$wb['dcachesize_desc_txt'] = 'é”定在内å˜ä¸çš„ dentry å’Œ inode 结构的总大å°ã€‚'; +$wb['numiptent_desc_txt'] = 'NETFILTER(IP æ•°æ®åŒ…过滤)æ¡ç›®çš„数目。'; +$wb['swappages_desc_txt'] = '在容器ä¸æ˜¾ç¤ºçš„交æ¢ç©ºé—´é‡ã€‚'; +$wb['create_dns_txt'] = '为主机å创建 DNS 记录'; +$wb['template_name_error_empty'] = '模æ¿å称为空。'; +$wb['diskspace_error_empty'] = 'ç£ç›˜ç©ºé—´ä¸ºç©ºã€‚'; +$wb['ram_error_empty'] = '内å˜ï¼ˆä¿è¯ï¼‰ä¸ºç©ºã€‚'; +$wb['ram_burst_error_empty'] = '内å˜ï¼ˆçªå‘)为空。'; +$wb['cpu_units_error_empty'] = 'CPU å•ä½ä¸ºç©ºã€‚'; +$wb['cpu_num_error_empty'] = 'CPU æ ¸å¿ƒæ•°ä¸ºç©ºã€‚'; +$wb['cpu_limit_error_empty'] = 'CPU é™åˆ¶ç™¾åˆ†æ¯”为空。'; +$wb['io_priority_error_empty'] = 'I/O 优先级为空。'; +$wb['template_nameserver_error_empty'] = 'å称æœåŠ¡å™¨ä¸ºç©ºã€‚'; +$wb['numproc_error_empty'] = '进程数为空。'; +$wb['numtcpsock_error_empty'] = 'TCP 套接å—数为空。'; +$wb['numothersock_error_empty'] = 'éž TCP 套接å—数为空。'; +$wb['vmguarpages_error_empty'] = '内å˜ä¿è¯é¡µæ•°ä¸ºç©ºã€‚'; +$wb['kmemsize_error_empty'] = '为æ¤å®¹å™¨ä¸çš„进程分é…çš„ä¸å¯äº¤æ¢å†…æ ¸å†…å˜å¤§å°ä¸ºç©ºã€‚'; +$wb['tcpsndbuf_error_empty'] = 'TCP å‘é€ç¼“冲区的总大å°ä¸ºç©ºã€‚'; +$wb['tcprcvbuf_error_empty'] = 'TCP 接收缓冲区的总大å°ä¸ºç©ºã€‚'; +$wb['othersockbuf_error_empty'] = 'UNIX 域套接å—缓冲区ã€UDP 和其他数æ®æŠ¥åè®®å‘é€ç¼“冲区的总大å°ä¸ºç©ºã€‚'; +$wb['dgramrcvbuf_error_empty'] = 'UDP 和其他数æ®æŠ¥å议的接收缓冲区为空。'; +$wb['oomguarpages_error_empty'] = '当内å˜â€œè¶…订â€æ—¶ï¼ˆä¿è¯å†…å˜æ€æ»ä¿è¯ï¼‰ï¼Œä¿è¯å†…å˜çš„æ•°é‡ä¸ºç©ºã€‚'; +$wb['privvmpages_error_empty'] = '内å˜åˆ†é…é™åˆ¶é¡µæ•°ä¸ºç©ºã€‚'; +$wb['lockedpages_error_empty'] = '进程页é¢ä¸å…许交æ¢ï¼ˆé€šè¿‡ mlock(2) é”定的页é¢ï¼‰ä¸ºç©ºã€‚'; +$wb['shmpages_error_empty'] = '共享内å˜ï¼ˆIPCã€å…±äº«åŒ¿åæ˜ å°„å’Œ tmpfs 对象)的总大å°ï¼ˆä»¥é¡µé¢ä¸ºå•ä½ï¼‰ä¸ºç©ºã€‚'; +$wb['physpages_error_empty'] = '进程使用的 RAM 页é¢çš„总数为空。'; +$wb['numfile_error_empty'] = '打开的文件数为空。'; +$wb['avnumproc_error_empty'] = 'å¹³å‡è¿›ç¨‹æ•°ä¸ºç©ºã€‚'; +$wb['numflock_error_empty'] = '文件é”数为空。'; +$wb['numpty_error_empty'] = '伪终端数为空。'; +$wb['numsiginfo_error_empty'] = 'siginfo 结构的数é‡ä¸ºç©ºã€‚'; +$wb['dcachesize_error_empty'] = 'é”定在内å˜ä¸çš„ dentry å’Œ inode 结构的总大å°ä¸ºç©ºã€‚'; +$wb['numiptent_error_empty'] = 'NETFILTER(IP æ•°æ®åŒ…过滤)æ¡ç›®æ•°ä¸ºç©ºã€‚'; +$wb['swappages_error_empty'] = 'è¦åœ¨å®¹å™¨ä¸æ˜¾ç¤ºçš„交æ¢ç©ºé—´çš„æ•°é‡ä¸ºç©ºã€‚'; +$wb['Template'] = '模æ¿'; +$wb['Advanced'] = '高级'; +$wb['features_txt'] = '功能'; +$wb['iptables_txt'] = 'IP表'; +$wb['custom_txt'] = '自定义设置'; +$wb['custom_error'] = 'ä¸å…许在自定义设置ä¸ä½¿ç”¨ï¼š'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_vm.lng b/interface/web/vm/lib/lang/cn_openvz_vm.lng new file mode 100644 index 0000000000..cbb92dc45f --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_vm.lng @@ -0,0 +1,45 @@ +<?php +$wb['diskspace_txt'] = 'ç£ç›˜ç©ºé—´'; +$wb['ram_txt'] = '内å˜ï¼ˆä¿è¯ï¼‰'; +$wb['ram_burst_txt'] = '内å˜ï¼ˆçªå‘)'; +$wb['cpu_units_txt'] = 'CPU å•ä½'; +$wb['cpu_num_txt'] = 'CPU æ•°é‡'; +$wb['cpu_limit_txt'] = 'CPU 使用率é™åˆ¶ %'; +$wb['io_priority_txt'] = 'I/O 优先级'; +$wb['nameserver_txt'] = '域åæœåŠ¡å™¨'; +$wb['nameserver_desc_txt'] = 'ï¼ˆç”¨ç©ºæ ¼åˆ†éš”ï¼‰'; +$wb['capability_txt'] = '能力'; +$wb['server_id_txt'] = '主机æœåŠ¡å™¨'; +$wb['ostemplate_id_txt'] = 'æ“作系统模æ¿'; +$wb['template_id_txt'] = '模æ¿'; +$wb['ip_address_txt'] = 'IP 地å€'; +$wb['hostname_txt'] = '主机å'; +$wb['vm_password_txt'] = '虚拟机密ç '; +$wb['start_boot_txt'] = '开机å¯åŠ¨'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['description_txt'] = 'æè¿°'; +$wb['client_group_id_txt'] = '客户'; +$wb['veid_txt'] = 'VEID'; +$wb['create_dns_txt'] = '为主机å创建 DNS'; +$wb['active_until_date_txt'] = 'å¯ç”¨åˆ°æœŸæ—¥æœŸ'; +$wb['ip_address_error_empty'] = 'IP 地å€ä¸ºç©ºã€‚'; +$wb['hostname_error_empty'] = '主机å为空。'; +$wb['vm_password_error_empty'] = '虚拟机密ç 为空。'; +$wb['veid_error_empty'] = 'VEID 为空。'; +$wb['veid_error_unique'] = 'VEID å·²å˜åœ¨ã€‚'; +$wb['diskspace_error_empty'] = 'ç£ç›˜ç©ºé—´ä¸ºç©ºã€‚'; +$wb['ram_error_empty'] = '内å˜ï¼ˆä¿è¯ï¼‰ä¸ºç©ºã€‚'; +$wb['ram_burst_error_empty'] = '内å˜ï¼ˆçªå‘)为空。'; +$wb['cpu_units_error_empty'] = 'CPU å•ä½ä¸ºç©ºã€‚'; +$wb['cpu_num_error_empty'] = 'CPU æ•°é‡ä¸ºç©ºã€‚'; +$wb['cpu_limit_error_empty'] = 'CPU 使用率é™åˆ¶ä¸ºç©ºã€‚'; +$wb['io_priority_error_empty'] = 'I/O 优先级为空。'; +$wb['template_nameserver_error_empty'] = '域åæœåŠ¡å™¨ä¸ºç©ºã€‚'; +$wb['Virtual server'] = '虚拟æœåŠ¡å™¨'; +$wb['Advanced'] = '高级'; +$wb['features_txt'] = '功能'; +$wb['iptables_txt'] = 'IP Tables'; +$wb['custom_txt'] = '自定义设置'; +$wb['bootorder_txt'] = 'å¯åŠ¨é¡ºåºä¼˜å…ˆçº§'; +$wb['bootorder_error_notpositive'] = 'å¯åŠ¨é¡ºåºä¼˜å…ˆçº§åªèƒ½æ˜¯æ£æ•´æ•°ã€‚'; +?> diff --git a/interface/web/vm/lib/lang/cn_openvz_vm_list.lng b/interface/web/vm/lib/lang/cn_openvz_vm_list.lng new file mode 100644 index 0000000000..739f152157 --- /dev/null +++ b/interface/web/vm/lib/lang/cn_openvz_vm_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = '虚拟æœåŠ¡å™¨'; +$wb['active_txt'] = 'å¯ç”¨'; +$wb['server_id_txt'] = '主机æœåŠ¡å™¨'; +$wb['ostemplate_id_txt'] = 'OS模æ¿'; +$wb['template_id_txt'] = '虚拟机模æ¿'; +$wb['hostname_txt'] = '主机å'; +$wb['ip_address_txt'] = 'IP地å€'; +$wb['veid_txt'] = 'VEID'; +?> diff --git a/interface/web/vm/list/openvz_ip.list.php b/interface/web/vm/list/openvz_ip.list.php index 80869918ad..b5decae51e 100644 --- a/interface/web/vm/list/openvz_ip.list.php +++ b/interface/web/vm/list/openvz_ip.list.php @@ -48,9 +48,9 @@ $liste["auth"] = "yes"; *****************************************************/ $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", + 'op' => "=", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', @@ -62,9 +62,9 @@ $liste["item"][] = array( 'field' => "server_id", 'value' => ""); $liste["item"][] = array( 'field' => "vm_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", + 'op' => "=", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', diff --git a/interface/web/vm/list/openvz_ostemplate.list.php b/interface/web/vm/list/openvz_ostemplate.list.php index c2df7eb386..036f0b855e 100644 --- a/interface/web/vm/list/openvz_ostemplate.list.php +++ b/interface/web/vm/list/openvz_ostemplate.list.php @@ -76,9 +76,9 @@ $liste["item"][] = array( 'field' => "template_name", 'value' => ""); $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", + 'op' => "=", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', diff --git a/interface/web/vm/list/openvz_vm.list.php b/interface/web/vm/list/openvz_vm.list.php index 261427491b..894d1bc6b9 100644 --- a/interface/web/vm/list/openvz_vm.list.php +++ b/interface/web/vm/list/openvz_vm.list.php @@ -66,9 +66,9 @@ $liste["item"][] = array( 'field' => "veid", 'value' => ""); $liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", + 'datatype' => "INTEGER", 'formtype' => "SELECT", - 'op' => "like", + 'op' => "=", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', diff --git a/remoting_client/API-docs/monitor_jobqueue_count.html b/remoting_client/API-docs/monitor_jobqueue_count.html new file mode 100644 index 0000000000..81a98292ab --- /dev/null +++ b/remoting_client/API-docs/monitor_jobqueue_count.html @@ -0,0 +1,27 @@ +<!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>monitor_jobqueue_count(<span class="var">$session_id</span>, <span class="var">$server_id = 0</span>);</h1> +<br> +<p class="headgrp">Description: </p> +<p class="margin"> Get the number of pending jobs from jobqueue.</p><br> +<p class="headgrp">Input Variables: </p> +<p class="margin"> <span class="var">$session_id</span>, <span class="var">$server_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 pending jobs from jobqueue.</p> +</div> + +</body></html> diff --git a/remoting_client/examples/sites_web_domain_get.php b/remoting_client/examples/sites_web_domain_get.php index 7f5b22f6ac..47fe8cbd44 100644 --- a/remoting_client/examples/sites_web_domain_get.php +++ b/remoting_client/examples/sites_web_domain_get.php @@ -16,9 +16,14 @@ try { //* Set the function parameters. $domain_id = 2; + $domain_name = 'example.com'; + // Lookup by ID. $domain_record = $client->sites_web_domain_get($session_id, $domain_id); + // Lookup by name. + $domain_record = $client->sites_web_domain_get($session_id, array('domain' => $domain_name)); + print_r($domain_record); if($client->logout($session_id)) { diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index f687bee839..ea1c847344 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -13,7 +13,7 @@ <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'> +<tmpl_if name='apache_full_version' op='>=' value='2.4.30' format='version'> <IfModule mod_remoteip.c> RemoteIPProxyProtocol On </IfModule> diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php index 922f32e612..e50c601cec 100644 --- a/server/lib/classes/aps_installer.inc.php +++ b/server/lib/classes/aps_installer.inc.php @@ -384,7 +384,7 @@ class ApsInstaller extends ApsBase if(is_dir($this->document_root)){ $files = array_diff(scandir($this->document_root), array('.', '..', 'error', 'stats')); foreach($files as $file){ - if(is_dir($this->document_root.'/'.$file)){ + if(is_dir($this->document_root.'/'.$file) and !is_link($this->document_root.'/'.$file)){ $app->file->removeDirectory($this->document_root.'/'.$file); } else { @unlink($this->document_root.'/'.$file); diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php index 2b6d21e57e..57f264ec44 100644 --- a/server/lib/classes/backup.inc.php +++ b/server/lib/classes/backup.inc.php @@ -1076,11 +1076,10 @@ class backup { global $app; if ( ! is_dir($repos_path)) { + $dbt = debug_backtrace(); + $dbt_info = $dbt[1]['file'] . ':' . $dbt[1]['line']; $app->log("Unknown path " . var_export($repos_path, TRUE) - . ' called from ' . (function() { - $dbt = debug_backtrace(); - return $dbt[1]['file'] . ':' . $dbt[1]['line']; - })(), LOGLEVEL_ERROR); + . ' called from ' . $dbt_info, LOGLEVEL_ERROR); return FALSE; } switch ($backup_mode) { @@ -1306,13 +1305,13 @@ class backup foreach ($domains as $rec) { $domain_id = $rec['domain_id']; $domain_backup_dir = $backup_dir . '/web' . $domain_id; + $web_path = $rec['document_root']; + $backup_download_dir = $web_path . '/backup'; // Remove backupdir symlink and create as directory instead if (is_link($backup_download_dir) || !is_dir($backup_download_dir)) { - $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); } diff --git a/server/lib/classes/cron.d/200-ftplogfiles.inc.php b/server/lib/classes/cron.d/200-ftplogfiles.inc.php index a88a360ae2..430d8ce412 100644 --- a/server/lib/classes/cron.d/200-ftplogfiles.inc.php +++ b/server/lib/classes/cron.d/200-ftplogfiles.inc.php @@ -70,7 +70,7 @@ class cronjob_ftplogfiles extends cronjob { function add_ftp_traffic(&$traffic_array, $parsed_line) { - if(is_array($traffic_array[$parsed_line['date']]) && array_key_exists($parsed_line['domain'], $traffic_array[$parsed_line['date']])) + if(isset($traffic_array[$parsed_line['date']]) && is_array($traffic_array[$parsed_line['date']]) && array_key_exists($parsed_line['domain'], $traffic_array[$parsed_line['date']])) { $traffic_array[$parsed_line['date']][$parsed_line['domain']][$parsed_line['direction']] += $parsed_line['size']; } @@ -89,13 +89,13 @@ class cronjob_ftplogfiles extends cronjob { while($line = fgets($fp)) { $parsed_line = parse_ftp_log($line); + if (!empty($parsed_line)) { + $sql = "SELECT wd.domain FROM ftp_user AS fu INNER JOIN web_domain AS wd ON fu.parent_domain_id = wd.domain_id WHERE fu.username = ? "; + $temp = $app->db->queryOneRecord($sql, $parsed_line['username'] ); + $parsed_line['domain'] = $temp['domain']; + add_ftp_traffic($ftp_traffic, $parsed_line); + } - $sql = "SELECT wd.domain FROM ftp_user AS fu INNER JOIN web_domain AS wd ON fu.parent_domain_id = wd.domain_id WHERE fu.username = ? "; - $temp = $app->db->queryOneRecord($sql, $parsed_line['username'] ); - - $parsed_line['domain'] = $temp['domain']; - - add_ftp_traffic($ftp_traffic, $parsed_line); } fclose($fp); diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php index 08cd283ef7..2d8ddc5b86 100644 --- a/server/lib/classes/cron.d/300-quota_notify.inc.php +++ b/server/lib/classes/cron.d/300-quota_notify.inc.php @@ -57,11 +57,18 @@ class cronjob_quota_notify extends cronjob { $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - // Get client email and eventual reseller email - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT client.email, client.parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - if($client['parent_client_id'] > 0) { - $reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']); + // Get client email and eventual reseller email in array + $clients = []; + $sql = "SELECT client.email,client.parent_client_id, sys_group.groupid FROM sys_group, client WHERE sys_group.client_id = client.client_id"; + $records = $app->db->queryAllRecords($sql); + if(is_array($records)) { + foreach($records as $rec) { + $reseller = ($rec['parent_client_id'] > 0) ? $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $rec['parent_client_id']) : ''; + $clients[$rec['groupid']] = [ + 'email' => $rec['email'], + 'reseller' => $reseller + ]; + } } //###################################################################################################### @@ -114,15 +121,15 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overtraffic_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($web_config['overtraffic_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } @@ -245,15 +252,15 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overquota_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($web_config['overquota_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } $this->_tools->send_notification_email('web_quota_ok_notification', $placeholders, $recipients); @@ -285,15 +292,15 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overquota_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($web_config['overquota_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } $this->_tools->send_notification_email('web_quota_notification', $placeholders, $recipients); @@ -383,15 +390,15 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overquota_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($mail_config['overquota_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } @@ -423,15 +430,15 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overquota_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($mail_config['overquota_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } @@ -512,15 +519,15 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overquota_db_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($web_config['overquota_db_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } $this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients); @@ -550,19 +557,17 @@ class cronjob_quota_notify extends cronjob { //* Send email to reseller if($web_config['overquota_db_notify_reseller'] == 'y') { - if($reseller['email'] != '') { - $recipients[] = $reseller['email']; + if($clients[$rec['sys_groupid']]['reseller'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['reseller']; } } //* Send email to client if($mail_config['overquota_notify_client'] == 'y') { - if($client['email'] != '') { - $recipients[] = $client['email']; + if($clients[$rec['sys_groupid']]['email'] != '') { + $recipients[] = $clients[$rec['sys_groupid']]['email']; } } - - $this->_tools->send_notification_email('db_quota_ok_notification', $placeholders, $recipients); } diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 3096a5b062..f2299de343 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -825,12 +825,13 @@ class db return true; } - //** Deletes a record and saves the changes into the datalog + // Updates a datalog record to store an error state. public function datalogError($errormsg) { global $app; - if(isset($app->modules->current_datalog_id) && $app->modules->current_datalog_id > 0) $this->query("UPDATE sys_datalog set error = ? WHERE datalog_id = ?", $errormsg, $app->modules->current_datalog_id); - + if(isset($app->modules->current_datalog_id) && $app->modules->current_datalog_id > 0) { + $this->query("UPDATE sys_datalog set error = ? WHERE datalog_id = ?", $errormsg, $app->modules->current_datalog_id); + } return true; } diff --git a/server/lib/classes/file.inc.php b/server/lib/classes/file.inc.php index 28757d0dd5..d3117c36dc 100644 --- a/server/lib/classes/file.inc.php +++ b/server/lib/classes/file.inc.php @@ -118,12 +118,13 @@ class file{ $content = $input; } $lines = explode("\n", $content); + $new_lines = array(); if(!empty($lines)){ foreach($lines as $line){ if(trim($line) != '') $new_lines[] = $line; } } - if(is_array($new_lines)){ + if(!empty($new_lines)){ $content = implode("\n", $new_lines); } else { $content = ''; diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 5a69ce18a1..6a1d2d02ac 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -304,6 +304,7 @@ class letsencrypt { 'domain' => $domain, 'key' => $ssl_dir.'/'.$domain.'-le.key', 'key2' => $ssl_dir.'/'.$domain.'-le.key.org', + 'csr' => '', # Not used for LE. 'crt' => $ssl_dir.'/'.$domain.'-le.crt', 'bundle' => $ssl_dir.'/'.$domain.'-le.bundle' ); @@ -405,6 +406,10 @@ 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); } + if ($le_domain_count == 0) { + return false; + } + // unset useless data unset($subdomains); unset($aliasdomains); diff --git a/server/lib/classes/modules.inc.php b/server/lib/classes/modules.inc.php index 3fd788d0a9..9b92199fd8 100644 --- a/server/lib/classes/modules.inc.php +++ b/server/lib/classes/modules.inc.php @@ -186,7 +186,7 @@ class modules { $app->db->query($sql, $d['dbtable'], $idx[0], $idx[1]); if($app->db->errorNumber > 0) { $replication_error = true; - $app->log("Replication failed. Error: (" . $d[dbtable] . ") " . $app->db->errorMessage . " # SQL: " . $sql, LOGLEVEL_ERROR); + $app->log("Replication failed. Error: (" . $d['dbtable'] . ") " . $app->db->errorMessage . " # SQL: " . $sql, LOGLEVEL_ERROR); } $log = $app->db->_build_query_string($sql, $d['dbtable'], $idx[0], $idx[1]); $app->log('Replicated from master: '.$log, LOGLEVEL_DEBUG); diff --git a/server/lib/classes/services.inc.php b/server/lib/classes/services.inc.php index 0914081672..0cd8244701 100644 --- a/server/lib/classes/services.inc.php +++ b/server/lib/classes/services.inc.php @@ -57,7 +57,7 @@ class services { // call_user_method($function_name,$app->loaded_modules[$module_name],$action); return call_user_func(array($app->loaded_modules[$module_name], $function_name), $action); } else { - $app->log("Unable to restart $service_name. Service not registered.", LOGLEVEL_WARNING); + $app->log("Unable to restart $service_name. Service not registered.", LOGLEVEL_WARN); return array('output' => '', 'retval' => 0); } diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 7e4e7ae447..087efa48a6 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2132,6 +2132,26 @@ class system{ } $full_init_script_path = realpath($init_script_directory.'/'.$servicename); + + //** Gentoo, keep symlink as init script, but do some checks + if(file_exists('/etc/gentoo-release')) { + //* check if init script is symlink + if(is_link($init_script_directory.'/'.$servicename)) { + //* Check init script owner (realpath, symlink is checked later) + if(fileowner($full_init_script_path) !== 0) { + $app->log('Init script '.$full_init_script_path.' not owned by root user',LOGLEVEL_WARN); + return false; + } + + //* full path is symlink + $full_init_script_path_symlink = $init_script_directory.'/'.$servicename; + + //* check if realpath matches symlink + if(strpos($full_init_script_path_symlink,$full_init_script_path) == 0) { + $full_init_script_path = $full_init_script_path_symlink; + } + } + } if($full_init_script_path == '') { $app->log('No init script, we quit here.',LOGLEVEL_WARN); @@ -2327,6 +2347,16 @@ class system{ return true; } + public function is_redhat_os() { + global $app; + + if(file_exists('/etc/redhat-release') && (filesize('/etc/redhat-release') > 0)) { + return true; + } else { + return false; + } + } + public function is_allowed_path($path) { global $app; diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index dcbd8a9b9f..d829b5979e 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -266,7 +266,7 @@ class apache2_plugin { // load the server configuration options $app->uses('getconf'); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - if ($web_config['CA_path']!='' && !file_exists($web_config['CA_path'].'/openssl.cnf')) + if (isset($web_config['CA_path']) && $web_config['CA_path'] !='' && !file_exists($web_config['CA_path'].'/openssl.cnf')) $app->log("CA path error, file does not exist:".$web_config['CA_path'].'/openssl.cnf', LOGLEVEL_ERROR); //* Only vhosts can have a ssl cert @@ -1169,7 +1169,7 @@ class apache2_plugin { if(!is_dir($web_config['website_basedir'].'/conf')) $app->system->mkdir($web_config['website_basedir'].'/conf'); //* add open_basedir restriction to custom php.ini content, required for suphp only - if(!stristr($data['new']['custom_php_ini'], 'open_basedir') && $data['new']['php'] == 'suphp') { + if(isset($data['new']['custom_php_ini']) && !stristr($data['new']['custom_php_ini'], 'open_basedir') && $data['new']['php'] == 'suphp') { $data['new']['custom_php_ini'] .= "\nopen_basedir = '".$data['new']['php_open_basedir']."'\n"; } @@ -1194,7 +1194,7 @@ class apache2_plugin { //* Create custom php.ini # Because of custom default PHP directives from snippet # php.ini custom values order os: 1. general settings 2. Directive Snippets settings 3. custom php.ini settings defined in domain settings - if(trim($data['new']['custom_php_ini']) != '' || $data['new']['directive_snippets_id'] > "0") { + if((isset($data['new']['custom_php_ini']) && trim($data['new']['custom_php_ini']) != '') || $data['new']['directive_snippets_id'] > "0") { $has_custom_php_ini = true; $custom_sendmail_path = false; if(!is_dir($custom_php_ini_dir)) $app->system->mkdirpath($custom_php_ini_dir); @@ -1342,6 +1342,7 @@ class apache2_plugin { $tpl->setVar($vhost_data); $tpl->setVar('apache_version', $app->system->getapacheversion()); + $tpl->setVar('apache_full_version', $app->system->getapacheversion(true)); // Rewrite rules $rewrite_rules = array(); @@ -1400,14 +1401,12 @@ class apache2_plugin { $server_alias = array(); - // get autoalias - $auto_alias = $web_config['website_autoalias']; - if($auto_alias != '') { + if(isset($web_config['website_autoalias']) && $web_config['website_autoalias'] != '') { // get the client username $client = $app->db->queryOneRecord("SELECT `username` FROM `client` WHERE `client_id` = ?", $client_id); $aa_search = array('[client_id]', '[website_id]', '[client_username]', '[website_domain]'); $aa_replace = array($client_id, $data['new']['domain_id'], $client['username'], $data['new']['domain']); - $auto_alias = str_replace($aa_search, $aa_replace, $auto_alias); + $auto_alias = str_replace($aa_search, $aa_replace, $web_config['website_autoalias']); unset($client); unset($aa_search); unset($aa_replace); @@ -1793,7 +1792,7 @@ class apache2_plugin { //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) { + if(isset($web_config['vhost_proxy_protocol_http_port']) && (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; @@ -1942,7 +1941,7 @@ class apache2_plugin { 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']) != '') { + if(isset($data['new']['stats_password']) && 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); diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index 9499f1eaba..2a5ccca269 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -393,7 +393,7 @@ class bind_plugin { //} //* Delete old domain file, if domain name has been changed - if($data['old']['origin'] != $data['new']['origin']) { + if(!empty($data['old']['origin']) && $data['old']['origin'] != $data['new']['origin']) { $filename = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_masterprefix'] . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($filename)) unlink($filename); diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 53836a1392..08439fe798 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -429,7 +429,7 @@ class mail_plugin { $maildir_path_deleted = false; $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) { - if ($mail_config['mailbox_soft_delete'] == 'y') { + if ($mail_config['mailbox_soft_delete'] == 'y' && is_dir($old_maildir_path)) { // Move it, adding a date based suffix. A cronjob should purge or archive. $thrash_maildir_path = $old_maildir_path . '-deleted-' . date("YmdHis"); $app->system->exec_safe('mv ? ?', $old_maildir_path, $thrash_maildir_path); @@ -484,7 +484,7 @@ class mail_plugin { //* Delete maildomain path $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'])) { - if ($mail_config['mailbox_soft_delete'] == 'y') { + if ($mail_config['mailbox_soft_delete'] == 'y' && is_dir($old_maildomain_path)) { // Move it, adding a date based suffix. A cronjob should purge or archive. $thrash_maildomain_path = $old_maildomain_path . '-deleted-' . date("YmdHis"); $app->system->exec_safe('mv ? ?', $old_maildomain_path, $thrash_maildomain_path); diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index b937f82275..4114148f11 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -155,7 +155,7 @@ class mail_plugin_dkim { $app->system->mkdirpath($mail_config['dkim_path'], 0750, $amavis_user, $amavis_group); } else { $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); + $app->log('No user amavis or vscan found - using root for '.$mail_config['dkim_path'], LOGLEVEL_WARN); } } else { if (!$app->system->checkpath($mail_config['dkim_path'])) { diff --git a/server/plugins-available/mongo_clientdb_plugin.inc.php~ b/server/plugins-available/mongo_clientdb_plugin.inc.php~ index 6258583874..41c7679818 100644 --- a/server/plugins-available/mongo_clientdb_plugin.inc.php~ +++ b/server/plugins-available/mongo_clientdb_plugin.inc.php~ @@ -516,7 +516,7 @@ class mongo_clientdb_plugin { if ((bool) $db_user) { if ($user == 'root') { - $app->log("User root not allowed for client databases", LOGLEVEL_WARNING); + $app->log("User root not allowed for client databases", LOGLEVEL_WARN); } else { if (!$this->addUser($db, array( 'username' => $user, @@ -526,14 +526,14 @@ class mongo_clientdb_plugin { "dbAdmin" ) ))) { - $app->log("Error while adding user: ".$user." to DB: ".$db, LOGLEVEL_WARNING); + $app->log("Error while adding user: ".$user." to DB: ".$db, LOGLEVEL_WARN); } } } if ($db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { if ($user == 'root') { - $app->log("User root not allowed for client databases", LOGLEVEL_WARNING); + $app->log("User root not allowed for client databases", LOGLEVEL_WARN); } else { if (!$this->addUser($db, array( 'username' => $ro_user, @@ -542,7 +542,7 @@ class mongo_clientdb_plugin { "read" ) ))) { - $app->log("Error while adding read-only user: ".$user." to DB: ".$db, LOGLEVEL_WARNING); + $app->log("Error while adding read-only user: ".$user." to DB: ".$db, LOGLEVEL_WARN); } } } @@ -607,7 +607,7 @@ class mongo_clientdb_plugin { if ((bool) $old_db_user) { if ($old_db_user['database_user'] == 'root') { - $app->log("User root not allowed for client databases", LOGLEVEL_WARNING); + $app->log("User root not allowed for client databases", LOGLEVEL_WARN); } else { $this->dropUser($old_db_user['database_user'], $db); } @@ -620,7 +620,7 @@ class mongo_clientdb_plugin { if ((bool) $old_db_user) { if ($old_db_user['database_user'] == 'root') { - $app->log("User root not allowed for client databases", LOGLEVEL_WARNING); + $app->log("User root not allowed for client databases", LOGLEVEL_WARN); } else { $this->dropUser($old_db_user['database_user'], $db); } @@ -631,7 +631,7 @@ class mongo_clientdb_plugin { if ($data['new']['database_user_id'] != $data['old']['database_user_id']) { if ((bool) $db_user) { if ($user == 'root') { - $app->log("User root not allowed for client databases", LOGLEVEL_WARNING); + $app->log("User root not allowed for client databases", LOGLEVEL_WARN); } else { $this->addUser($db, array( 'username' => $user, @@ -649,7 +649,7 @@ class mongo_clientdb_plugin { if ($data['new']['database_ro_user_id'] != $data['old']['database_ro_user_iduser_id']) { if ((bool) $db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { if ($ro_user == 'root') { - $app->log("User root not allowed for client databases", LOGLEVEL_WARNING); + $app->log("User root not allowed for client databases", LOGLEVEL_WARN); } else { $this->addUser($db, array( 'username' => $ro_user, @@ -671,7 +671,7 @@ class mongo_clientdb_plugin { if ($this->renameDB($oldName, $newName)) { $app->log("Renamed MongoDB database: ".$old_name." -> ".$new_name, LOGLEVEL_DEBUG); } else { - $app->log("Renaming MongoDB database failed: ".$old_name." -> ".$new_name, LOGLEVEL_WARNING); + $app->log("Renaming MongoDB database failed: ".$old_name." -> ".$new_name, LOGLEVEL_WARN); } } */ @@ -710,7 +710,7 @@ class mongo_clientdb_plugin { if ($this->dropDB($db_to_drop)) { $app->log("Dropping MongoDB database: ".$db_to_drop, LOGLEVEL_DEBUG); } else { - $app->log("Error while dropping MongoDB database: ".$db_to_drop, LOGLEVEL_WARNING); + $app->log("Error while dropping MongoDB database: ".$db_to_drop, LOGLEVEL_WARN); } $this->disconnect(); @@ -770,13 +770,13 @@ class mongo_clientdb_plugin { ))) { $app->log("Created user: ".$data['new']['database_user']." in DB: ".$db, LOGLEVEL_DEBUG); } else { - $app->log("Couldn't create user: ".$data['new']['database_user']." in DB: ".$db, LOGLEVEL_WARNING); + $app->log("Couldn't create user: ".$data['new']['database_user']." in DB: ".$db, LOGLEVEL_WARN); } } else { - $app->log("Couldn't drop user: ".$data['old']['database_user']." in DB: ".$db, LOGLEVEL_WARNING); + $app->log("Couldn't drop user: ".$data['old']['database_user']." in DB: ".$db, LOGLEVEL_WARN); } } else { - $app->log("User: ".$data['new']['database_user']." already exists in DB: ".$db, LOGLEVEL_WARNING); + $app->log("User: ".$data['new']['database_user']." already exists in DB: ".$db, LOGLEVEL_WARN); } } } @@ -794,7 +794,7 @@ class mongo_clientdb_plugin { if ($this->changePassword($db, $data['new']['database_user'], md5($data['new']['database_password_mongo']))) { $app->log("Changed user's: ".$data['new']['database_user']." password in DB: ".$db, LOGLEVEL_DEBUG); } else { - $app->log("Couldn't change user's: ".$data['new']['database_user']." password in DB: ".$db, LOGLEVEL_WARNING); + $app->log("Couldn't change user's: ".$data['new']['database_user']." password in DB: ".$db, LOGLEVEL_WARN); } } } @@ -825,7 +825,7 @@ class mongo_clientdb_plugin { if ($this->dropUser($data['old']['database_user']) === true) { $app->log("Dropped MongoDB user: ".$data['old']['database_user'], LOGLEVEL_DEBUG); } else { - $app->log("Error while dropping MongoDB user: ".$data['old']['database_user'], LOGLEVEL_WARNING); + $app->log("Error while dropping MongoDB user: ".$data['old']['database_user'], LOGLEVEL_WARN); } $this->disconnect(); diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index 9cf750a84d..589e60d4ef 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -280,7 +280,7 @@ class mysql_clientdb_plugin { if ($link->query('CREATE DATABASE `'.$link->escape_string($data['new']['database_name']).'`'.$query_charset_table)) { $app->log('Created MySQL database: '.$data['new']['database_name'], LOGLEVEL_DEBUG); } else { - $app->log('Unable to create the database: '.$link->error, LOGLEVEL_WARNING); + $app->log('Unable to create the database: '.$link->error, LOGLEVEL_WARN); } // Create the database user if database is active @@ -299,11 +299,11 @@ class mysql_clientdb_plugin { $host_list .= 'localhost'; if($db_user) { - if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $host_list, $link, '', ($data['new']['quota_exceeded'] == 'y' ? 'rd' : 'rw')); } if($db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { - if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_ro_user['database_user'], $db_ro_user['database_password'], $host_list, $link, '', 'r'); } @@ -491,17 +491,17 @@ class mysql_clientdb_plugin { // Create the database user if database was disabled before if($data['new']['active'] == 'y') { if($db_user) { - if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $host_list, $link, '', ($data['new']['quota_exceeded'] == 'y' ? 'rd' : 'rw')); } if($db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { - if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_ro_user['database_user'], $db_ro_user['database_password'], $host_list, $link, '', 'r'); } } elseif($data['new']['active'] == 'n' && $data['old']['active'] == 'y') { // revoke database user, if inactive if($old_db_user) { if($old_db_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_user_id'], $old_host_list); @@ -512,7 +512,7 @@ class mysql_clientdb_plugin { } if($old_db_ro_user && $data['old']['database_user_id'] != $data['old']['database_ro_user_id']) { if($old_db_ro_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_ro_user_id'], $old_host_list); @@ -530,7 +530,7 @@ class mysql_clientdb_plugin { if($data['old']['database_user_id'] && $data['old']['database_user_id'] != $data['new']['database_ro_user_id']) { if($old_db_user) { if($old_db_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_user_id'], $old_host_list); @@ -540,7 +540,7 @@ class mysql_clientdb_plugin { } } if($db_user) { - if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $host_list, $link, '', ($data['new']['quota_exceeded'] == 'y' ? 'rd' : 'rw')); } } @@ -548,7 +548,7 @@ class mysql_clientdb_plugin { if($data['old']['database_ro_user_id'] && $data['old']['database_ro_user_id'] != $data['new']['database_user_id']) { if($old_db_ro_user) { if($old_db_ro_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_ro_user_id'], $old_host_list); @@ -558,7 +558,7 @@ class mysql_clientdb_plugin { } } if($db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { - if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_ro_user['database_user'], $db_ro_user['database_password'], $host_list, $link, '', 'r'); } } @@ -570,19 +570,19 @@ class mysql_clientdb_plugin { if($data['new']['remote_access'] == 'y') { if($db_user) { if($db_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $data['new']['remote_ips'], $link, '', ($data['new']['quota_exceeded'] == 'y' ? 'rd' : 'rw')); } } if($db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { - if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + if($db_ro_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_ro_user['database_user'], $db_ro_user['database_password'], $data['new']['remote_ips'], $link, '', 'r'); } } else { if($old_db_user) { if($old_db_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_user_id'], $data['old']['remote_ips']); @@ -592,7 +592,7 @@ class mysql_clientdb_plugin { } if($old_db_ro_user && $data['old']['database_user_id'] != $data['old']['database_ro_user_id']) { if($old_db_ro_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_ro_user_id'], $data['old']['remote_ips']); @@ -606,7 +606,7 @@ class mysql_clientdb_plugin { //* Change remote access list if($old_db_user) { if($old_db_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_user_id'], $data['old']['remote_ips']); @@ -616,7 +616,7 @@ class mysql_clientdb_plugin { } if($db_user) { if($db_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $data['new']['remote_ips'], $link, '', ($data['new']['quota_exceeded'] == 'y' ? 'rd' : 'rw')); } @@ -624,7 +624,7 @@ class mysql_clientdb_plugin { if($old_db_ro_user && $data['old']['database_user_id'] != $data['old']['database_ro_user_id']) { if($old_db_ro_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { // Find out users to drop and users to revoke $drop_or_revoke_user = $this->drop_or_revoke_user($data['old']['database_id'], $data['old']['database_ro_user_id'], $data['old']['remote_ips']); @@ -635,7 +635,7 @@ class mysql_clientdb_plugin { if($db_ro_user && $data['new']['database_user_id'] != $data['new']['database_ro_user_id']) { if($db_ro_user['database_user'] == 'root'){ - $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); + $app->log('User root not allowed for Client databases', LOGLEVEL_WARN); } else { $this->process_host_list('GRANT', $data['new']['database_name'], $db_ro_user['database_user'], $db_ro_user['database_password'], $data['new']['remote_ips'], $link, '', 'r'); } @@ -689,7 +689,7 @@ class mysql_clientdb_plugin { if($link->query('DROP DATABASE `'.$link->escape_string($data['old']['database_name'].'`'))) { $app->log('Dropping MySQL database: '.$data['old']['database_name'], LOGLEVEL_DEBUG); } else { - $app->log('Error while dropping MySQL database: '.$data['old']['database_name'].' '.$link->error, LOGLEVEL_WARNING); + $app->log('Error while dropping MySQL database: '.$data['old']['database_name'].' '.$link->error, LOGLEVEL_WARN); } $link->close(); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index dd0ad58921..78144e7bfb 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -161,7 +161,7 @@ class nginx_plugin { subjectAltName = @alt_names [alt_names] - DNS.1 = .$domain"; + DNS.1 = $domain"; $ssl_cnf_file = $ssl_dir.'/openssl.conf'; $app->system->file_put_contents($ssl_cnf_file, $ssl_cnf); @@ -2852,7 +2852,6 @@ class nginx_plugin { private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder = null) { global $app, $conf; $pool_dir = trim($pool_dir); - $rh_releasefiles = array('/etc/centos-release', '/etc/redhat-release'); // HHVM => PHP-FPM-Fallback $default_php_fpm = true; @@ -2923,21 +2922,14 @@ class nginx_plugin { $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('/[678]+\.[0-9]+/m', $tmp)) { - $tpl->setVar('fpm_group', $data['new']['system_group']); - $tpl->setVar('fpm_listen_group', $data['new']['system_group']); - } - unset($tmp); - } elseif(!file_exists($rh_file)) { - //OS seems to be not Red Hat'ish - $tpl->setVar('fpm_group', $data['new']['system_group']); - $tpl->setVar('fpm_listen_group', $web_config['group']); - } - break; + // RH workaround here + if($app->system->is_redhat_os() == true) { + $tpl->setVar('fpm_group', $data['new']['system_group']); + $tpl->setVar('fpm_listen_group', $data['new']['system_group']); + } else { + //OS seems to be not Red Hat'ish + $tpl->setVar('fpm_group', $data['new']['system_group']); + $tpl->setVar('fpm_listen_group', $web_config['group']); } $tpl->setVar('fpm_listen_user', $data['new']['system_user']); diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index 112020deb7..53500ef069 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -281,7 +281,7 @@ class rspamd_plugin { $app->system->mkdirpath($this->users_config_dir); } - if((!$this->isValidEmail($app->functions->idn_encode($email_address))) || intval($data['new']['policy_id']) == 0) { + if((!$this->isValidEmail($app->functions->idn_encode($email_address))) || intval($data['new']['policy_id']) == 0 && $type == 'spamfilter_user') { if(is_file($settings_file)) { unlink($settings_file); } @@ -508,7 +508,7 @@ class rspamd_plugin { $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); $local_addrs = array(); - $ips = $app->db->queryAllRecords('SELECT `ip_address`, `ip_type` FROM ?? WHERE `server_id` = ?', $conf['mysql']['database'].'.server_ip', $conf['server_id']); + $ips = $app->db->queryAllRecords('SELECT `ip_address`, `ip_type` FROM ?? WHERE `server_id` = ?', $conf['db_database'].'.server_ip', $conf['server_id']); if(is_array($ips) && !empty($ips)){ foreach($ips as $ip){ $local_addrs[] = array( diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 2fc4f0dfc7..7116092d0e 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -147,9 +147,8 @@ class shelluser_base_plugin { } } - $app->system->chown($data['new']['dir'],$data['new']['username'],false); - $app->system->chgrp($data['new']['dir'],$data['new']['pgroup'],false); - + $app->system->chown($data['new']['dir'], 'root', false); + $app->system->chgrp($data['new']['dir'], 'root', false); // call the ssh-rsa update function $app->uses("getconf"); @@ -477,7 +476,11 @@ class shelluser_base_plugin { // Remove duplicate keys $existing_keys = @file($sshkeys, FILE_IGNORE_NEW_LINES); $new_keys = explode("\n", $userkey); - $final_keys_arr = @array_merge($existing_keys, $new_keys); + if(is_array($existing_keys)) { + $final_keys_arr = @array_merge($existing_keys, $new_keys); + } else { + $final_keys_arr = $new_keys; + } $new_final_keys_arr = array(); if(is_array($final_keys_arr) && !empty($final_keys_arr)){ foreach($final_keys_arr as $key => $val){ diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index dbc3d8041b..1b2ff74db9 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -318,6 +318,8 @@ class shelluser_jailkit_plugin { $options = array('hardlink'); } elseif ($this->jailkit_config['jailkit_hardlinks'] == 'no') { $options = array(); + } else { + $options = array(); } } else { $options = array('allow_hardlink'); @@ -527,7 +529,11 @@ class shelluser_jailkit_plugin { // Remove duplicate keys $existing_keys = @file($sshkeys, FILE_IGNORE_NEW_LINES); $new_keys = explode("\n", $userkey); - $final_keys_arr = @array_merge($existing_keys, $new_keys); + if(is_array($existing_keys)) { + $final_keys_arr = @array_merge($existing_keys, $new_keys); + } else { + $final_keys_arr = $new_keys; + } $new_final_keys_arr = array(); if(is_array($final_keys_arr) && !empty($final_keys_arr)){ foreach($final_keys_arr as $key => $val){ diff --git a/server/server.sh b/server/server.sh index 9c92a868b0..3956d05b8b 100755 --- a/server/server.sh +++ b/server/server.sh @@ -15,14 +15,14 @@ if [ -f /usr/local/ispconfig/server/lib/php.ini ]; then fi cd /usr/local/ispconfig/server -/usr/bin/php -q \ +$(which php) -q \ -d disable_classes= \ -d disable_functions= \ -d open_basedir= \ /usr/local/ispconfig/server/server.php cd /usr/local/ispconfig/security -/usr/bin/php -q \ +$(which php) -q \ -d disable_classes= \ -d disable_functions= \ -d open_basedir= \ -- GitLab