From 754e26f7769bbfd782d416f68f0eefd479fa691b Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Mon, 7 Oct 2019 12:48:58 +0100 Subject: [PATCH] mgr/dashboard: frontend: default language option in environment Signed-off-by: Ricardo Dias --- .../mgr/dashboard/frontend/environment.build.js | 11 +++++++++++ .../mgr/dashboard/frontend/src/app/app.module.ts | 4 +++- .../src/app/shared/services/language.service.ts | 4 +++- .../frontend/src/environments/environment.tpl.ts | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/environment.build.js b/src/pybind/mgr/dashboard/frontend/environment.build.js index 87a6e712bf03b..54253fbec4f44 100755 --- a/src/pybind/mgr/dashboard/frontend/environment.build.js +++ b/src/pybind/mgr/dashboard/frontend/environment.build.js @@ -49,12 +49,23 @@ const optionsOldProd = { allowEmptyPaths: false, }; +const optionsDefaultLang = { + files: [ + 'src/environments/environment.prod.ts', + 'src/environments/environment.ts' + ], + from: /'{DEFAULT_LANG}'/g, + to: `'${process.env.npm_package_config_locale}'`, + allowEmptyPaths: false +} + try { let changeOldYearFiles = replace.sync(optionsOldYear); let changeNewYearFiles = replace.sync(optionsNewYear); let changeOldProdFiles = replace.sync(optionsOldProd); let changeProdFiles = replace.sync(optionsNewProd); let changeDevFiles = replace.sync(optionsNewDev); + let changeDefaultLangFiles = replace.sync(optionsDefaultLang); console.log('Environment variables have been set'); } catch (error) { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts b/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts index fc4796a4ca555..3b6e44f3175ba 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts @@ -28,6 +28,8 @@ import { ApiInterceptorService } from './shared/services/api-interceptor.service import { JsErrorHandler } from './shared/services/js-error-handler.service'; import { SharedModule } from './shared/shared.module'; +import { environment } from '../environments/environment'; + export function jwtTokenGetter() { return localStorage.getItem('access_token'); } @@ -74,7 +76,7 @@ export function jwtTokenGetter() { { provide: TRANSLATIONS, useFactory: (locale) => { - locale = locale || 'en-US'; + locale = locale || environment.default_lang; try { return require(`raw-loader!locale/messages.${locale}.xlf`).default; } catch (error) { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/language.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/language.service.ts index 80b602a5758f9..438817103ea03 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/language.service.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/language.service.ts @@ -2,6 +2,8 @@ import { HttpClient } from '@angular/common/http'; import { Inject, LOCALE_ID } from '@angular/core'; import { Injectable } from '@angular/core'; +import { environment } from '../../../environments/environment'; + @Injectable({ providedIn: 'root' }) @@ -9,7 +11,7 @@ export class LanguageService { constructor(private http: HttpClient, @Inject(LOCALE_ID) protected localeId: string) {} getLocale(): string { - return this.localeId || 'en-US'; + return this.localeId || environment.default_lang; } setLocale(lang: string) { diff --git a/src/pybind/mgr/dashboard/frontend/src/environments/environment.tpl.ts b/src/pybind/mgr/dashboard/frontend/src/environments/environment.tpl.ts index 7a1fca4688f72..421ae5e5ceebe 100644 --- a/src/pybind/mgr/dashboard/frontend/src/environments/environment.tpl.ts +++ b/src/pybind/mgr/dashboard/frontend/src/environments/environment.tpl.ts @@ -4,6 +4,7 @@ // The list of which env maps to which file can be found in `.angular-cli.json`. export const environment = { + default_lang: '{DEFAULT_LANG}', production: '{PRODUCTION}', year: '{COPYRIGHT_YEAR}' }; -- 2.39.5