From 707ff8238aa4a9eaffda380830da62884118171a Mon Sep 17 00:00:00 2001 From: MattIPv4 <me@mattcowley.co.uk> Date: Tue, 2 Jun 2020 16:51:28 +0100 Subject: [PATCH] Move i18n strings to be centralised --- .../en/{templates/domain.js => common.js} | 17 ++++++++++++-- src/nginxconfig/i18n/en/index.js | 5 ++-- src/nginxconfig/i18n/en/templates/app.js | 6 +++-- .../en/templates/domain_sections/https.js | 16 ++++++------- .../en/templates/domain_sections/logging.js | 5 ++-- .../i18n/en/templates/domain_sections/php.js | 23 ++++++++++--------- .../en/templates/domain_sections/presets.js | 5 ---- .../en/templates/domain_sections/python.js | 15 ++++++------ .../domain_sections/reverse_proxy.js | 8 ++++--- .../en/templates/domain_sections/routing.js | 9 ++++---- src/nginxconfig/i18n/en/templates/global.js | 20 ---------------- .../en/templates/global_sections/https.js | 17 ++++++++------ .../en/templates/global_sections/logging.js | 5 ++-- .../en/templates/global_sections/nginx.js | 5 ++-- .../templates/global_sections/performance.js | 6 +++-- .../i18n/en/templates/global_sections/php.js | 9 ++++---- .../en/templates/global_sections/python.js | 7 +++--- .../en/templates/global_sections/security.js | 1 - .../en/templates/global_sections/tools.js | 6 +++-- src/nginxconfig/i18n/en/templates/index.js | 4 +--- src/nginxconfig/i18n/en/templates/setup.js | 2 -- .../en/templates/setup_sections/certbot.js | 18 +++++++++------ .../en/templates/setup_sections/download.js | 6 +++-- .../en/templates/setup_sections/go_live.js | 4 +++- .../i18n/en/templates/setup_sections/ssl.js | 8 ++++--- src/nginxconfig/templates/domain.vue | 6 +++-- .../templates/domain_sections/https.vue | 16 ++++++------- .../templates/domain_sections/logging.vue | 10 ++++---- .../templates/domain_sections/php.vue | 8 +++---- .../templates/domain_sections/presets.vue | 10 ++++---- .../templates/domain_sections/python.vue | 14 +++++------ .../templates/domain_sections/routing.vue | 2 +- src/nginxconfig/templates/global.vue | 6 +++-- .../templates/global_sections/https.vue | 12 +++++----- .../templates/global_sections/logging.vue | 2 +- .../templates/global_sections/nginx.vue | 2 +- .../templates/global_sections/php.vue | 12 +++++----- .../templates/global_sections/python.vue | 12 +++++----- .../templates/global_sections/security.vue | 4 ++-- src/nginxconfig/templates/setup.vue | 6 +++-- vue.config.js | 2 +- 41 files changed, 184 insertions(+), 167 deletions(-) rename src/nginxconfig/i18n/en/{templates/domain.js => common.js} (67%) delete mode 100644 src/nginxconfig/i18n/en/templates/global.js diff --git a/src/nginxconfig/i18n/en/templates/domain.js b/src/nginxconfig/i18n/en/common.js similarity index 67% rename from src/nginxconfig/i18n/en/templates/domain.js rename to src/nginxconfig/i18n/en/common.js index 3b7637d..a651d42 100644 --- a/src/nginxconfig/i18n/en/templates/domain.js +++ b/src/nginxconfig/i18n/en/common.js @@ -15,6 +15,19 @@ limitations under the License. */ export default { - back: 'Back', - next: 'Next', + back: 'Back', + next: 'Next', + enable: 'enable', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + django: 'Django', + logging: 'Logging', }; diff --git a/src/nginxconfig/i18n/en/index.js b/src/nginxconfig/i18n/en/index.js index 0e9cbe0..e7ef6e9 100644 --- a/src/nginxconfig/i18n/en/index.js +++ b/src/nginxconfig/i18n/en/index.js @@ -14,8 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from './common'; import templates from './templates'; -// TODO: centralised shared strings - -export default { templates }; +export default { common, templates }; diff --git a/src/nginxconfig/i18n/en/templates/app.js b/src/nginxconfig/i18n/en/templates/app.js index 48edbca..2338222 100644 --- a/src/nginxconfig/i18n/en/templates/app.js +++ b/src/nginxconfig/i18n/en/templates/app.js @@ -14,9 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../common'; + export default { - title: 'NGINXConfig', - description: 'The easiest way to configure a performant, secure, and stable NGINX server.', + title: `${common.nginx}Config`, + description: `The easiest way to configure a performant, secure, and stable ${common.nginx} server.`, singleColumnMode: 'Single column mode', splitColumnMode: 'Split column mode', perWebsiteConfig: 'Per-website config', diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/https.js b/src/nginxconfig/i18n/en/templates/domain_sections/https.js index 943b911..80b43f6 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/https.js @@ -14,16 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - https: 'HTTPS', - enableEncryptedSslConnection: 'enable encrypted SSL connections', - http2: 'HTTP/2', - enableHttp2Connections: 'enable HTTP/2 connections', - forceHttps: 'Force HTTPS', + enableEncryptedSslConnection: `${common.enable} encrypted ${common.ssl} connections`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} ${common.http}/2 connections`, + forceHttps: `Force ${common.https}`, hsts: 'HSTS', - enableStrictTransportSecurity: 'enable Strict Transport Security', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security`, certificationType: 'Certification type', - letsEncrypt: 'Let\'s Encrypt', customCertificate: 'Custom certificate', - letsEncryptEmail: 'Let\'s Encrypt email', + letsEncryptEmail: `${common.letsEncrypt} email`, }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/logging.js b/src/nginxconfig/i18n/en/templates/domain_sections/logging.js index 86355a2..9d664dc 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/logging.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/logging.js @@ -14,8 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { byDomain: 'by domain', - enableForThisDomain: 'enable for this domain', - logging: 'Logging', + enableForThisDomain: `${common.enable} for this domain`, }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/php.js b/src/nginxconfig/i18n/en/templates/domain_sections/php.js index 2b44364..5d9ca0a 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/php.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/php.js @@ -14,16 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - php: 'PHP', - phpIsDisabled: 'PHP is disabled.', - phpCannotBeEnabledWithReverseProxy: 'PHP cannot be enabled whilst the reverse proxy is enabled.', - phpCannotBeEnabledWithPython: 'PHP cannot be enabled whilst Python is enabled.', - enablePhp: 'enable PHP', - wordPressRules: 'WordPress rules', - enableWordPressRules: 'enable WordPress-specific rules', - drupalRules: 'Drupal rules', - enableDrupalRules: 'enable Drupal-specific rules', - magentoRules: 'Magento rules', - enableMagentoRules: 'enable Magento-specific rules', + phpIsDisabled: `${common.php} is disabled.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} cannot be enabled whilst the reverse proxy is enabled.`, + phpCannotBeEnabledWithPython: `${common.php} cannot be enabled whilst ${common.python} is enabled.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `${common.wordPress} rules`, + enableWordPressRules: `${common.enable} ${common.wordPress}-specific rules`, + drupalRules: `${common.drupal} rules`, + enableDrupalRules: `${common.enable} ${common.drupal}-specific rules`, + magentoRules: `${common.magento} rules`, + enableMagentoRules: `${common.enable} ${common.magento}-specific rules`, }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/presets.js b/src/nginxconfig/i18n/en/templates/domain_sections/presets.js index 2bbfb3a..cfea4d8 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/presets.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/presets.js @@ -18,11 +18,6 @@ export default { presets: 'Presets', itLooksLikeYouCustomisedTheConfig: 'It looks like you\'ve customised the configuration for this domain. Choosing a new preset may reset or change some of the settings that you\'ve customised.', frontend: 'Frontend', - php: 'PHP', - django: 'Django', nodeJs: 'Node.js', singlePageApplication: 'Single-page application', - wordPress: 'WordPress', - drupal: 'Drupal', - magento: 'Magento', }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/python.js b/src/nginxconfig/i18n/en/templates/domain_sections/python.js index c6c5e6a..bbf4294 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/python.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/python.js @@ -14,12 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - python: 'Python', - pythonIsDisabled: 'Python is disabled.', - pythonCannotBeEnabledWithReverseProxy: 'Python cannot be enabled whilst the reverse proxy is enabled.', - pythonCannotBeEnabledWithPhp: 'Python cannot be enabled whilst PHP is enabled.', - enablePython: 'enable Python', - djangoRules: 'Django rules', - enableDjangoRules: 'enable Django-specific rules', + pythonIsDisabled: `${common.python} is disabled.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} cannot be enabled whilst the reverse proxy is enabled.`, + pythonCannotBeEnabledWithPhp: `${common.python} cannot be enabled whilst ${common.php} is enabled.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `${common.django} rules`, + enableDjangoRules: `${common.enable} ${common.django}-specific rules`, }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js b/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js index b10c514..133b199 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js @@ -14,11 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { reverseProxy: 'Reverse proxy', reverseProxyIsDisabled: 'Reverse proxy is disabled.', - reverseProxyCannotBeEnabledWithPhp: 'Reverse proxy cannot be enabled whilst PHP is enabled.', - reverseProxyCannotBeEnabledWithPython: 'Reverse proxy cannot be enabled whilst Python is enabled.', - enableReverseProxy: 'enable reverse proxy', + reverseProxyCannotBeEnabledWithPhp: `Reverse proxy cannot be enabled whilst ${common.php} is enabled.`, + reverseProxyCannotBeEnabledWithPython: `Reverse proxy cannot be enabled whilst ${common.python} is enabled.`, + enableReverseProxy: `${common.enable} reverse proxy`, path: 'Path', }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/routing.js b/src/nginxconfig/i18n/en/templates/domain_sections/routing.js index f68cd04..d6b54c7 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/routing.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/routing.js @@ -14,12 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - enable: 'enable', fallbackRouting: 'Fallback routing', - fallbackRoutingPhpPath: 'Fallback routing PHP path', - legacyPhpRouting: 'Legacy PHP routing', - enableLegacyRouting: 'enable legacy routing', + fallbackRoutingPhpPath: `Fallback routing ${common.php} path`, + legacyPhpRouting: `Legacy ${common.php} routing`, + enableLegacyRouting: `${common.enable} legacy routing`, path: 'Path', routing: 'Routing', }; diff --git a/src/nginxconfig/i18n/en/templates/global.js b/src/nginxconfig/i18n/en/templates/global.js deleted file mode 100644 index 3b7637d..0000000 --- a/src/nginxconfig/i18n/en/templates/global.js +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2020 DigitalOcean - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -export default { - back: 'Back', - next: 'Next', -}; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/https.js b/src/nginxconfig/i18n/en/templates/global_sections/https.js index 8b9181c..12b349e 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/https.js @@ -14,16 +14,19 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + +const mozilla = 'Mozilla'; + export default { - sslProfile: 'SSL Profile', - httpsMustBeEnabledOnOneSite: 'HTTPS must be enabled on at least one site to configure global HTTPS settings.', + sslProfile: `${common.ssl} Profile`, + httpsMustBeEnabledOnOneSite: `${common.https} must be enabled on at least one site to configure global ${common.https} settings.`, ocspDnsResolvers: 'OCSP DNS Resolvers', cloudflareResolver: 'Cloudflare Resolver', googlePublicDns: 'Google Public DNS', openDns: 'OpenDNS', - letsEncryptWebroot: 'Let\'s Encrypt webroot', - mozillaModern: 'Mozilla Modern', - mozillaIntermediate: 'Mozilla Intermediate', - mozillaOld: 'Mozilla Old', - https: 'HTTPS', + letsEncryptWebroot: `${common.letsEncrypt} webroot`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, }; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/logging.js b/src/nginxconfig/i18n/en/templates/global_sections/logging.js index e3ddd52..dcefc45 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/logging.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/logging.js @@ -14,7 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - enableFileNotFoundErrorLogging: 'enable file not found error logging in', - logging: 'Logging', + enableFileNotFoundErrorLogging: `${common.enable} file not found error logging in`, }; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/nginx.js b/src/nginxconfig/i18n/en/templates/global_sections/nginx.js index 07b4ea5..3934a74 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/nginx.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/nginx.js @@ -14,8 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - nginxConfigDirectory: 'NGINX config directory', + nginxConfigDirectory: `${common.nginx} config directory`, mb: 'MB', - nginx: 'NGINX', }; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/performance.js b/src/nginxconfig/i18n/en/templates/global_sections/performance.js index 51e875c..94ba8f0 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/performance.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/performance.js @@ -14,11 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { gzipCompression: 'Gzip compression', - enableGzipCompression: 'enable gzip compression', + enableGzipCompression: `${common.enable} gzip compression`, brotliCompression: 'Brotli compression', - enableBrotliCompression: 'enable brotli compression', + enableBrotliCompression: `${common.enable} brotli compression`, expirationForAssets: 'Expiration for assets', expirationForMedia: 'Expiration for media', expirationForSvgs: 'Expiration for SVGs', diff --git a/src/nginxconfig/i18n/en/templates/global_sections/php.js b/src/nginxconfig/i18n/en/templates/global_sections/php.js index ba7a5b3..4131b51 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/php.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/php.js @@ -14,10 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - phpServer: 'PHP server', - phpMustBeEnabledOnOneSite: 'PHP must be enabled on at least one site to configure global PHP settings.', - phpBackupServer: 'PHP backup server', + phpServer: `${common.php} server`, + phpMustBeEnabledOnOneSite: `${common.php} must be enabled on at least one site to configure global ${common.php} settings.`, + phpBackupServer: `${common.php} backup server`, tcp: 'TCP', hhvmSocket: 'HHVM socket', php5Socket: '5.x socket', @@ -26,5 +28,4 @@ export default { php72Socket: '7.2 socket', php73Socket: '7.3 socket', disabled: 'Disabled', - php: 'PHP', }; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/python.js b/src/nginxconfig/i18n/en/templates/global_sections/python.js index 5b33d15..03f2750 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/python.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/python.js @@ -14,8 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { - pythonServer: 'Python server', - pythonMustBeEnabledOnOneSite: 'Python must be enabled on at least one site to configure global Python settings.', - python: 'Python', + pythonServer: `${common.python} server`, + pythonMustBeEnabledOnOneSite: `${common.python} must be enabled on at least one site to configure global ${common.python} settings.`, }; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/security.js b/src/nginxconfig/i18n/en/templates/global_sections/security.js index df0e66f..25fc25b 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/security.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/security.js @@ -15,6 +15,5 @@ limitations under the License. */ export default { - enable: 'enable', security: 'Security', }; diff --git a/src/nginxconfig/i18n/en/templates/global_sections/tools.js b/src/nginxconfig/i18n/en/templates/global_sections/tools.js index ed7327e..e368399 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/tools.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/tools.js @@ -14,11 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { modularizedStructure: 'Modularized structure', - enableModularizedConfigFiles: 'enable modularized config files', + enableModularizedConfigFiles: `${common.enable} modularized config files`, symlinkVhost: 'Symlink vhost', - enableSymLinksFrom: 'enable symlinks from', + enableSymLinksFrom: `${common.enable} symlinks from`, to: 'to', shareConfiguration: 'Share configuration', resetConfiguration: 'Reset configuration', diff --git a/src/nginxconfig/i18n/en/templates/index.js b/src/nginxconfig/i18n/en/templates/index.js index 913a8a6..d9c1982 100644 --- a/src/nginxconfig/i18n/en/templates/index.js +++ b/src/nginxconfig/i18n/en/templates/index.js @@ -15,11 +15,9 @@ limitations under the License. */ import app from './app'; -import domain from './domain'; -import global from './global'; import setup from './setup'; import domainSections from './domain_sections'; import globalSections from './global_sections'; import setupSections from './setup_sections'; -export default { app, domain, global, setup, domainSections, globalSections, setupSections }; +export default { app, setup, domainSections, globalSections, setupSections }; diff --git a/src/nginxconfig/i18n/en/templates/setup.js b/src/nginxconfig/i18n/en/templates/setup.js index a5a6ec9..f025229 100644 --- a/src/nginxconfig/i18n/en/templates/setup.js +++ b/src/nginxconfig/i18n/en/templates/setup.js @@ -15,8 +15,6 @@ limitations under the License. */ export default { - back: 'Back', - next: 'Next', downloadConfig: 'Download Config', copyBase64: 'Copy Base64', }; diff --git a/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js b/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js index 5371c27..a572be7 100644 --- a/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js +++ b/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js @@ -14,12 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + +const certbot = 'Certbot'; + export default { - commentOutSslDirectivesInConfiguration: 'Comment out SSL related directives in the configuration:', - reloadYourNginxServer: 'Reload your NGINX server:', - obtainSslCertificatesFromLetsEncrypt: 'Obtain SSL certificates from Let\'s Encrypt using Certbot:', - uncommentSslDirectivesInConfiguration: 'Uncomment SSL related directives in the configuration:', - configureCertbotToReloadNginxOnCertificateRenewal: 'Configure Certbot to reload NGINX when it successfully renews certificates:', - certbotDoesNotNeedToBeSetupForYourConfiguration: 'Certbot does not need to be set up for your NGINX configuration.', - certbot: 'Certbot', + commentOutSslDirectivesInConfiguration: `Comment out ${common.ssl} related directives in the configuration:`, + reloadYourNginxServer: `Reload your ${common.nginx} server:`, + obtainSslCertificatesFromLetsEncrypt: `Obtain ${common.ssl} certificates from ${common.letsEncrypt} using ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Uncomment ${common.ssl} related directives in the configuration:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Configure ${certbot} to reload ${common.nginx} when it successfully renews certificates:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} does not need to be set up for your ${common.nginx} configuration.`, + certbot, }; diff --git a/src/nginxconfig/i18n/en/templates/setup_sections/download.js b/src/nginxconfig/i18n/en/templates/setup_sections/download.js index 7ebbd3e..04200e3 100644 --- a/src/nginxconfig/i18n/en/templates/setup_sections/download.js +++ b/src/nginxconfig/i18n/en/templates/setup_sections/download.js @@ -14,6 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { downloadTheGeneratedConfig: '<b>Download</b> the generated config:', andUploadItToYourServers: 'and <b>upload</b> it to your server\'s', @@ -21,8 +23,8 @@ export default { or: 'or, ', copyBase64StringOfCompressedConfig: 'Copy a base64 string of the compressed config', pasteItInYourServersCommandLineAndExecute: ', paste it in your server\'s command line and execute it.', - navigateToYourNginxConfigurationDirectoryOnYourServer: 'Navigate to your NGINX <b>configuration directory</b> on your server:', - createABackupOfYourCurrentNginxConfiguration: 'Create a <b>backup</b> of your current NGINX configuration:', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Navigate to your ${common.nginx} <b>configuration directory</b> on your server:`, + createABackupOfYourCurrentNginxConfiguration: `Create a <b>backup</b> of your current ${common.nginx} configuration:`, extractTheNewCompressedConfigurationArchiveUsingTar: '<b>Extract</b> the new compressed configuration archive using tar:', download: 'Download', }; diff --git a/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js b/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js index 6172cb5..ced4c70 100644 --- a/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js +++ b/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js @@ -14,8 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { letsGoLive: 'Let\'s go live!', - reloadNginxToLoadInYourNewConfiguration: 'Reload NGINX to load in your new configuration:', + reloadNginxToLoadInYourNewConfiguration: `Reload ${common.nginx} to load in your new configuration:`, goLive: 'Go live!', }; diff --git a/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js b/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js index e1dc86d..ad159f2 100644 --- a/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js +++ b/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js @@ -14,9 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. */ +import common from '../../common'; + export default { generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Generate <b>Diffie-Hellman keys</b> by running this command on your server:', - createACommonAcmeChallengeDirectoryForLetsEncrypt: 'Create a common <b>ACME-challenge</b> directory (for <b>Let\'s Encrypt</b>):', - noAdditionalStepsAreNeededToSetUpSslForNginx: 'No additional steps are needed to set up SSL for your NGINX configuration.', - sslInit: 'SSL init', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Create a common <b>ACME-challenge</b> directory (for <b>${common.letsEncrypt}</b>):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `No additional steps are needed to set up ${common.ssl} for your ${common.nginx} configuration.`, + sslInit: `${common.ssl} init`, }; diff --git a/src/nginxconfig/templates/domain.vue b/src/nginxconfig/templates/domain.vue index 39efdf5..d369cd5 100644 --- a/src/nginxconfig/templates/domain.vue +++ b/src/nginxconfig/templates/domain.vue @@ -39,10 +39,10 @@ limitations under the License. <div class="navigation-buttons"> <a v-if="previousTab !== false" class="button is-mini" @click="active = previousTab"> - <i class="fas fa-long-arrow-alt-left"></i> <span>{{ i18n.templates.domain.back }}</span> + <i class="fas fa-long-arrow-alt-left"></i> <span>{{ i18n.common.back }}</span> </a> <a v-if="nextTab !== false" class="button is-primary is-mini" @click="active = nextTab"> - <span>{{ i18n.templates.domain.next }}</span> <i class="fas fa-long-arrow-alt-right"></i> + <span>{{ i18n.common.next }}</span> <i class="fas fa-long-arrow-alt-right"></i> </a> </div> </div> @@ -50,6 +50,7 @@ limitations under the License. </template> <script> + import i18n from '../i18n'; import isChanged from '../util/is_changed'; import Presets from './domain_sections/presets'; import * as Sections from './domain_sections'; @@ -75,6 +76,7 @@ limitations under the License. }, data() { return { + i18n, active: tabs[0].key, tabs, }; diff --git a/src/nginxconfig/templates/domain_sections/https.vue b/src/nginxconfig/templates/domain_sections/https.vue index ce67f22..2c35d7d 100644 --- a/src/nginxconfig/templates/domain_sections/https.vue +++ b/src/nginxconfig/templates/domain_sections/https.vue @@ -18,7 +18,7 @@ limitations under the License. <div> <div class="field is-horizontal"> <div class="field-label"> - <label class="label">{{ i18n.templates.domainSections.https.https }}</label> + <label class="label">{{ i18n.common.https }}</label> </div> <div class="field-body"> <div class="field"> @@ -216,7 +216,7 @@ limitations under the License. certType: { default: 'letsEncrypt', options: { - letsEncrypt: i18n.templates.domainSections.https.letsEncrypt, + letsEncrypt: i18n.common.letsEncrypt, custom: i18n.templates.domainSections.https.customCertificate, }, enabled: true, @@ -236,16 +236,16 @@ limitations under the License. }; export default { - name: 'DomainHTTPS', // Component name - display: i18n.templates.domainSections.https.https, // Display name for tab - key: 'https', // Key for data in parent - delegated: delegatedFromDefaults(defaults), // Data the parent will present here + name: 'DomainHTTPS', // Component name + display: i18n.common.https, // Display name for tab + key: 'https', // Key for data in parent + delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { PrettyCheck, PrettyRadio, }, props: { - data: Object, // Data delegated back to us from parent + data: Object, // Data delegated back to us from parent }, data () { return { @@ -253,7 +253,7 @@ limitations under the License. }; }, computed: { - ...computedFromDefaults(defaults, 'https'), // Getters & setters for the delegated data + ...computedFromDefaults(defaults, 'https'), // Getters & setters for the delegated data nginxDir() { return this.$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, ''); }, diff --git a/src/nginxconfig/templates/domain_sections/logging.vue b/src/nginxconfig/templates/domain_sections/logging.vue index 5726319..74ba8e8 100644 --- a/src/nginxconfig/templates/domain_sections/logging.vue +++ b/src/nginxconfig/templates/domain_sections/logging.vue @@ -72,15 +72,15 @@ limitations under the License. }; export default { - name: 'DomainLogging', // Component name - display: i18n.templates.domainSections.logging.logging, // Display name for tab - key: 'logging', // Key for data in parent - delegated: delegatedFromDefaults(defaults), // Data the parent will present here + name: 'DomainLogging', // Component name + display: i18n.common.logging, // Display name for tab + key: 'logging', // Key for data in parent + delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { PrettyCheck, }, props: { - data: Object, // Data delegated back to us from parent + data: Object, // Data delegated back to us from parent }, data () { return { diff --git a/src/nginxconfig/templates/domain_sections/php.vue b/src/nginxconfig/templates/domain_sections/php.vue index 6322e29..daae373 100644 --- a/src/nginxconfig/templates/domain_sections/php.vue +++ b/src/nginxconfig/templates/domain_sections/php.vue @@ -18,7 +18,7 @@ limitations under the License. <div> <div v-if="!phpEnabled" class="field is-horizontal is-aligned-top"> <div class="field-label"> - <label class="label">{{ i18n.templates.domainSections.php.php }}</label> + <label class="label">{{ i18n.common.php }}</label> </div> <div class="field-body"> <div class="field"> @@ -39,7 +39,7 @@ limitations under the License. <div v-else class="field is-horizontal"> <div class="field-label"> - <label class="label">PHP</label> + <label class="label">{{ i18n.common.php }}</label> </div> <div class="field-body"> <div class="field"> @@ -138,7 +138,7 @@ limitations under the License. export default { name: 'DomainPHP', // Component name - display: i18n.templates.domainSections.php.php, // Display name for tab + display: i18n.common.php, // Display name for tab key: 'php', // Key for data in parent delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { @@ -152,7 +152,7 @@ limitations under the License. i18n, }; }, - computed: computedFromDefaults(defaults, 'php'), // Getters & setters for the delegated data + computed: computedFromDefaults(defaults, 'php'), // Getters & setters for the delegated data watch: { // If the Reverse proxy or Python is enabled, PHP will be forced off '$parent.$props.data': { diff --git a/src/nginxconfig/templates/domain_sections/presets.vue b/src/nginxconfig/templates/domain_sections/presets.vue index aefda02..945dd1d 100644 --- a/src/nginxconfig/templates/domain_sections/presets.vue +++ b/src/nginxconfig/templates/domain_sections/presets.vue @@ -67,7 +67,7 @@ limitations under the License. }, php: { default: true, - display: i18n.templates.domainSections.presets.php, + display: i18n.common.php, enabled: true, computedCheck (data) { return data.php.php.computed @@ -81,7 +81,7 @@ limitations under the License. }, django: { default: false, - display: i18n.templates.domainSections.presets.django, + display: i18n.common.django, enabled: true, computedCheck (data) { return data.python.python.computed @@ -110,7 +110,7 @@ limitations under the License. }, wordPress: { default: false, - display: i18n.templates.domainSections.presets.wordPress, + display: i18n.common.wordPress, enabled: true, computedCheck (data) { return data.routing.index.computed === 'index.php' @@ -123,7 +123,7 @@ limitations under the License. }, drupal: { default: false, - display: i18n.templates.domainSections.presets.drupal, + display: i18n.common.drupal, enabled: true, computedCheck (data) { return data.routing.index.computed === 'index.php' @@ -136,7 +136,7 @@ limitations under the License. }, magento: { default: false, - display: i18n.templates.domainSections.presets.magento, + display: i18n.common.magento, enabled: true, computedCheck (data) { return data.routing.index.computed === 'index.php' diff --git a/src/nginxconfig/templates/domain_sections/python.vue b/src/nginxconfig/templates/domain_sections/python.vue index 70a99a3..f75b879 100644 --- a/src/nginxconfig/templates/domain_sections/python.vue +++ b/src/nginxconfig/templates/domain_sections/python.vue @@ -18,7 +18,7 @@ limitations under the License. <div> <div v-if="!pythonEnabled" class="field is-horizontal is-aligned-top"> <div class="field-label"> - <label class="label">{{ i18n.templates.domainSections.python.python }}</label> + <label class="label">{{ i18n.common.python }}</label> </div> <div class="field-body"> <div class="field"> @@ -39,7 +39,7 @@ limitations under the License. <div v-else class="field is-horizontal"> <div class="field-label"> - <label class="label">{{ i18n.templates.domainSections.python.python }}</label> + <label class="label">{{ i18n.common.python }}</label> </div> <div class="field-body"> <div class="field"> @@ -93,15 +93,15 @@ limitations under the License. }; export default { - name: 'DomainPython', // Component name - display: i18n.templates.domainSections.python.python, // Display name for tab - key: 'python', // Key for data in parent - delegated: delegatedFromDefaults(defaults), // Data the parent will present here + name: 'DomainPython', // Component name + display: i18n.common.python, // Display name for tab + key: 'python', // Key for data in parent + delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { PrettyCheck, }, props: { - data: Object, // Data delegated back to us from parent + data: Object, // Data delegated back to us from parent }, data () { return { diff --git a/src/nginxconfig/templates/domain_sections/routing.vue b/src/nginxconfig/templates/domain_sections/routing.vue index 2bad533..28e94ee 100644 --- a/src/nginxconfig/templates/domain_sections/routing.vue +++ b/src/nginxconfig/templates/domain_sections/routing.vue @@ -26,7 +26,7 @@ limitations under the License. <div class="checkbox"> <PrettyCheck v-model="root" class="p-default p-curve p-fill p-icon"> <i slot="extra" class="icon fas fa-check"></i> - {{ i18n.templates.domainSections.routing.enable }} + {{ i18n.common.enable }} </PrettyCheck> </div> </div> diff --git a/src/nginxconfig/templates/global.vue b/src/nginxconfig/templates/global.vue index c1afedd..6e9becd 100644 --- a/src/nginxconfig/templates/global.vue +++ b/src/nginxconfig/templates/global.vue @@ -34,16 +34,17 @@ limitations under the License. <div class="navigation-buttons"> <a v-if="previousTab !== false" class="button is-mini" @click="active = previousTab"> - <i class="fas fa-long-arrow-alt-left"></i> <span>{{ i18n.templates.global.back }}</span> + <i class="fas fa-long-arrow-alt-left"></i> <span>{{ i18n.common.back }}</span> </a> <a v-if="nextTab !== false" class="button is-primary is-mini" @click="active = nextTab"> - <span>{{ i18n.templates.global.next }}</span> <i class="fas fa-long-arrow-alt-right"></i> + <span>{{ i18n.common.next }}</span> <i class="fas fa-long-arrow-alt-right"></i> </a> </div> </div> </template> <script> + import i18n from '../i18n'; import isChanged from '../util/is_changed'; import * as Sections from './global_sections'; @@ -61,6 +62,7 @@ limitations under the License. }, data() { return { + i18n, active: tabs[0].key, tabs, }; diff --git a/src/nginxconfig/templates/global_sections/https.vue b/src/nginxconfig/templates/global_sections/https.vue index 3bb5855..75100d8 100644 --- a/src/nginxconfig/templates/global_sections/https.vue +++ b/src/nginxconfig/templates/global_sections/https.vue @@ -144,23 +144,23 @@ limitations under the License. }; export default { - name: 'GlobalHTTPS', // Component name - display: i18n.templates.globalSections.https.https, // Display name for tab - key: 'https', // Key for data in parent - delegated: delegatedFromDefaults(defaults), // Data the parent will present here + name: 'GlobalHTTPS', // Component name + display: i18n.common.https, // Display name for tab + key: 'https', // Key for data in parent + delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { PrettyCheck, PrettyRadio, }, props: { - data: Object, // Data delegated back to us from parent + data: Object, // Data delegated back to us from parent }, data () { return { i18n, }; }, - computed: computedFromDefaults(defaults, 'https'), // Getters & setters for the delegated data + computed: computedFromDefaults(defaults, 'https'), // Getters & setters for the delegated data watch: { // Check SSL profile is valid '$props.data.sslProfile': { diff --git a/src/nginxconfig/templates/global_sections/logging.vue b/src/nginxconfig/templates/global_sections/logging.vue index 05110ef..9b42c0c 100644 --- a/src/nginxconfig/templates/global_sections/logging.vue +++ b/src/nginxconfig/templates/global_sections/logging.vue @@ -93,7 +93,7 @@ limitations under the License. export default { name: 'GlobalLogging', // Component name - display: i18n.templates.globalSections.logging.logging, // Display name for tab + display: i18n.common.logging, // Display name for tab key: 'logging', // Key for data in parent delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { diff --git a/src/nginxconfig/templates/global_sections/nginx.vue b/src/nginxconfig/templates/global_sections/nginx.vue index 7b4478d..deacfd6 100644 --- a/src/nginxconfig/templates/global_sections/nginx.vue +++ b/src/nginxconfig/templates/global_sections/nginx.vue @@ -144,7 +144,7 @@ limitations under the License. export default { name: 'GlobalNGINX', // Component name - display: i18n.templates.globalSections.nginx.nginx, // Display name for tab + display: i18n.common.nginx, // Display name for tab key: 'nginx', // Key for data in parent delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { diff --git a/src/nginxconfig/templates/global_sections/php.vue b/src/nginxconfig/templates/global_sections/php.vue index daa003d..431ddb7 100644 --- a/src/nginxconfig/templates/global_sections/php.vue +++ b/src/nginxconfig/templates/global_sections/php.vue @@ -100,15 +100,15 @@ limitations under the License. }; export default { - name: 'GlobalPHP', // Component name - display: i18n.templates.globalSections.php.php, // Display name for tab - key: 'php', // Key for data in parent - delegated: delegatedFromDefaults(defaults), // Data the parent will present here + name: 'GlobalPHP', // Component name + display: i18n.common.php, // Display name for tab + key: 'php', // Key for data in parent + delegated: delegatedFromDefaults(defaults), // Data the parent will present here components: { VueSelect, }, props: { - data: Object, // Data delegated back to us from parent + data: Object, // Data delegated back to us from parent }, data () { return { @@ -116,7 +116,7 @@ limitations under the License. }; }, computed: { - ...computedFromDefaults(defaults, 'php'), // Getters & setters for the delegated data + ...computedFromDefaults(defaults, 'php'), // Getters & setters for the delegated data phpServerOptions() { return Object.entries(this.$props.data.phpServer.options) .map(([key, value]) => ({ label: value, value: key })); diff --git a/src/nginxconfig/templates/global_sections/python.vue b/src/nginxconfig/templates/global_sections/python.vue index 8070d1e..5bbaac7 100644 --- a/src/nginxconfig/templates/global_sections/python.vue +++ b/src/nginxconfig/templates/global_sections/python.vue @@ -63,19 +63,19 @@ limitations under the License. }; export default { - name: 'GlobalPython', // Component name - display: i18n.templates.globalSections.python.python, // Display name for tab - key: 'python', // Key for data in parent - delegated: delegatedFromDefaults(defaults), // Data the parent will present here + name: 'GlobalPython', // Component name + display: i18n.common.python, // Display name for tab + key: 'python', // Key for data in parent + delegated: delegatedFromDefaults(defaults), // Data the parent will present here props: { - data: Object, // Data delegated back to us from parent + data: Object, // Data delegated back to us from parent }, data () { return { i18n, }; }, - computed: computedFromDefaults(defaults, 'python'), // Getters & setters for the delegated data + computed: computedFromDefaults(defaults, 'python'), // Getters & setters for the delegated data watch: { // Enable Python server settings if any site uses Python '$parent.$parent.$data.domains': { diff --git a/src/nginxconfig/templates/global_sections/security.vue b/src/nginxconfig/templates/global_sections/security.vue index 56a95a1..77d50a9 100644 --- a/src/nginxconfig/templates/global_sections/security.vue +++ b/src/nginxconfig/templates/global_sections/security.vue @@ -59,7 +59,7 @@ limitations under the License. <div class="checkbox"> <PrettyCheck v-model="serverTokens" class="p-default p-curve p-fill p-icon"> <i slot="extra" class="icon fas fa-check"></i> - {{ i18n.templates.globalSections.security.enable }} + {{ i18n.common.enable }} </PrettyCheck> </div> </div> @@ -77,7 +77,7 @@ limitations under the License. <div class="checkbox"> <PrettyCheck v-model="limitReq" class="p-default p-curve p-fill p-icon"> <i slot="extra" class="icon fas fa-check"></i> - {{ i18n.templates.globalSections.security.enable }} + {{ i18n.common.enable }} </PrettyCheck> </div> </div> diff --git a/src/nginxconfig/templates/setup.vue b/src/nginxconfig/templates/setup.vue index 43391af..9965e8d 100644 --- a/src/nginxconfig/templates/setup.vue +++ b/src/nginxconfig/templates/setup.vue @@ -35,10 +35,10 @@ limitations under the License. <div class="navigation-buttons"> <a v-if="previousTab !== false" class="button is-mini" @click="active = previousTab"> - <i class="fas fa-long-arrow-alt-left"></i> <span>{{ i18n.templates.setup.back }}</span> + <i class="fas fa-long-arrow-alt-left"></i> <span>{{ i18n.common.back }}</span> </a> <a v-if="nextTab !== false" class="button is-primary is-mini" @click="active = nextTab"> - <span>{{ i18n.templates.setup.next }}</span> <i class="fas fa-long-arrow-alt-right"></i> + <span>{{ i18n.common.next }}</span> <i class="fas fa-long-arrow-alt-right"></i> </a> </div> </div> @@ -55,6 +55,7 @@ limitations under the License. import getStream from 'get-stream'; import { gzip } from 'node-gzip'; import copy from 'copy-to-clipboard'; + import i18n from '../i18n'; import * as Sections from './setup_sections'; const tabs = Object.values(Sections); @@ -66,6 +67,7 @@ limitations under the License. }, data() { return { + i18n, active: tabs[0].key, tabs, }; diff --git a/vue.config.js b/vue.config.js index 9b32962..8f0c506 100644 --- a/vue.config.js +++ b/vue.config.js @@ -22,7 +22,7 @@ module.exports = { publicPath: './', outputDir: 'dist', filenameHashing: false, - productionSourceMap: false, + //productionSourceMap: false, configureWebpack: { plugins: [ process.argv.includes('--analyze') && new BundleAnalyzerPlugin(),