From c6d657980c19641a33f691404e711d372f8ec09e Mon Sep 17 00:00:00 2001 From: Tiago Melo Date: Mon, 7 Oct 2019 17:25:13 +0000 Subject: [PATCH] mgr/dashboard: Allow I18N when using "ng serve" "ng serve" doesn't support i18n flags, so we need to define all language specific settings in angular.json. Then we can use them with the configuration flag, p.e.: "ng serve --configuration=pt-BR" We can also use this configurations for non production build, p.e.: "ng build --configuration=pt-BR" Set some global options, that will be shared by all configurations. Signed-off-by: Tiago Melo --- .../mgr/dashboard/frontend/angular.json | 101 +++++++++++++++++- .../mgr/dashboard/frontend/package.json | 2 +- 2 files changed, 100 insertions(+), 3 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/angular.json b/src/pybind/mgr/dashboard/frontend/angular.json index 5cc612b269e..8cb34e1cc6d 100644 --- a/src/pybind/mgr/dashboard/frontend/angular.json +++ b/src/pybind/mgr/dashboard/frontend/angular.json @@ -11,6 +11,9 @@ "build": { "builder": "@angular-devkit/build-angular:browser", "options": { + "aot": true, + "i18nFormat": "xlf", + "i18nMissingTranslation": "ignore", "outputPath": "dist", "index": "src/index.html", "main": "src/main.ts", @@ -54,17 +57,75 @@ "sourceMap": false, "extractCss": true, "namedChunks": false, - "aot": true, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, - "i18nMissingTranslation": "ignore", "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ] + }, + "cs": { + "outputPath": "dist/cs/", + "i18nFile": "src/locale/messages.cs.xlf", + "i18nLocale": "cs" + }, + "de-DE": { + "outputPath": "dist/de-DE/", + "i18nFile": "src/locale/messages.de-DE.xlf", + "i18nLocale": "de-DE" + }, + "en-US": { + "outputPath": "dist/en-US/", + "i18nFile": "src/locale/messages.en-US.xlf", + "i18nLocale": "en-US" + }, + "es-ES": { + "outputPath": "dist/es-ES/", + "i18nFile": "src/locale/messages.es-ES.xlf", + "i18nLocale": "es-ES" + }, + "fr-FR": { + "outputPath": "dist/fr-FR/", + "i18nFile": "src/locale/messages.fr-FR.xlf", + "i18nLocale": "fr-FR" + }, + "id-ID": { + "outputPath": "dist/id-ID/", + "i18nFile": "src/locale/messages.id-ID.xlf", + "i18nLocale": "id-ID" + }, + "it-IT": { + "outputPath": "dist/it-IT/", + "i18nFile": "src/locale/messages.it-IT.xlf", + "i18nLocale": "it-IT" + }, + "ja-JP": { + "outputPath": "dist/ja-JP/", + "i18nFile": "src/locale/messages.ja-JP.xlf", + "i18nLocale": "ja-JP" + }, + "pl-PL": { + "outputPath": "dist/pl-PL/", + "i18nFile": "src/locale/messages.pl-PL.xlf", + "i18nLocale": "pl-PL" + }, + "pt-BR": { + "outputPath": "dist/pt-BR/", + "i18nFile": "src/locale/messages.pt-BR.xlf", + "i18nLocale": "pt-BR" + }, + "zh-CN": { + "outputPath": "dist/zh-CN/", + "i18nFile": "src/locale/messages.zh-CN.xlf", + "i18nLocale": "zh-CN" + }, + "zh-TW": { + "outputPath": "dist/zh-TW/", + "i18nFile": "src/locale/messages.zh-TW.xlf", + "i18nLocale": "zh-TW" } } }, @@ -77,6 +138,42 @@ "configurations": { "production": { "browserTarget": "ceph-dashboard:build:production" + }, + "cs": { + "browserTarget": "ceph-dashboard:build:cs" + }, + "de-DE": { + "browserTarget": "ceph-dashboard:build:de-DE" + }, + "en-US": { + "browserTarget": "ceph-dashboard:build:en-US" + }, + "es-ES": { + "browserTarget": "ceph-dashboard:build:es-ES" + }, + "fr-FR": { + "browserTarget": "ceph-dashboard:build:fr-FR" + }, + "id-ID": { + "browserTarget": "ceph-dashboard:build:id-ID" + }, + "it-IT": { + "browserTarget": "ceph-dashboard:build:it-IT" + }, + "ja-JP": { + "browserTarget": "ceph-dashboard:build:ja-JP" + }, + "pl-PL": { + "browserTarget": "ceph-dashboard:build:pl-PL" + }, + "pt-BR": { + "browserTarget": "ceph-dashboard:build:pt-BR" + }, + "zh-CN": { + "browserTarget": "ceph-dashboard:build:zh-CN" + }, + "zh-TW": { + "browserTarget": "ceph-dashboard:build:zh-TW" } } }, diff --git a/src/pybind/mgr/dashboard/frontend/package.json b/src/pybind/mgr/dashboard/frontend/package.json index 764cd1b898d..6a622baec4f 100644 --- a/src/pybind/mgr/dashboard/frontend/package.json +++ b/src/pybind/mgr/dashboard/frontend/package.json @@ -9,7 +9,7 @@ "ng": "ng", "start": "npm run env_build && ng serve --host 0.0.0.0", "build": "npm run env_build && ng build", - "build-i18n": "export _locale=${LOCALE:-$npm_package_config_locale}; [ -f src/locale/messages.${_locale}.xlf ] && npm run build -- --i18nFormat=xlf --outputPath=dist/${_locale} --i18nFile=src/locale/messages.${_locale}.xlf --i18nLocale=${_locale}", + "build-i18n": "export _locale=${LOCALE:-$npm_package_config_locale}; [ -f src/locale/messages.${_locale}.xlf ] && npm run build -- --outputPath=dist/${_locale} --i18nFile=src/locale/messages.${_locale}.xlf --i18nLocale=${_locale}", "build:en-US": "LOCALE=en-US npm run build-i18n", "build:de-DE": "LOCALE=de-DE npm run build-i18n", "build:es-ES": "LOCALE=es-ES npm run build-i18n", -- 2.39.5