javascript - Att skicka en sträng för att ställa in standardspråket fungerar inte


Jag arbetar för närvarande på en app som utför översättningsarbete. Engelska språket bör användas som standardinställning. Den faktiska översättningen görs av ngx-translate. Den lagras tillfälligt i variabeln translateService, som deklareras i konstruktorn.

konstruktören:

constructor(private translateService: TranslateService, private platform: Platform, private globalization: Globalization, private storage: Storage)

Variabeln defaultLang tilldelas strängen 'en', som står för engelska. translateService tar nu emot variabeln defaultLang. Men ändå tas inte engelska som standardspråk. Vad är anledningen till detta?

async initialize() {
if (this.isInitialized) { return Promise.resolve(); } if (this.initializeListeners.length > 0) { // a parallel call has already been started 
    return new Promise(success => { this.initializeListeners.push(success); });
} return new Promise(async success => {
    let defaultLang = 'en'; this.translateService.setDefaultLang(defaultLang); this.initializeListeners.push(success); await this.platform.ready(); let lang = await this.storage.get(LanguageService.STORAGE_KEY); if (!lang && checkAvailability(Globalization.getPluginRef(), null, Globalization.getPluginName()) === true) { 
// no previous language found -> get device language 
        try {
            let preferredLanguage = await this.globalization.getPreferredLanguage(); if (preferredLanguage && preferredLanguage.value) {
                lang = preferredLanguage.value; if (lang.indexOf('-') > -1) { lang = lang.split('-')[0]; } if (lang.indexOf('_') > -1) { lang = lang.split('_')[0]; } lang = lang.toLowerCase(); if (this.availableLanguages.indexOf(lang) == -1) {
                    // detected language is not available 
                    lang = null;
                }
            }
        } catch (e) { }
    } if (!lang) { lang = defaultLang; } this.textDirection = this.rtlLanguages.indexOf(lang) >= 0 ? 'rtl' : 'ltr';
    this.platform.setDir(this.rtlLanguages.indexOf(lang) >= 0 ? 'rtl' : 'ltr', true); await this.translateService.use(lang); setTimeout(() => {
        // use timeout to let language switch propagate 
        this.isInitialized = true; this.initializeListeners.map(success => { success(); }); this.initializeListeners = null;
    }, 100);
});
} 

Jag antog att deklarationen av en variabel som skickar motsvarande sträng skulle vara tillräcklig.