<NME> root.component.ts
<BEF> import {Component, OnInit, ViewChild} from '@angular/core'
import {ShortcutsService} from './core/services/shortcuts/shortcuts.service'
import {TranslateService} from '@ngx-translate/core'
import {SettingsService} from './core/services/settings/settings.service'
import {NotificationService} from './core/services/notification/notification.service'
import {RouterOutlet} from '@angular/router'
import {routeAnimation} from './shared/animations/route.animation'

@Component({
@Component({
    selector: 'mindmapp-root',
    templateUrl: 'root.component.html',
    styleUrls: ['./root.component.scss'],
})
export class RootComponent implements OnInit {

    @ViewChild('outlet', {static: false}) public outlet: RouterOutlet
    public initialized: boolean

    constructor (private notificationService: NotificationService,
                 private translateService: TranslateService,
                 private settingsService: SettingsService,
                 private router: Router,
                 private settingsService: SettingsService,

    public async ngOnInit () {
        const {settings, isFirstTime} = await this.settingsService.init()
        await this.initTranslations(settings.general.language)

        this.shortcutsService.init()

        this.shortcutsService.init()
        if (isFirstTime) {
            this.notificationService.showSnackBarMessage('WELCOME_MESSAGE')
        }

        this.initialized = true
    }

    private async initTranslations (language: string): Promise<void> {
        }

        if (isFirstTime) {
            this.notificationService.showSnackBarMessage('MESSAGES.WELCOME_MESSAGE')
        }
    }

    private async initTranslations (language: string): Promise<void> {
        this.translateService.setDefaultLang(language)
        await this.translateService.use(language).toPromise()
    }

}

<MSG> [feat] set browser language the first time

<DFF> @@ -1,9 +1,8 @@
-import {Component, OnInit, ViewChild} from '@angular/core'
+import {Component, OnInit} from '@angular/core'
 import {ShortcutsService} from './core/services/shortcuts/shortcuts.service'
 import {TranslateService} from '@ngx-translate/core'
 import {SettingsService} from './core/services/settings/settings.service'
 import {NotificationService} from './core/services/notification/notification.service'
-import {RouterOutlet} from '@angular/router'
 import {routeAnimation} from './shared/animations/route.animation'
 
 @Component({
@@ -14,9 +13,6 @@ import {routeAnimation} from './shared/animations/route.animation'
 })
 export class RootComponent implements OnInit {
 
-    @ViewChild('outlet', {static: false}) public outlet: RouterOutlet
-    public initialized: boolean
-
     constructor (private notificationService: NotificationService,
                  private translateService: TranslateService,
                  private settingsService: SettingsService,
@@ -25,6 +21,12 @@ export class RootComponent implements OnInit {
 
     public async ngOnInit () {
         const {settings, isFirstTime} = await this.settingsService.init()
+
+        if (isFirstTime) {
+            settings.general.language = this.translateService.getBrowserLang()
+            await this.settingsService.updateCachedSettings(settings)
+        }
+
         await this.initTranslations(settings.general.language)
 
         this.shortcutsService.init()
@@ -33,8 +35,6 @@ export class RootComponent implements OnInit {
         if (isFirstTime) {
             this.notificationService.showSnackBarMessage('WELCOME_MESSAGE')
         }
-
-        this.initialized = true
     }
 
     private async initTranslations (language: string): Promise<void> {

[feat] set browser language the first time