Skip to content

Commit ae09020

Browse files
committed
Moved function to translations into the TranslationStore.
getValue() is protected and can be overwritten. Fixed some lint warnings.
1 parent ce040be commit ae09020

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

projects/ngx-translate/src/lib/translate.service.ts

+5-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {TranslateCompiler} from "./translate.compiler";
66
import {TranslateLoader} from "./translate.loader";
77
import {InterpolateFunction, TranslateParser} from "./translate.parser";
88
import {TranslateStore} from "./translate.store";
9-
import {getValue, isDefined, isArray, isString, setValue, isDict, insertValue} from "./util";
9+
import {isDefined, isArray, isString, isDict, insertValue} from "./util";
1010

1111
export const ISOLATE_TRANSLATE_SERVICE = new InjectionToken<string>('ISOLATE_TRANSLATE_SERVICE');
1212
export const USE_DEFAULT_LANG = new InjectionToken<string>('USE_DEFAULT_LANG');
@@ -367,12 +367,7 @@ export class TranslateService {
367367

368368
private getTextToInterpolate(key: string): InterpolatableTranslation | undefined
369369
{
370-
let text = getValue(this.store.getTranslations(this.currentLang), key);
371-
if(text === undefined && this.defaultLang != null && this.defaultLang !== this.currentLang && this.useDefaultLang)
372-
{
373-
text = getValue(this.store.getTranslations(this.defaultLang), key);
374-
}
375-
return text;
370+
return this.store.getTranslation(key, this.useDefaultLang);
376371
}
377372

378373
private runInterpolation(translations: InterpolatableTranslation, interpolateParams?: InterpolationParameters): Translation
@@ -444,7 +439,7 @@ export class TranslateService {
444439
// check if we are loading a new translation to use
445440
if (this.pending) {
446441
return this.loadingTranslations.pipe(
447-
concatMap((res: InterpolatableTranslation) => {
442+
concatMap(() => {
448443
return makeObservable(this.getParsedResult(key, interpolateParams));
449444
}),
450445
);
@@ -466,7 +461,7 @@ export class TranslateService {
466461
return concat(
467462
defer(() => this.get(key, interpolateParams)),
468463
this.onTranslationChange.pipe(
469-
switchMap((event: TranslationChangeEvent) => {
464+
switchMap(() => {
470465
const res = this.getParsedResult(key, interpolateParams);
471466
return makeObservable(res);
472467
})
@@ -487,7 +482,7 @@ export class TranslateService {
487482
return concat(
488483
defer(() => this.get(key, interpolateParams)),
489484
this.onLangChange.pipe(
490-
switchMap((event: LangChangeEvent) => {
485+
switchMap(() => {
491486
const res = this.getParsedResult(key, interpolateParams);
492487
return makeObservable(res);
493488
})

projects/ngx-translate/src/lib/translate.store.ts

+21-6
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import {
22
InterpolatableTranslationObject,
33
DefaultLangChangeEvent,
44
LangChangeEvent,
5-
TranslationChangeEvent, Language
5+
TranslationChangeEvent, Language, InterpolatableTranslation
66
} from "./translate.service";
77
import {Observable, Subject} from "rxjs";
8-
import {mergeDeep} from "./util";
8+
import {getValue, mergeDeep} from "./util";
99

1010

1111
type DeepReadonly<T> = {
@@ -19,13 +19,13 @@ export class TranslateStore
1919
private _onLangChange: Subject<LangChangeEvent> = new Subject<LangChangeEvent>();
2020
private _onDefaultLangChange: Subject<DefaultLangChangeEvent> = new Subject<DefaultLangChangeEvent>();
2121

22-
private _defaultLang!: Language;
22+
private defaultLang!: Language;
2323
private currentLang!: Language;
2424

2525
private translations: Record<Language, InterpolatableTranslationObject> = {};
2626
private languages: Language[] = [];
2727

28-
public getTranslations(language:Language): DeepReadonly<Record<Language, InterpolatableTranslationObject>>
28+
public getTranslations(language:Language): DeepReadonly<InterpolatableTranslationObject>
2929
{
3030
return this.translations[language];
3131
}
@@ -49,15 +49,15 @@ export class TranslateStore
4949

5050
public getDefaultLanguage(): Language
5151
{
52-
return this._defaultLang;
52+
return this.defaultLang;
5353
}
5454

5555
/**
5656
* Changes the default lang
5757
*/
5858
public setDefaultLang(lang: string, emitChange = true): void
5959
{
60-
this._defaultLang = lang;
60+
this.defaultLang = lang;
6161
if (emitChange)
6262
{
6363
this._onDefaultLangChange.next({lang: lang, translations: this.translations[lang]});
@@ -127,4 +127,19 @@ export class TranslateStore
127127
{
128128
delete this.translations[lang];
129129
}
130+
131+
public getTranslation(key: string, useDefaultLang: boolean): InterpolatableTranslation
132+
{
133+
let text = this.getValue(this.currentLang, key);
134+
if(text === undefined && this.defaultLang != null && this.defaultLang !== this.currentLang && useDefaultLang)
135+
{
136+
text = this.getValue(this.defaultLang, key);
137+
}
138+
return text;
139+
}
140+
141+
protected getValue(language: Language, key: string): InterpolatableTranslation
142+
{
143+
return getValue(this.getTranslations(language), key) as InterpolatableTranslation;
144+
}
130145
}

0 commit comments

Comments
 (0)